一、文件处理命令
1. ls
显示当前目录下所有文件。
-a:显示包括隐藏文件在内的所有文件
-l:显示详细信息。ls -l也可写为ll
-d:查看目录属性
-h:人性化显示
2.mkdir
建立目录。
-p:递归创建,即可以以:mkdir -p a/b/c的方式创建一串目录
3.cd
切换目录。cd直接回车或cd ~会进入家目录,cd -进入上次进入的目录,cd ..进入上级目录。
4.pwd
查询当前所在位置。
5.rm
删除文件。如果删除对象为目录,则用rm -r。如果不想让linux询问是否删除,则用rm -rf强制删除。
6.cp
复制文件。cp [选项][原文件或目录][目标目录]
-r:复制目录
-a:复制全部属性
7.mv
剪切文件或目录。mv [原文件或目录][目标目录]
如果原文件和目标在同一目录下,则可以实现改名。
8.ln
将原文件生成链接文件。硬链接:ln [原文件或目录][目标目录],软链接:ln -s [原文件或目录][目标目录]
链接分为硬链接和软链接。一个文件的硬链接可以视为该文件的另一个接入点,拥有相同的id号,修改一个后另一个也改变,删除掉一个后另一个仍可使用。不可针对目录使用。
一个文件的软链接类似于创建该文件的快捷方式,拥有自己的id号,修改一个后另一个也改变,删除掉原文件后软链接不可使用。
9.file
file filename:用来查看filename文件的类型。
10.less
less filename:用来查看filename文件的内容。
11.alias
例如alias foo='ls ; cd' 可以自定义foo这一命令,可以使用unalias删除自定义的别名。
重启后,自定义的别名会消失。
12.cat
查看文件内容。
cat > 文件名:手动输入内容并将其录入文件中,以Ctrl+d退出。
13.wc
显示文件中包含的行、字和字节数。
14.head、tail
-n 数字:显示文件的前几行或后几行。
15.touch
将文件的修改和访问时间改为当前时间。
16.sort
对文件内容排序。
sort > 文件名,输入内容后会排序后写入文件。
有多种选项。
-n:按数值排序
-k:指定排序的字段(从第几个字段到第几个字段)
-r:倒序排序
-t:指定字段间的分隔符
17.uniq
对文件去重,只能操作排好序的文件,所以需要与sort连用:
sort 文件名 | uniq
-c:输出计数
18.cut
用于从文件中抽取内容。
-c:数值表示抽取的区间。cut -c a-b 文件名
-f:抽取第几个字段
-d:指定分隔符
19.paste、join
paste将一个文本粘贴到另一个文本中(按行),join类似于关系型数据库,依照两个文本的共有的列将两个文本合并。
paste 文件1 文件2
join 文件1 文件2
20.comm
对两个文件进行比较。comm 文件1 文件2
21.tr
文本替换,需要和管道符连用,如:
less 文件 | tr a-z A-Z 即可将所有小写字母替换为大写字母。
二、文件搜索命令
1.locate
按照文件名搜索文件。locate只能搜索创建一天以上的文件,如果要搜索创建一天以内的文件需要先执行updatedb,之后就能搜索到。locate不会搜索一部分目录(如tmp)。
2.whereis和which
whereis用来搜索命令的位置。which用来搜索命令的位置和别名。
3.find
搜索文件。find [搜索范围][搜索条件]
find /tmp -name abc,即为在tmp目录下搜索文件名为abc的文件。可以使用通配符*(匹配任意个字符)、?(匹配一个字符)、[](匹配括号内的一个字符)。
除-name外,-iname不区分大小写,-user按照所有者搜索,-nouser搜索没有所有者的文件,-mtime修改时间,-size文件大小
也可以搜索多个条件,中间用-a(and)或-o(or)相连。
如需要对结果进行进一步处理,可以在语句后面增加-exec [待执行命令] {} ;
4.grep
在文件中搜索字符串。grep [选项] 字符串 文件名
-v:取反,即不包含
-i:不区分大小写
-l:打印出文件名而不是匹配的字符串
三、帮助命令
1.man
帮助。man 命令
-f:等同于whatis,获取命令的描述。
-k:等同于apropos,获取命令相关的所有命令和文件。
2.help
获得命令的可用选项。命令 --help,或help 命令。
3.type
显示命令的类型。
四、压缩命令
1.zip
zip 压缩文件名 源文件。压缩目录:zip -r 压缩文件名 源文件。
unzip 文件名,解压缩。
2.gz
gzip 源文件,压缩后源文件消失。如需保留,需要:gzip -c 源文件 > 压缩文件。
gzip -r 目录,会将目录中的所有文件压缩。
gunzip 文件名,解压缩。
3.bz2
bzip2 源文件,压缩后源文件消失。如需保留,需要:bzip2 -k 源文件。不能压缩目录。
bunzip2 文件名,解压缩。
4.tar
tar -cvf 文件名 源文件,打包。
tar -xvf 文件名,解包。
tar -zcvf 压缩包名.tar.gz 源文件,先打包再压缩。
tar -zxvf 压缩包名.tar.gz。
tar -jcvf 压缩包名.tar.bz2 源文件,先打包再压缩。
tar -jxvf 压缩包名.tar.bz2。
五、关机和重启
1.shutdown
关机。shutdown [选项] 时间 &。&使程序在后台执行。
-h:关机
-r:重启
-c:取消上一次命令。
2.logout退出。
六、挂载
1.mount
查看挂载的设备。
mount -a,根据配置文件自动挂载。
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
2.umount
卸载设备。umount 设备名或挂载点。
七、用户
1.w
查看当前用户信息。
2.last
查看当前和过去登录的用户信息。
3.lastlog
查看所有用户最后一次登录时间。
八、网络
1.netstat
查看当前主机网络连接信息。
-t:列出tcp协议端口。
-u:列出udp协议端口。
-n:使用ip地址和端口号。
-l:列出监听状态的网络服务。
-a:列出所有网络连接。
通过管道符,可以获取所有监听的服务:
netstat -an | grep LISTENING
再加上wc统计数量:
netstat -an | grep LISTENING | wc -l
2.ifconfig
查看与配置网络状态。
ifconfig eth0 192.168.x.x netmask 255.255.255.0,临时配置eth0网卡的ip和子网掩码。
3.setup
不同于ifconfig,setup为永久配置ip和掩码。只有redhat系列才有此命令。
4.通过修改配置文件的方式配置ip地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0:配置网卡信息文件。
vi /etc/sysconfig/network:配置主机名文件。
vi /etc/resolv.conf:配置DNS文件。
5.ifdown、ifup
ifdown eth0:禁用eth0网卡。
ifup eth0:启用eth0网卡。
6.route -n
查看路由列表,可以显示网关。
7.nslookup
查看域名对应的ip地址,同时可以看见自身的dns。
8.ping
向某域名发送数据包,从而判断该域名的网络状况。
该命令会一直进行下去,用-c 次数 限定次数。
9.traceroute
查看连接到某ip时的路由。如果节点禁止ping,则不能正常显示该节点。
10.wget
wget url下载内容。
11.ssh
ssh 用户名@ip:远程管理指定的linux服务器。
12.scp
上传和下载。
scp [-r] 用户名@ip:文件路径 本地路径:下载
scp [-r] 本地文件 用户名@ip:上传路径:上传
如果是目录,则加上-r。
九、重定向
1. >
可以将输出重定向到某个文件中。如:
ll > output.txt 将ll的输出内容重定向到output.txt文件中。
如果命令存在错误,且需要将错误信息重定向,则需要在>之前加上2,如:
ll /abcd 2>output.txt
如果命令不存在错误信息,则加上2后不会重定向。
2. |
command 1 | command 2:将前一个命令的输出作为后一个命令的输入。
用 | command | 可以组成一个过滤器。
如果无论是否有错误都希望重定向到文件中,则使用 &>。
十、输出
echo:显示一行文本,可以用通配符。
echo *s:显示所有以s结尾的文件。
echo $((2*2)):4
$有点类似于编程语言中的%。
echo {1,2,3}:1 2 3
echo a{1..5}:a1 a2 a3 a4 a5,用花括号类似于python中的map函数。
十一、权限
1.chmod
修改文件权限,后面参数详见https://www.cnblogs.com/adolfmc/p/5898115.html
2.umask
设置权限掩码(即默认权限)。常用的是0002(所有者和用户组可读写,其他用户只读)、0022(所有者可读写,用户组和其他用户只读)。
3.sudo和su
su用于其他用户用超级用户的密码登录超级用户的账号,会另启动一个shell环境,而sudo用于其他用户用自己的密码登录超级用户的账号,不会另启动一个新环境。
具体详见http://blog.csdn.net/xiaoputao0903/article/details/24230553
4.chown
改变文件所有者。
chown 用户名 文件名
5.chgrp
改变文件所属组。
chgrp 所属名 文件名(或者chown 拥有者:用户组)
6.ACL权限
ACL权限用于为文件所有人、所有组、其他人之外的人分配权限。
getfacl 文件名:查看文件的acl权限。
setfacl 选项 文件名:为文件分配acl权限。详见https://www.cnblogs.com/Jimmy1988/p/7249844.html
setfacl -m u:user:rwx 文件:设置user对文件具有读、写、执行权限。
setfacl -m m:rw- 文件:设置文件最大权限为读写。
setfacl -x u:user 文件:删除user的acl权限。
setfacl -m g:group 文件:设置用户组的acl权限。
setfacl -b 文件:删除文件所有的acl权限。
setfacl -m u:user:rwx -R 目录:将目录下所有文件都赋予acl权限。
setfacl -m d:u:user:rwx -R 文件/目录:将目录下所有文件都赋予acl权限,包括目录下新建的文件。
十二、进程
1.ps
查看当前在运行的进程。
x:显示所有进程。
aux:显示所有进程的详细信息。
另外,还有pstree命令,可以显示进程树。
2.top
动态显示当前进程。按q退出。
3.kill、killall、pkill
kill pid:杀死进程。pid可用ps查询。kill用于杀死单个进程(或发信号),killall用于杀死多个进程(或发信号),killall后面跟进程名。
kill -1:平滑重启进程
kill -9:强制结束进程
pkill -9 -t:按照终端号切除用户。(终端号可用w命令查看)
4.&
命令后面加上&可以将命令放入后台执行。运行中按Ctrl+z效果相同。
可以用jobs查看后台运行的进程。
fg %工作号和bg %工作号可以把进程恢复到前台或者后台执行。
5.nohup
进程前面加上nohup命令,可以使得进程与当前终端脱离,即当前终端关闭后,进程任然可以运行。
十三、环境变量
printenv、set都可以输出当前环境变量。printenv可以加上变量名,单独输出此变量的值。
十四、系统资源
1.vmstat
查看当前系统资源情况。
2.dmesg
查看硬件状态。
3.free
查看内存使用状态。
4./proc/cpuinfo
用cat查看proc目录下的cpuinfo文件,可以看到cpu的信息。
5.uptime
查看平均负载。
6.uname -a
查看内核信息。