1:在linux中有7个运行级别:
0 halt 系统关闭状态
1 single user mode 单用户模式
2 multi-user mode whitout network 无网络的多用户模式
3 multi-user mode 正常模式
4 multi-user mode,spare 多用户模式(备用)
5 XDM mode 图形模式
6 reboot 重启模式
如何查看当前的运行级别? 可以使用命令#runlevel或者#who -r
运行级别的切换 init [0123456]
如何控制启动之后的默认级别编辑/etc/inittab 将其中的id:3:initdefult
把id改成0-6就可以了。注意,请不要修改位0或者6。
2:Linux系统下文件颜色含义
蓝色表示目录;绿色表示可执行文件;红色表示压缩文件;浅蓝色表示链接文件;白色表示其他文件;×××是设备文件,包括block, char, fifo。
红色闪烁表示链接的文件有问题了;用dircolors -p看到缺省的颜色设置,包括各种颜色
和“粗体”,下划线,闪烁等定义。
在控制台下,用ls,就会发现shell将不同类型的文件项目显示为不同的颜色,不用ls -l便
能大概的把各个文件的类型情况了解一下。其实,在/etc下有一个DIR_COLORS的文件,这是
一个着色控制的模版。现将这个模版拷出来。如果想让这个配置在root用户下生效,便拷到/r
oot下;如果想在abc(例子)用户下生效,便拷到/home/abc/下。之后将文件改名为(注意小
写,和“.”号).dir_colors;用vi打开它,往下找,就会发现,一处标记着DIR的行,行的
右边,两个两位的十进制数,并且这两个字的颜色是不同的。这就是对文件项目中文件夹(directory)的着色方案。那两个数便是所用的颜色。右边那个便是用ls时显示的颜色。随便改一下,便会发现数字的颜色也跟着变化。这就是将来显示的颜色了。在DIR行的下面,还有其它类型的文件着色方案,同样的格式,改改试试就行了。之后,存盘。关掉命令行窗口。再次打开命令行,便会看到你修改过后的结果了。在DIR_COLORS的文件顶端,有修改的说明和不同颜色对应的数字,可以作为参考。
3:ls命令文件夹颜色设置 文本界面下,红帽用蓝色作为ls的目录的颜色,配合他的黑色背景,感觉太暗了,看不清。
改成别的颜色的方法:
# vi /etc/DIR_COLORS内的设定“DIR 01;34”,为ls命令的目录的颜色设置,01表示粗体,34表示字体蓝色。我把它改成了“DIR 01;37;44”,37是字体白色,44是字背景蓝色,视觉效果还可以,而且习惯上也能接受。然后,执行# eval `dircolors /etc/DIR_COLORS`注意命令中的`符号为键盘~符号下面的那个,别弄错了。再执行ls命令看效果应该就不再那么难以辨认了。以上方法是对全局修改,如果想只对用户修改的话将/etc/DIR_COLORS文件cp到~/下,并改为.dir_colors,再修改这个文件就可以了 3:Linux快捷键汇总
下述所有命令在Linux/unix的shell下有效,这里以bash为主。如有出入,以你自己的服务器为准。本文所指的Linux主要指RHEL/CentOS,unix指的是FreeBSD,这也是服务器中用得最多的版本。
Ctrl+a 切换到命令行开始:这个操作跟Home实现的结果一样的,但Home在某些unix环境下无法使用,便可以使用这个组合;在Linux下的vim,这个也是有效的;另外,在windows的许多文件编辑器里,这个也是有效的。
Ctrl+e 切换到命令行末尾:这个操作跟END实现的结果一样的,但End键在某些unix环境下无法使用,便可以使用这个组合;在Linux下的vim,这个也是有效的;另外,在windows的许多文件编辑器里,这个也是有效的。
Ctrl+l 清除屏幕内容,效果等同于clear
Ctrl+u 清除剪切光标之前的内容:这个命令很有用,在nslookup里也是有效的。我有时看见同事一个字一个字的删除shell命令,十分崩溃!其实完全可以用一个Ctrl + u搞定。
Ctrl+k 剪切清除光标之后的内容
Ctrl+y 粘贴刚才所删除的字符:此命令比较强悍,删除的字符有可能是几个字符串,但极有可能是一行命令。
Ctrl+r 在历史命令中查找(这个非常好用,输入关键字就调出以前的命令了)这个命令我强烈推荐,有时history比较多时,想找一个比较复杂的,直接在这里,shell会自动查找并调用,方便极了
Ctrl+c 终止命令
Ctrl+d 退出shell,logout
Ctrl+z 转入后台运行
不过,由Ctrl + z转入后台运行的进程在当前用户退出后就会终止,所以用这个不如用nohup命令&,因为nohup命令的作用就是用户退出之后进程仍然继续运行,而现在许多脚本和命令都要求在root退出时仍然有效。
下面再补充下大家不是太熟悉,我用得比较多的操作方式:
!! 重复执行最后一条命令
history 显示你所有执行过的编号+历史命令。这个可以配合!编辑来执行某某命令
↑(Ctrl+p) 显示上一条命令
↓(Ctrl+n) 显示下一条命令
!$ 显示系统最近的一条参数
最后这个比较有用,比如我先用cat /etc/sysconfig/network-scripts/ifconfig-eth0,然后我想用vim编辑。一般的做法是先用↑ 显示最后一条命令,然后用Home移动到命令最前,删除cat,然后再输入vim命令。其实完全可以用vim !$来代替。
开发和管理员的话,掌握以上用法后,基本上工作就很有效率了;用到最后,你会不经意发现,弹指之间,许多复杂的指令你会很轻松的搞定。
附录:Linux下的桌面环境的快捷方式
以下指令在Linux/unix的桌面环境(gnome)下有效,如有出入以你自己的服务器为准
Alt + F1 类似Windows下的Win键,在GNOME中打开"应用程序"菜单(Applications)
Alt + F2 类似Windows下的Win + R组合键,在GNOME中运行应用程序
Ctrl + Alt + D 类似Windows下的Win + D组合键,显示桌面
Ctrl + Alt + L 锁定桌面并启动屏幕保护程序
Alt + Tab 同Windows下的Alt + Tab组合键,在不同程序窗口间切换
PrintScreen 全屏抓图
Alt + PrintScreen 当前窗口抓图
Ctrl + Alt + → / ← 在不同工作台间切换
Ctrl + Alt + Shift + → / ← 移动当前窗口到不同工作台
Ctrl+Alt+Shift+Fn 终端N或模拟终端N(n和N为数字1-6)
Ctrl+Alt+Shift+F7 返回桌面
Ctrl+Alt+Shift+F8 未知(终端或模拟终端)
窗口操作快捷键
Alt + F4 关闭窗口
Alt + F5 取消最大化窗口 (恢复窗口原来的大小)
Alt + F7 移动窗口 (注: 在窗口最大化的状态下无效)
Alt + F8 改变窗口大小 (注: 在窗口最大化的状态下无效)
Alt + F9 最小化窗口
Alt + F10 最大化窗口
Alt + Space 打开窗口的控制菜单 (点击窗口左上角图标出现的菜单)
应用程序中的常用快捷键
下面这些并不适用于所有程序。可以和Windows下的快捷键类比下:
Ctrl+N 新建窗口
Ctrl+X 剪切
Ctrl+C 复制
Ctrl+V 粘贴
Ctrl+Z 撤销上一步操作
Ctrl+Shift+Z 重做刚撤销的一步操作
Ctrl+S 保存
Ctrl+H 显示隐藏文件(切换键)
Ctrl+T 新建标签
Ctrl+Page Up 上一个标签
Ctrl+Page Down 下一个标签
Alt+N 切换到第N个标签(N为数字)
4:Linux中traceroute和ping的用法
traceroute功能说明:显示数据包到主机间的路径
traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小] 补充说明:traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置
参数:
-d 使用Socket层级的排错功能。
-f<存活数值> 设置第一个检测数据包的存活数值TTL的大小。
-F 设置勿离断位。
-g<网关> 设置来源路由网关,最多可设置8个。
-i<网络界面> 使用指定的网络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m<存活数值> 设置检测数据包的最大存活数值TTL的大小。
-n 直接使用IP地址而非主机名称。
-p<通信端口> 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s<来源地址> 设置本地主机送出数据包的IP地址。
-t<服务类型> 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w<超时秒数> 设置等待远端主机回报的时间。
-x 开启或关闭数据包的正确性检验。
5:ping命令详解(windows下)
使用ping可以测试计算机名和计算机的ip地址,验证与远程计算机的连接,通过将icmp回显数据包发送到计算机并侦听回显回复数据包来验证与一台或多台远程计算机的连接,该命令只有在安装了tcp/ip协议后才可以使用。下面我们来看看它的命令:
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list
参数
-t ping指定的计算机直到中断(ctrl+c停止)
-a 将地址解析为计算机名。例:c:\\>ping -a 127.0.0.1
ping china-hacker[127.0.0.1] with 32 bytes of data:(china-hacker就是你的计算机名)
-n count 发送count指定的echo数据包数。默认值为4。
-l length 发送包含由length指定的数据量的echo数据包。默认为 32 字节;最大值是 65,527。
-f 在数据包中发送“不要分段”标志。数据包就不会被路由上的网关分段。
-i ttl 将“生存时间”字段设置为 ttl 指定的值。
-v tos 将“服务类型”字段设置为 tos 指定的值。
-r count 在“记录路由”字段中记录传出和返回数据包的路由。count 可以指定最少1台,最多9台计算机。
-s count 指定count指定的跃点数的时间戳。
-j computer-list 利用computer-list指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)ip 允许的最大数量为9。
-k computer-list 利用computer-list指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)ip允许的最大数量为9。
-w timeout 指定超时间隔,单位为毫秒。
destination-list 指定要ping的远程计算机。
6:vmstat命令详解
[root@localhost ~]# vmstat -n 3 (每隔3秒刷新一次)
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 144 186164 105252 2386848 0 0 18 166 83 2 48 21 31 0
2 0 144 189620 105252 2386848 0 0 0 177 1039 1210 34 10 56 0
0 0 144 214324 105252 2386848 0 0 0 10 1071 670 32 5 63 0
0 0 144 202212 105252 2386848 0 0 0 189 1035 558 20 3 77 0
2 0 144 158772 105252 2386848 0 0 0 203 1065 2832 70 14 15 0
vmstat所带参数请用man vmstat查看
Procs
r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间
Memory
swpd: 虚拟内存使用情况,单位:KB free: 空闲的内存,单位KB buff: 被用来做为缓存的内存数,单位:KB
Swap
si: 从磁盘交换到内存的交换页数量,单位:KB/秒
so: 从内存交换到磁盘的交换页数量,单位:KB/秒
IO
bi: 发送到块设备的块数,单位:块/秒 bo: 从块设备接收到的块数,单位:块/秒
System
in: 每秒的中断数,包括时钟中断 cs: 每秒的环境(上下文)切换次数
CPU
按 CPU 的总使用百分比来显示
us: CPU 使用时间 sy: CPU 系统使用时间 id: 闲置时间准则
r,b≈0,
如果fre,将会出现连续不断的页面调度,将导致系统性能问题。
对于page列,re,pi,po,cy维持于比较稳定的状态,PI率不超过5,如果有pagin发生,那么关联页面必须先进行pageout
在内存相对紧张的环境下pagein会强制对不同的页面进行steal操作。如果系统正在读一个大批的永久页面,你也许可以看到po和pi列
会出现不一致的增长,这种情景并不一定表明系统负载过重,但是有必要对应用程序的数据访问模式进行见检查。在稳定的情况下,扫描率和重置率几乎相等,在
多个进程处理使用不同的页面的情况下,页面会更加不稳定和杂乱,这时扫描率可能会比重置率高出。
faults列,in,sy,cs会不断跳跃,这里没有明确的限制,唯一的就是这些值最少大于100
cpu列,us,sys,id和wa也是不确定的,最理想的状态是使cpu处于100%工作状态,单这只适合单用户的情况下。
如果在多用户环境中us+sys》80,进程就会在运行队列中花费等待时间,响应时间和吞吐量就会下降。wa>40表明磁盘io没有也许存在不合理的平衡,或者对磁盘操作比较频繁,
vmstat各项:
procs:
r-->在运行队列中等待的进程数 b-->在等待io的进程数
w-->可以进入运行队列但被替换的进程
memoy
swap-->现时可用的交换内存(k表示) free-->空闲的内存(k表示)
pages
re--》回收的页面 mf--》非严重错误的页面
pi--》进入页面数(k表示) po--》出页面数(k表示)
fr--》空余的页面数(k表示)
de--》提前读入的页面中的未命中数
sr--》通过时钟算法扫描的页面 disk 显示每秒的磁盘操作。
s表示scsi盘,0表示盘号
fault 显示每秒的中断数 in--》设备中断
sy--》系统中断 cy--》cpu交换
cpu 表示cpu的使用状态 cs--》用户进程使用的时间
sy--》系统进程使用的时间 id--》cpu空闲的时间
如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
如果pi,po 长期不等于0,表示内存不足。
如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。
Linux在具有高稳定性、可靠性的同时,具有很好的可伸缩性和扩展性,能够针对不同的应用和硬件环境调整,优化出满足当前应用需要的最佳性能。因此企业在维护Linux系统、进行系统调优时,了解系统性能分析工具是至关重要的。
在Linux下有很多系统性能分析工具,比较常见的有top、free、ps、time、timex、uptime等。下文将介绍几个较为重要的性能分析工具vmstat、iostat和sar及其使用。
用vmstat监视内存使用情况
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
vmstat的语法如下:
vmstat [-V] [-n] [delay [count]]
其中,-V表示打印出版本信息;-n表示在周期性循环输出时,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。对于vmstat输出各字段的含义,可运行man vmstat查看
7:在linux中增加tab命令补全功能的方法:打开/用户名/.cshrc增加set autolist
8:wc命令详解:
通常利用Linux的wc命令和其他命令结合来计算行和其他信息。
在Linux下用wc进行计数。返回文件的行数、字数、字节数等。
看个例子:
wc wc1.txt
3 5 16 wc1.txt
输出信息依次是:行数 字数 字节数 文件名称。再具体点,单个统计。
wc -m filename:显示一个文件的字符数
wc -l filename:显示一个文件的行数
wc -L filename:显示一个文件中的最长行的长度
wc -w filename:显示一个文件的字数
需要留意的:貌似wc统计的行算是用换行符来确定的。就是说最后一行要有换行符,最后wc的行数才是正确的,否则将会少一行。
9:Linux中增加一个用户的方法:增加一个用户user1
#useradd user1
#passwd user1
Changing password for user user1.
New password:
Retype New password:
10:prtdiag -v 输出设备的硬件信息