今天学习了2个小时左右的linux shell命令,书上介绍的比较全,很多平时都不知道的,才发现原来可以这么方便。
整理了一下,贴出来。
Linux shell的基本格式:
Command [options] [arguments]
一般情况下 man 一下,就能看到常用的一些参数了;
系统管理命令:
1) ls
最常用的,-l,-t,还有的系统上是有ll这个命令的,和ls -l一样;
2) pwd
3) cd
4) date
这个平时用的比较少,date -s 可以设置日期时间,date '+%Y-%m-%d %T'就可以显示当天的时间和日期了;
5) passwd
修改密码,其实也可以修改/etc/passwd文件,一样的;
6) su
改变当前用,'-'可以加载相应用户下的环境变量;
7) clear
8) man
9) who
查看登陆到系统的用户,who -r 查看当前系统运行级别;who -buT就可以查看每个用户的登陆详情和登陆状态;
10) w
跟who有点类似
11) uname
显示操作系统相关的信息,uname -a查看操作系统全部信息;
12) uptime
显示当前系统时间,系统开机到现在的时间,用户,平均负载等;
13) last
显示目前和过去登入系统的用户相关,查看/var/log/wtmp文件也能同样查看;
14) dmesg
显示系统开机信息
15) free
查看内存信息,例如free -m -s 3,每隔3s显示内存状态,以mb为单位;
16) ps
查看系统进程,ps -x 或者 ps -ef 或者 ps -aux
17) top
比较重要的一个命令,实时监控处理器状态;
进入top信息后:
m可以切换显示内存信息;
t切换进程和cpu状态;
l切换显示平均负载和启动时间信息;
P根据cpu使用多少进行排序;
q退出;
Top信息的含义:
VIRT代表了进程使用的虚拟内存,单位为kb,VIRT=SWAP+RES;
RES代表了进程使用的,没有被换出的物理内存大小,单位也为kb,RES=CODE+DATA;
SHR代表了共享内存大小,单位kB;
进程状态,D表示不可中断睡眠,R运行,S睡眠,T跟踪/停止,Z僵死进程;
文件管理命令:
1) mkdir
mkdir -p可以为不存在的路径自动创建文件夹;
2) more
逐屏显示;
3) cat
打印到终端,也可以利用 > 管道合并文件,如cat a b > c;cat -b可以显示行号(非空行);
4) diff
比较文件,diff -c 显示全部内容,并标出不同之处;diff -r 比较目录;
5) grep
比较有用的一个文本过滤工具,主要和其他命令配合使用;grep -i忽略大小写,grep -n显示行号;
6) rm
删除,rm -r删除目录,rm -f忽略不存在的问题;
7) touch
修改文件的访问时间和修改时间,touch -a改变文件的访问时间为当前系统时间,touch -m改变文件的修改时间为当前系统时间;直接touch相当于创建文件;touch -r表示参考其他的文件的时间做修改,类似于refer;
8) ln
链接,直接ln src dest为硬链接,ln -s为软链接,类似windows下的快捷方式;
9) file
显示文件类型;
10) cp
拷贝, cp src dest;cp -a保留文件所有属性,cp -r目录下递归拷贝;
11) find
很强大的查找命令,格式为find path [options] [-print -exec -ok 命令{} /;]
参数格式:
-name ' ' :文件名匹配过滤;
-path ' ':路径名匹配过滤;
-mtime +n/-n:按时间过滤,+n表示n天前的,-n表示n天后的;
-print:搜索结果输出到标准输出;
-exec:搜索出的结果执行给出的linux命令,注意给出的命令要以 “{} /;”结束;
-ok:表示exec执行linux命令是需要交互;
12) split
分割文档,split -b按大小分割,split -n按文件长度分割,split -d分割生成的文件序列以数字形式命名,默认按a、b、c等等命名;例如split -b 2M -d a.log a.log.bak,则会生成a.log.bak01, a.log.bak02等等;
13) mv
移动文件或者目录
压缩与解压缩
1) tar
最常见的打包解包命令,常用的tar -zxvf打包,tar -zcvf打包。
参数含义:
-c:创建新的文件
-x:解包
-z:用gzip命令进行压缩或者解压缩
-j:用bzip2命令进行压缩或者解压缩
-f:指定文件名,必须是最后一个参数
-v:在打包或者解包时,显示文件名
2) dd
转换或者拷贝文件命令,可以用来备份设备。
dd if="input_file" of="output_file" bs="block_size" count="number of bs"
磁盘管理与维护
1)df
检查磁盘空间情况
常见的df -hT,可以查看当前文件系统类型和分区情况;df -i可以显示文件系统分区的inodes信息;
2)du
显示目录或者文件占用的磁盘空间;
一般du -sh 就可以了;
3)fsck
检查文件系统并尝试修复错误,慎用;
参数 -r 采取互动的修复模式,-T显示执行过程,推荐;
其实fsck是调用了/sbin/fsck.ext3命令
4)sync
将内存中的数据写回磁盘,无需参数
5)eject
弹出设备,-c光驱,-d默认设备,-f软盘,-q磁盘,-r光盘,-n指定路径(推荐);
6)mount/unmount
挂载和卸载文件系统,常用的命令之一;
mount [-o 选项] [-t 文件系统类型] [设备名] [挂载点];
文件类型包括有ext2, ext3, msdos(FAT), vfat, nfs, iso9660, nfs等等;
-o选项一般默认就可以了;
网络设置与维护
1) ifconfig
配置网络或者显示当前网络的状况;
-a,显示所有
常用的如下:
ifconfig 不带参数,显示网卡状态;
ifconfig eth0 up/down 禁用或者启用网卡eth0;
ifconfig eth0 hw ether **:**:**:**:**:** 修改网卡eth0的mac地址;
ifconfig eth0 192.168.1.12 netmask 255.255.255.254 修改网卡eth0的ip和地址和子网掩码;
2) scp
非常是用的一个远程copy命令
与cp不一样的是,远程的文件名需要格式:用户名@ip地址#端口:路径文件名;
3) netstat
显示本机网络连接,运行端口和路由表等信息;
-a 显示所有的连接和监听;
-t 显示所有的tcp连接情况;
-u 显示所有的udp连接情况
-r 显示路由表信息
-n 以网络ip的形式显示当前建立的连接和端口
常用:
netstat -rn 显示路由信息;
netstat -an 显示所有有效的tcp连接;
netstat -tlnpu 显示已经启动的网络连接和对应的端口信息;
netstat -atunp 显示目前系统上处于连接状态的资源信息;
4) traceroute
显示网络数据包传输的路径信息
Traceroute [选项] [远程ip或者主机名] [数据包大小]
常用选项:
-i:指定网卡
-n:使用ip
-w:设置超时时间,以秒为单位;
-s:来源ip,本机发送数据包的ip;
例如 traceroute -i eth0 -s 192.168.1.12 -w 10 www.baidu.com 100,可以显示从本地192.168.1.12发送到www.baidu.com的100bytes的包中间经过了多少路由转发;
5) telnet
一般就用来看看到对方的网络端口能不能通,其他基本用不上;
6) wget
下载命令,后面直接加网址就可以了