1 文件和目录操作
1.1 cd 切换当前目录到工作目录
cd ..却换到上一级目录
cd ~切换到用户目录
cd /切换到根目录
cd –切换到上一次访问的目录
1.2 chmod 改变文件权限
chmod a+x * 对所有用户添加执行权限 ,*表示当前目录下所有文件
chmod 777 * 对所有用户添加rwx权限
1.3 chown改变文件的所有者和组
chown –cv guest:guest root:root ./*.txt 将txt类型的文件所有者从root用户组root用户改成guest用户组guest用户
1.4 cp复制文件或目录
cp –R dir1/ dir2 将dir1拷贝到dir2,拷贝目录时必须带-R选项
-R 递归复制指定源目录及其下面的子目录中的所有文件到指定的目标目录
1.5 ln 创建文件链接
ln –s file filelink 对file文件创建符号链接filelink
-s建立符号链接,不带-s选项则创建硬链接
1.6 ls 显示目录内容
ls –al /home 显示home目录的内容,不设路径时默认为当前目录
-a 列出所有文件,包括隐藏文件
-l 以长格式方式显示目录列表
1.7 find 在指定目录下查找文件并执行指定的操作
列出目录下所有的文件,并且只打印前20个
find /opt -print | head -n 20
查找权限为644的文件
find ./ -type f -perm 644 -exec ls -l {} \;
查找包含Base的文件,并排序
find ./ type f -name *Base* | sort
查找当前目录,但不在aaa目录中查找
find ./ -path "./aaa" -prune -o -print
查找文件属主为root的文件
find ./ -user root -exec ls -al {} \;
1.8 whereis 显示指令程序,源代码和man手册页(与which类似,不仅返回命令,并且返回man手册和源代码的位置
1.9 which 显示指令的绝对路径
1.10 mkdir 创建目录
mkdir –p a/b/c/d 创建目录a/b/c/d
-p:为所给出的目录创建缺少的中间目录
1.11 mv 移动或重命名文件
mv file1 file2 将file1重命名为file2
mv ./file1 /home/IBA/file1 将file从当前目录中移动到/home/IBA/目录中
1.12 pwd 显示当前工作目录
1.13 rm 删除文件或目录
-r: 递归删除目录下的所有内容
-f: 强制删除文件
1.14 rmdir 删除空目录
2 备份和压缩
2.1 tar 创建备份档案文件
将test目录压缩为test.tar.gz
tar -czvf test.tar.gz
解压缩test.tar.gz文件
tar -zxvf test.tar.gz
-c 创建新的备份档案文件
-x 从档案文件中释放文件
-z 用gzip压缩/解压缩文件
-f 指定备份归档文件的文件名
-v处理过程中输出相关信息
3 文本处理
3.1 cat 链接文件并显示到标准输出
打印/etc/vimrc的内容
cat -n /etc/vimrc
-n 显示行号
3.2 grep 显示文件中匹配的行
3.3 sort 排序数据文件
3.4 tail 输出文件尾部部分内容
-f 持续的读取文件尾部数据,通常用于监控日志文件
3.5 wc 计算文件的字节数,单词数和行数
3.6 more分屏查看文本文件
4 shell指令
4.2 killall/kill 杀死进程或作业
-l列出所有可用信号 默认发出SIGTERM信号
9)SIGKILL 强制杀死进程 kill -9 Process 或 kill –SIGKILL Process
kill通过进程号杀死进程,killall 通过程序名杀死所有进程
4.3 set 显示shell的运行特性变量信息
4.4 ulimit 设置shell的资源限制
-a 显示当前的ulimit设置
修改最大文件打开数,当前有效,添加到/etc/rc.local中则设置为默认配置
ulimit –SHn 65535
4.5 source点命令
source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
4.6 ldconfig动态链接库管理命令
ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.
5 其他基础命令:
5.1 date 显示和设置系统日期时间
5.2 halt 关闭计算机
5.3 reboot 重新启动计算机
5.4 man 显示联机帮助手册
5.5 who 显示当前已登录用户的信息
5.6 tr 文本替换
6 进程管理
6.1 nohup 以忽略挂起信号方式运行程序
当用户退出登录时被发送挂起信号而终止,nohup指令可以在用户退出时,使程序继续运行
nohup find ./ -print > ./nohup.out
>./nohup.out表示指令的输出信息将保存到“nohup.out”文件中,可以在需要的时候查看该文件
6.2 ps显示系统当前的进程状态
获取终端上所有用户的有关进程信息
示占用CPU最高的5个进程
ps -em comm,pcpu --sort -pcpu|head -n 5
-a:显示系统中所有进程的信息
-u:显示面向用户的格式(包括用户名,CPU及内存的使用情况等)
-x:显示所有非控制终端上的进程信息
VSZ:占用的虚拟内存,KB
RSS:占用的物理内存,KB
STAT:进程状态,Z僵尸进程,D不可中断的睡眠
6.3 pstree 以树形图显示进程的父子关系
7 磁盘与文件系统管理
7.1 df 报告磁盘剩余空间情况
7.2 du 查看文件占用的磁盘空间
-a递归的输出指定目录的所有文件统计结果
-h显示标准单位
-c统计 –exclude统计时排除部分文件
7.3 fdisk linux的分区工具
显示当前的硬盘分区表
7.4 mount 加载文件系统
mount /dev/sda1 /mnt/sad1 将磁盘/dev/sda1 挂载到/mnt/sad1上
7.5 umount 卸载已经加载的文件系统
umount –v /mnt/sad1
-v 执行时显示详细信息
8 内核与性能
8.1 free 显示内存使用情况
total:内存总数
used:已经使用的内存
free:空闲的内存数
shared:多进程共享的内存总额
可用内存 = free + buffers +cached
8.2 iostat 报告CPU,I/O设备及分区状态
以1秒的时间间隔,打印信息2次
iostat -x 1 2
-x显示详细的io设备统计信息
%util 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率
%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷
%idle 显示了在 CPU 空闲并且系统没有未完成的磁盘 I/O 请求时的时间百分比
如果idle小于70%,I/O压力大,说明读取进程中有较多的wait
8.3 pgrep 查找当前运行的进程ID
8.4 top 显示和管理系统进程
常用命令(运行top后,在键盘输入)
P:根据CPU使用的多少进行排序
T:根据时间,累计时间排序
q:退出top命令
m:切换显示内存信息
t:切换显示进程和CPU状态信息
c:切换显示命令名称和完整命令行
M:根据使用内存的大小进行排序
8.5 uptime 显示系统运行时间和平均负载
load averager表示过去1分钟,5分钟和15分钟内进程队列中的平均进程数量
8.6 vmstat显示虚拟内存状态
r:等待运行的进程数
b:处于非中断睡眠状态的进程数
bi:发送到块设备的块数,单位为块
bo:从块设备接收到的块数,单位为块
如果r经常大于3或4,bi小于50,表示cpu负荷很重
bi,bo长期不等于0,表示内存不足
8.7 uname 显示系统信息
查看系统内核
uname -a
9 远程调用
9.1 scp 加密的远程复制工具
scp install.log root@10.10.61.140:/home 复制install.log到远程计算机的home目录
scp root@10.10.61.140:/home/install.log ./ 复制远程计算机的install.log文件到本地目录
9.2 ssh 加密的远程登录工具
ssh –l root 10.10.61.140
-l 指定登录账户
10 编程相关指令
10.1 ldd 显示共享库依赖
11 系统管理与维护指令
11.1 chkconfig 设置系统在不同运行等级下执行的服务
列出服务名称
chkconfig --list | head -n 10
演示打开防火墙服务,和关闭防火墙服务
chkconfig iptables off
chkconfig iptables on
--list 列出服务名称在不同运行等级下得状态
--add 在当前运行级别下增加新的服务名称
--del 在当前运行级别下删除服务名称
11.2 rpm软件包管理器
RPM软件发布包的名称类似于foo-1.0-1.i386.rpm; 包括软件包名称(foo),版本(1.0),发行版本(1),硬件体系(i386)
rpm –ivh sysstat-4.0.8.i386.rpm 安装rpm
-i 安装指定的软件包
-v 显示附加信息
-h 显示安装进度
rpm –e sysstat 卸载时只需要指定软件包的名称
-e 删除指定的软件包
rpm –ql sysstat 查询软件包是否安装,并显示文件列表
11.3 service linux服务管理和控制工具
--status-all 显示所有的系统服务
status 显示服务的当前状态
start 启动服务
stop 停止服务
restart 重新启动服务
reload 使服务重新读取配置文件
11.4 yum RPM软件包自动化管理工具
yum list | grep gcc 显示可用的gcc软件包
yum list installed 显示已安装的软件包
yum deplist zip 显示zip软件包所依赖的软件包
yum install zip 安装zip软件包
yum remove zip 移除zip软件包
12 网络配置
12.1 hostname显示或者设置网络主机名
仅对当前有效
设置永久生效需要修改/etc/sysconfig/network文件
12.2 ifconfig 显示所有网络接口的详细情况
可以显示/设置IP地址,子网掩码等,仅是暂时生效
ifconfig eth0 192.168.1.1 设置网卡eth0的IP地址为192.168.1.1
12.3 route 显示和操纵本机的IP路由表
UG表示默认网关
add 增加路由
del 删除路由
-net 设置到某个网段的路由
-host 设置到某台主机的路由
gw 出口网关 IP地址
dev 出口网关 物理设备名
注意:使用route add添加路由,必须保证这个路由能够与你互通
添加路由
route add –net 192.168.0.0/24 gw 192.168.0.1
route add –host 192.168.1.1 dev 192.168.0.1
添加默认路由
route add default gw 192.168.0.1
删除路由
route del –net 192.168.0.0/24 gw 192.168.0.1
12.4 ping 测试到达目标主机的网络是否通畅
ping –c 3 192.168.0.1 向192.168.0.1发送3个ICMP报文
-c 指定发包次数
12.5 telnet 远程登录工具
telnet 192.168.1.2 登录远程主机
12.6 netstat 显示网络状态
a:显示所有套接字的状态
n:打印实际地址,而不是对地址的解释或显示主机
13 VI/VIM标准文本编辑器
13.1 插入模式
i 在光标钱的位置插入
esc 中止插入模式
dd 删除一行
num dd 删除num行
x删除一个字符
u撤销命令
num x:删除num个字符
13.2 命令模式
:wq 或 :x保存退出
:wq! 强制保存退出
:q 退出
:q! 强制退出
:/字段 向前搜索字段,按下enter表示搜索结束:
:?字段 向后收缩字段,按下enter表示搜索结束:
:num 移动到指定的行编号num
:set nu 显示所有行的行号
:set fileformat(ff) dos 设置文件格式为dos
:set fileformat(ff) unix 设置文件格式为unix
:w filename 将另存为filename
永久显示行号:
在/etc/vimrc中添加set number
13.3 控制指令
ctrl-g显示当前的行编号
gg 移动到文件的第一行
G 移动到文件的最后一行
14 常用工具
14.1 winshark 图形化抓包工具
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。
14.2 winscp
WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。
14.3 SecureCRT
SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单的说是Windows下登录UNIX或Linux服务器主机的软件。
14.4 Xmanager
Xmanager是一款小巧、便捷的浏览远端X窗口系统的工具。在工作中经常使用Xmanager来登录远端的linux系统,在X窗口系统上作图形化的操作。
15 其他
15.1 后台启动程序
15.1.1 &命令
sh test.sh &
该命令将脚本放到后台执行,但是标准输出还是会显示到当前终端,影响用户操作,所以最好是将输出重定向到其他文件
sh test.sh &>/dev/null
/dev/null表示为空设备
如果需要查看输出结果,也可以定向到一个固定的文件中
15.1.2 nohup命令
当用户注销或者网络中断时,终端后收到SIGHUP信号,从而关闭其所有子进程,&方式会随着终端的关闭而退出,如果我们需要作业在后台执行并不受终端退出的影响,可以用下面的方式
nohup sh test.sh &
nohup命令会忽略SIGHUP信号,从而终端退出时不会影响到后台作业
15.2 开机启动脚本
15.2.1 使用rc.local
/etc/rc.local; 这是一个最简单的方法,编辑“/etc/rc.local”,把启动程序的shell命令输入进去即可
15.2.2 注册成服务
可以看到“/etc/rc.d/init.d”下有很多的文件,每个文件都是可以看到内容的,其实都是一些shell脚本。
系统服务的启动就是通过“/etc/rc.d/init.d”中的脚本文件实现的。我们也可以写一个自己的脚本放在这里。
脚本文件的内容也很简单,类似于这个样子(例如起个名字叫做“hahad”):
. /etc/init.d/functions
start() {
echo "Starting my process "
cd /opt
./haha.sh
}
stop() {
echo "Stoped"
}
写了脚本文件之后事情还没有完,继续完成以下几个步骤:
chmod +x hahad #增加执行权限
chkconfig --add hahad #把hahad添加到系统服务列表
chkconfig hahad on #设定hahad的开关(on/off)
chkconfig --list hahad #就可以看到已经注册了hahad的服务
运行级文件:
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。第二行对服务进行描述,可以用\ 跨行注释。
例如,functions包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
# higher quality random number generation.
15.3 查看CPU和内存信息
cat /proc/cpuinfo 打印CPU详细信息
cat /proc/cpuinfo | head –n 5 打印CPU型号
cat /proc/meminfo | head –1 打印系统可用内存总量
cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc –l查看物理CPU个数
15.4 手动修改配置网卡文件
DEVICE:设定网卡的名称
ONBOOT: 开机启动网卡
修改后重启服务service network restart即可生效
修改机器的hostname
vi /etc/sysconfig/network
配置DNS域名解析服务器
vi /etc/resolv.conf
15.5 保存路由设置,使其在网络重启后任然有效
方法1:
在/etc/sysconfig/network-script/目录下创建名为route- eth0的文件
vi /etc/sysconfig/network-script/route-eth0
在此文件添加如下格式的内容
192.168.1.0/24 via 192.168.0.1
方法2:
将静态路由按指定格式存放到文件/etc/sysconfig/static-routes中
如加入:
route add -net 11.1.1.0 netmask 255.255.255.0 gw 11.1.1.1
则static-routes的格式为
any net 11.1.1.0 netmask 255.255.255.0 gw 11.1.1.1