Linux常用命令-丰富示例
su [用户名]
作用:切换用户身份(switch user)
命令示例:
bash [root@localhost abor]# su abor [abor@localhost ~]$
提示:当su后不加任何用户时,默认是切换到root用户
bash [abor@localhost ~]$ su 密码: [root@localhost abor]#
cd 目录
作用:切换目录(change directory)
特殊目录:
- / 根目录
- … 上一级目录
- . 当前目录
- - 显示并打开上一次操作的目录
- ~ 当前用户的宿主目录(即家home目录)
示例:(pwd命令是显示当前目录)
[root@localhost alternatives]# cd /etc/alternatives/
[root@localhost alternatives]# pwd
/etc/alternatives
[root@localhost alternatives]# cd /
[root@localhost /]# cd -
/etc/alternatives
[root@localhost alternatives]# cd ~
[root@localhost ~]# pwd
/root
注意:超级用户与普通用户的家目录不一样
[root@localhost ~]# cd ~
[root@localhost ~]# pwd
/root
[root@localhost ~]# su abor
[abor@localhost root]$ cd ~
[abor@localhost ~]$ pwd
/home/abor
ls 目录
作用:显示目录中的文件(list)
选项:
- -a 显示所有文件,包含特殊目录
- -l 显示详细信息
- -h 方便查看文件大小
- -R 递归显示当前目录下的所有目录
- -r 逆序排序
- -t 按修改时间排序
示例:
[root@localhost /]# ls -a
[root@localhost /]# ls -l
[root@localhost /]# ls -lt
解析:
- 第一列的第一个字符表示文件类型:d 代表目录,- 代表普通文件, l 代表链接文件(链接文件的定义与windows的快捷方式一样)
- 第一列后九个字符代表该文件或目录的权限
注意:如果不带任何参数的话,默认是ls -a ,但不包含特殊目录
mkdir 目录名
作用:创建新目录(make directories)
选项:
- -p 强制创建新目录 (不需要该目录的父目录存在)
示例:
[root@localhost home]# ls
abor jdk1.8.0_65 tomcat8
[root@localhost home]# mkdir test
[root@localhost home]# ls
abor jdk1.8.0_65 test tomcat8
[root@localhost home]# mkdir -p a/b/c
[root@localhost home]# ls
a abor jdk1.8.0_65 test tomcat8
touch 文件名
作用:创建新的空文件或者更新时间
示例:
- 创建单个文件
[root@localhost abor]# touch testTouch.txt [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz a.txt jdk-8u65-linux-x64.tar.gz testTouch.txt
- 创建多个文件要用花括号括起来,并用逗号间隔开
[root@localhost abor]# touch {touch1.txt,touch2.txt} [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz jdk-8u65-linux-x64.tar.gz touch1.txt a.txt testTouch.txt touch2.txt
- 创建文件名带空格的文件一定要用引号包裹,否则会创建多个文件
[root@localhost abor]# touch "space name.txt" [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz jdk-8u65-linux-x64.tar.gz testTouch.txt touch2.txt a.txt space name.txt touch1.txt [root@localhost abor]# ll total 186516 -rw-r--r--. 1 root root 9722154 Sep 18 16:07 apache-tomcat-8.5.45.tar.gz -rw-r--r--. 1 root root 5 Oct 14 20:15 a.txt -rw-r--r--. 1 root root 181260798 Jan 20 2018 jdk-8u65-linux-x64.tar.gz -rw-r--r--. 1 root root 0 Oct 14 20:21 space name.txt -rw-r--r--. 1 root root 0 Oct 14 20:18 testTouch.txt -rw-r--r--. 1 root root 0 Oct 14 20:20 touch1.txt -rw-r--r--. 1 root root 0 Oct 14 20:20 touch2.txt
- 更新文件时间不会改变文件的原内容
[root@localhost abor]# ll a.txt -rw-r--r--. 1 root root 5 Oct 14 20:00 a.txt [root@localhost abor]# cat a.txt 1234 [root@localhost abor]# touch a.txt [root@localhost abor]# ll a.txt -rw-r--r--. 1 root root 5 Oct 14 20:15 a.txt [root@localhost abor]# cat a.txt 1234
cp 源文件或目录 目的文件
作用:复制文件或者文件夹(copy)
选项:
- -r -R 递归处理,用于复制文件夹
- -p 保留文件属性
示例: - 复制文件并改名
[root@localhost abor]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [root@localhost abor]# cp /etc/hosts testCopy.txt [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz jdk-8u65-linux-x64.tar.gz testCopy.txt [root@localhost abor]# cat testCopy.txt 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 复制多个文件
写多个文件名 [root@localhost abor]# cp /etc/host.conf /etc/hostname ./ [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz host.conf hostname jdk-8u65-linux-x64.tar.gz testCopy.txt 使用通配符 [root@localhost abor]# ls /etc/*.conf /etc/asound.conf /etc/krb5.conf /etc/mke2fs.conf /etc/sudo-ldap.conf /etc/chrony.conf /etc/ld.so.conf /etc/nsswitch.conf /etc/sysctl.conf /etc/dracut.conf /etc/libaudit.conf /etc/ntp.conf /etc/vconsole.conf /etc/e2fsck.conf /etc/libuser.conf /etc/resolv.conf /etc/yum.conf /etc/GeoIP.conf /etc/locale.conf /etc/rsyslog.conf /etc/host.conf /etc/logrotate.conf /etc/sestatus.conf /etc/kdump.conf /etc/man_db.conf /etc/sudo.conf [root@localhost abor]# cp /etc/*.conf test/ [root@localhost abor]# ls test/ asound.conf host.conf libuser.conf nsswitch.conf sudo.conf chrony.conf kdump.conf locale.conf ntp.conf sudo-ldap.conf dracut.conf krb5.conf logrotate.conf resolv.conf sysctl.conf e2fsck.conf ld.so.conf man_db.conf rsyslog.conf vconsole.conf GeoIP.conf libaudit.conf mke2fs.conf sestatus.conf yum.conf
- 复制文件夹
[root@localhost abor]# cp -r /etc/alternatives/ ./ [root@localhost abor]# ls alternatives host.conf jdk-8u65-linux-x64.tar.gz apache-tomcat-8.5.45.tar.gz hostname testCopy.txt
mv 源文件或目录 目的目录
作用:移动文件和目录、重命名文件和目录
选项:
- -b :若需覆盖文件,则覆盖前先行备份
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
- -u :若目标文件已经存在,且 source 比较新,才会更新(update)
示例: - 移动单个文件
[root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz destination jdk-8u65-linux-x64.tar.gz source [root@localhost abor]# ls source/ asound.conf host.conf libuser.conf nsswitch.conf sudo.conf chrony.conf kdump.conf locale.conf ntp.conf sudo-ldap.conf dracut.conf krb5.conf logrotate.conf resolv.conf sysctl.conf e2fsck.conf ld.so.conf man_db.conf rsyslog.conf vconsole.conf GeoIP.conf libaudit.conf mke2fs.conf sestatus.conf yum.conf [root@localhost abor]# ls destination/ [root@localhost abor]# mv source/asound.conf destination/ [root@localhost abor]# ls destination/ asound.conf [root@localhost abor]# ls source/ chrony.conf host.conf libaudit.conf man_db.conf resolv.conf sudo-ldap.conf dracut.conf kdump.conf libuser.conf mke2fs.conf rsyslog.conf sysctl.conf e2fsck.conf krb5.conf locale.conf nsswitch.conf sestatus.conf vconsole.conf GeoIP.conf ld.so.conf logrotate.conf ntp.conf sudo.conf yum.conf
- 移动多个文件
[root@localhost abor]# ls source/ chrony.conf host.conf libaudit.conf man_db.conf resolv.conf sudo-ldap.conf dracut.conf kdump.conf libuser.conf mke2fs.conf rsyslog.conf sysctl.conf e2fsck.conf krb5.conf locale.conf nsswitch.conf sestatus.conf vconsole.conf GeoIP.conf ld.so.conf logrotate.conf ntp.conf sudo.conf yum.conf [root@localhost abor]# mv source/chrony.conf source/host.conf destination/ [root@localhost abor]# ls source/ dracut.conf krb5.conf locale.conf nsswitch.conf sestatus.conf vconsole.conf e2fsck.conf ld.so.conf logrotate.conf ntp.conf sudo.conf yum.conf GeoIP.conf libaudit.conf man_db.conf resolv.conf sudo-ldap.conf kdump.conf libuser.conf mke2fs.conf rsyslog.conf sysctl.conf [root@localhost abor]# ls destination/ asound.conf chrony.conf host.conf
- 移动目录
[root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz des destination jdk-8u65-linux-x64.tar.gz source [root@localhost abor]# ls des [root@localhost abor]# mv destination/ des [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz des jdk-8u65-linux-x64.tar.gz source [root@localhost abor]# ls des/ destination
- 文件更名
[root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz a.txt des jdk-8u65-linux-x64.tar.gz source [root@localhost abor]# mv a.txt b.txt [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz b.txt des jdk-8u65-linux-x64.tar.gz source
- 使用 -f 参数,不询问是否覆盖已有文件
[root@localhost abor]# mv b.txt c.txt mv:是否覆盖"c.txt"? y [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz c.txt des jdk-8u65-linux-x64.tar.gz source [root@localhost abor]# touch d.txt [root@localhost abor]# mv -f c.txt d.txt [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz des d.txt jdk-8u65-linux-x64.tar.gz source
- 使用通配符操作
将当前目录下的所有文件移动到上一级目录 [root@localhost des]# ls destination test.txt [root@localhost des]# ls ../ apache-tomcat-8.5.45.tar.gz des d.txt jdk-8u65-linux-x64.tar.gz source [root@localhost des]# mv * ../ [root@localhost des]# ls [root@localhost des]# ls ../ apache-tomcat-8.5.45.tar.gz destination jdk-8u65-linux-x64.tar.gz test.txt des d.txt source
rm 文件或目录
作用:删除文件或者目录
选项:
- -r 递归,删除目录
- -f 强制删除文件或目录
示例: - 删除文件
[root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz b.txt destination source a.txt des jdk-8u65-linux-x64.tar.gz test.txt [root@localhost abor]# rm b.txt rm:是否删除普通空文件 "b.txt"?y [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz des jdk-8u65-linux-x64.tar.gz test.txt a.txt destination source ##使用-f不询问直接删除文件 [root@localhost abor]# rm -f a.txt [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz des destination jdk-8u65-linux-x64.tar.gz source test.txt
- 删除目录
[root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz des destination jdk-8u65-linux-x64.tar.gz source test.txt [root@localhost abor]# rm -rf destination/ [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz des jdk-8u65-linux-x64.tar.gz source test.txt
cat 文件名
作用:显示文件内容 (concatenate)
选项:
-
-A 显示所有内容,包括隐藏字符
-
-n 显示行号
示例: -
显示文件所有内容
[root@localhost abor]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
-
创建文件(使用>符号)
[root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz des jdk-8u65-linux-x64.tar.gz source test.txt [root@localhost abor]# cat > a.txt [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz a.txt des jdk-8u65-linux-x64.tar.gz source test.txt
-
将两个文件的所有内容合并到一个文件中
[root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz a.txt b.txt des jdk-8u65-linux-x64.tar.gz source test.txt [root@localhost abor]# cat a.txt This is a.txt [root@localhost abor]# cat b.txt This is b.txt [root@localhost abor]# cat a.txt b.txt > c.txt [root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz b.txt des source a.txt c.txt jdk-8u65-linux-x64.tar.gz test.txt [root@localhost abor]# cat c.txt This is a.txt This is b.txt
-
显示行号(利用-n选项)
[root@localhost abor]# cat c.txt This is a.txt This is b.txt [root@localhost abor]# cat -n c.txt 1 This is a.txt 2 This is b.txt
more 文件名
作用:分页显示文件内容
示例:
- 分页显示文件内容(enter键:下一行;f键或空格:下一页;q或Q退出)
- 从第5行开始显示文件内容(使用 +n 参数)
[root@localhost abor]# more +5 /etc/services
head 文件名
作用:查看文件的前n行
选项:
- -n 指定行数
- -c 指定字节
示例: - 查看文件前5行
[root@localhost abor]# head -n 5 /etc/services # /etc/services: # $Id: services,v 1.55 2013/04/14 ovasik Exp $ # # Network services, Internet style # IANA services version: last updated 2013-04-10 [root@localhost abor]#
- 查看文件除了最后n行的全部内容
[root@localhost abor]# head -n -5 /etc/services
- 查看文件前30个字节的内容
[root@localhost abor]# head -c 30 /etc/services # /etc/services: # $Id: servic
- 将文件前10行的内容复制到文件中
[root@localhost abor]# ls apache-tomcat-8.5.45.tar.gz a.txt jdk-8u65-linux-x64.tar.gz [root@localhost abor]# cat a.txt [root@localhost abor]# head -n 10 /etc/services > a.txt [root@localhost abor]# cat -n a.txt 1 # /etc/services: 2 # $Id: services,v 1.55 2013/04/14 ovasik Exp $ 3 # 4 # Network services, Internet style 5 # IANA services version: last updated 2013-04-10 6 # 7 # Note that it is presently the policy of IANA to assign a single well-known 8 # port number for both TCP and UDP; hence, most entries here have two entries 9 # even if the protocol doesn't support UDP operations. 10 # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
tail 文件名
作用:查看文件的最后n行
选项:
- -n 指定行数
- -f 动态显示文件内容(实时更新)
示例: - 显示文件最后五行内容
[root@localhost abor]# cat -n a.txt 1 # /etc/services: 2 # $Id: services,v 1.55 2013/04/14 ovasik Exp $ 3 # 4 # Network services, Internet style 5 # IANA services version: last updated 2013-04-10 6 # 7 # Note that it is presently the policy of IANA to assign a single well-known 8 # port number for both TCP and UDP; hence, most entries here have two entries 9 # even if the protocol doesn't support UDP operations. 10 # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports [root@localhost abor]# tail -n 5 a.txt # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, most entries here have two entries # even if the protocol doesn't support UDP operations. # Updated from RFC 1700, Assigned Numbers'' (October 1994). Not all ports [root@localhost abor]#
- 动态显示文件内容
[root@localhost abor]# tail -f a.txt
tar
作用:压缩解压目录和文件
选项:
- -c 压缩文件或目录(create)
- -x 解压文件
- -z 以gzip命令压缩/解压缩
- -j 以bzip2命令压缩/解压缩
- -v 压缩或解压缩过程显示文件
- -f 指定文件名
- -C 指定解压目录
示例(最常用压缩与解压): - 压缩文件(tar -zcvf 压缩后的文件名 需要压缩的文件列表)
[root@localhost test]# ls a.txt b.txt c.txt [root@localhost test]# tar -zcvf ab.tar.gz a.txt b.txt a.txt b.txt [root@localhost test]# ls ab.tar.gz a.txt b.txt c.tx #支持通配符 [root@localhost test]# tar -zcvf abc.tar.gz *.txt a.txt b.txt c.txt [root@localhost test]# ls abc.tar.gz ab.tar.gz a.txt b.txt c.txt [root@localhost test]#
- 解压文件(tar -zxvf 需要被解压的文件 -C 解压目录)
[root@localhost test]# ls abc abc.tar.gz ab.tar.gz a.txt b.txt c.txt [root@localhost test]# tar -zxvf abc.tar.gz -C abc a.txt b.txt c.txt [root@localhost test]# ls abc/ a.txt b.txt c.txt [root@localhost test]#
vi 文件名
作用:编辑文件
命令列表:
命令 | 作用 |
---|---|
a | 在光标后插入文本 |
A | 在行尾插入文本 |
i | 在光标前插入文本 |
I | 在行首插入文本 |
o | 在光标的下面插入新行 |
O | 在光标的上面插入新行 |
命令 | 作用 |
---|---|
:set nu | 设置行号 |
:set nonu | 取消行号 |
gg | 定位至第一行 |
G | 定位到最后一行 |
nG | 定位到第n行 |
:n | 定位到第n行 |
命令 | 作用 |
---|---|
:w | 保存修改 |
:w new filename | 另存为指定文件 |
:w >> a.txt | 内容追加到a.txt |
:wq | 保存修改并退出 |
shift+zz | 保存并退出快捷键 |
:q! | 不保存退出 |
:wq! | 保存修改并退出 |
命令 | 作用 |
---|---|
nx | 删除光标所在处后n个字符 |
ndd | 删除光标所在处后n行 |
:n1,n2d | 删除指定范围的行 |
dG | 删除光标所在末尾的内容 |
命令 | 作用 |
---|---|
yy,Y | 复制当前行 |
nyy,Y | 复制当前以下的行 |
dd | 剪切当前行 |
ndd | 剪切以下的行 |
P,p | 粘贴 |
命令 | 作用 |
---|---|
r | 取消光标所在处字符 |
u | 取消上一步操作 |
命令 | 作用 |
---|---|
/string | 向后搜索字符串忽略大小写 |
?string | 向前搜索指定字符串 |
n | 搜索下一个出现的位置 |
N | 搜索上一个出现的位置 |
:%s/old/new/g | 全文替换指定字符串,%表示全局,s是开始标志 |
:n1,n2s/old/new/g | 在一定范围内替换字符串 |
netstat
作用:检测主机和网络配置状况
选项:
- -a 显示所有连接和端口
- -t 仅显示tcp相关选项
- -u 仅显示udp相关选项
- -n 使用水准方式显示地址和端口号
- -1 显示监控中的服务器的socket
ps
作用:查看系统中的进程信息
选项:
- a 显示所有用户的进程
- u 显示用户名和启动时间
- x 显示没有控制终端的进程
- e 显示所有进程,包括没有控制终端的进程
- 1 长格式显示
top
作用:动态显示系统监控状态
kill
作用:关闭进程
df
作用:查看各个分区容量使用情况
du
作用:查看文件或者目录的大小
附表(颜色与文件(夹)类型的对应关系)
颜色 | 文件类型 |
---|---|
默认色 | 普通文件 |
绿色 | 可执行文件 |
红色 | tar包文件 |
蓝色 | 目录(文件夹) |
水红色 | 图像文件 |
青色 | 连接文件 |
黄色 | 设备文件 |