第四章 linux常用命令
ls cd mkdir rmdir pwd cp mv rm touch cat more less head tail ln chmod chown chgrp umask find locate which whereis grep man whatis help useradd passwd who w gzip gunzip tar zip unzip bzip2 bunzip2 write wall ifconfig mail ping traceroute last lastlog netstat mount shutdown
文件处理命令
- 命令格式
命令 [-参数] [对象]
ls -la /etc
个别命令使用不遵循此规则
当有多个参数时, 可以写在一起
- 命令 :
ls
英文 :list
路径 :/bin/ls
权限 : 所有用户
功能 : 显示当前目录下的内容
语法 :ls [-参数] [对象]
参数 :
-a
all, 显示所有内容, 包括隐藏文件隐藏文件 : 以
.
开头的文件, 设计初衷是告诉用户这是一个系统文件, 没事不要操作它.
-l
long, 显示详细信息显示七部分信息, 可简写成
ll
[root@localhost ~]# ll
total 127028
-rw-------. 1 root root 1964 Nov 28 15:51 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Nov 28 15:54 Desktop
等等
-rw-------.
-
: 文件类型,-
是二进制文件,d
是目录,l
是软链接文件
rw-
: u 所有者
---
: g 所属组
---
: o 其他人
权限r
: 读,w
: 写,x
: 执行,-
: 无
数字表示 :r=4, w=2, x=1, -=0
1
文件引用的次数
root
文件把用户分成三类 : 所有者 ( user ), 所属组 ( group ), 其他人 ( other )
创建文件的用户是user, user的身份是可以转变的, user只能是一个
定义了一组相同类型的用户, 授权相同权限的用户有对该文件操作的权限, group只能有一个
剩余的都是other, 他们是没有权限的
这里的root为user
root
为group
1964
大小, 单位是字节, 如果加上参数
-h
就会人性化显示.
homo人类的意思, 这个参数在其他命令中也可使用.
Nov 28 15:51
这个文件最后一次的修改时间.
anaconda-ks.cfg
文件名
-d
显示当前目录本身, 而不是目录下的内容
-i
i node, 显示目录下内容的i节点
- 目录处理命令
- 命令 : mkdir
英文 : make directories
路径 : /bin/mkdir
权限 : 所有用户
功能 : 创建新的目录
语法 : mkdir [-参数] [对象]
参数 :
-p
当目录不存在时, 递归创建
- 命令 : cd
英文 : change directory
路径 : shell内置命令
权限 : 所有用户
功能 : 切换目录
语法 : cd [对象]
.
: 表示当前目录
..
: 表示上一级目录 - 命令 : pwd
英文 : print working directory
路径 : /bin/pwd
权限 : 所有用户
功能 : 显示当前目录
语法 : pwd [对象] - 命令 : rmdir
英文 : remove empty directory
路径 : /bin/rmdir
权限 : 所有用户
功能 : 删除空目录
语法 : rmdir [对象] - 命令 : cp
英文 : copy
路径 : /bin/cp
权限 : 所有用户
功能 : 复制文件或目录
语法 : mkdir [-参数] [原文件或目录] [目标目录]/[改的名]
也可给文件改名
参数 :
-r
复制目录
-p
保留文件属性
- 命令 : mv
英文 : move
路径 : /bin/mv
权限 : 所有用户
功能 : 剪切或改名文件
语法 : mv [原文件或目录] [目标目录] - 命令 : rm
英文 : remove
路径 : /bin/rm
权限 : 所有用户
功能 : 删除目录或文件
语法 : mkdir [-参数] [对象]
参数 :
-r
删除目录
-f
强制删除
- 文件处理命令
- 命令 : touch
路径 : /bin/touch
权限 : 所有用户
功能 : 创建空文件
语法 : touch [对象] - 命令 : cat
路径 : /bin/cat
权限 : 所有用户
功能 : 显示文件内容
语法 : mkdir [-参数] [对象]
参数:
-n
显示行号
- 命令 : more
路径 : /bin/mkdir
权限 : 所有用户
功能 : 分页显示文件内容
语法 : more [对象]
空格
或f
: 翻页
回车
: 换行
q
: 退出
- 命令 : less
路径 : /usr/bin/less
权限 : 所有用户
功能 : 分页显示文件内容 ( 可向上翻页 )
语法 : less [对象]
上箭头
: 向上换行
/
+内容
: 搜索内容,n
可向下找
- 命令 : head
路径 : /usr//bin/head
权限 : 所有用户
功能 : 显示文件前面几行
语法 : more [-参数] [对象]
参数 :
-n
指定行数
- 命令 : tail
路径 : /usr//bin/tail
权限 : 所有用户
功能 : 显示文件后面几行
语法 : tail [-参数] [对象]
参数 :
-n
指定行数
-f
动态显示文件末尾内容
- 链接命令
- 命令 : ln
英文 : link
路径 : /bin/ln
权限 : 所有用户
功能 : 生成软硬链接文件
语法 : ln [-参数] [原文件] [目标文件]
参数 :
-s
创建软链接
不加参数生成硬链接
软链接特征 :
软链接类似windows中的快捷方式
文件类型为
l
, 权限为777
, 但是真正的权限是由原文件的权限决定的
文件大小很小, 只是一个符号链接
箭头指向原文件
/tmp/issue.soft -> /etc/issue
使用时路径必须是绝对路径
硬链接特征 :
与原文件相同 + 同步更新 , 原文件丢失, 硬链接文件依然可以使用
通过i节点识别, 硬链接文件和原文件的i节点相同
不能跨分区使用
不能针对目录使用
权限管理命令
- 命令 : chmod
英文 : change the permissions mode of a file
路径 : /bin/chmod
权限 : 所有用户
功能 : 改变文件或目录权限
语法 : chmod [-参数] [方式] [目标文件]
只有是root用户或是文件所有者才能修改文件的权限
参数 :
-R
递归修改, 改变目录下的所有文件的权限
方式 :
字母表示法 : [{ugoa} {+ - =} {rwx}]
数字表示法 : [421]
权限 | 对文件来说 | 对目录来说 |
---|---|---|
r | cat/more/less | ls |
w | vi/vim | touch/mkdir/rm |
x | script/command | cd |
- 命令 : chown
英文 : change file ownership
路径 : /bin/chown
权限 : 所有用户
功能 : 改变文件或目录的所有者
语法 : chown [用户] [文件或目录] - 命令 : chgrp
英文 : change file group ownership
路径 : /bin/chgrp
权限 : 所有用户
功能 : 改变文件或目录的所属组
语法 : chgrp [用户组] [文件或目录]
文件所属组是创建者的所属组
- 命令 : umask
英文 : the user file-creation mask
路径 : shell内置命令
权限 : 所有用户
功能 : 显示和设置文件的缺省权限
语法 : umask [-参数] [文件或目录]
参数 :
-S 显示文件权限
umask
显示默认创建权限 00220 : 特殊权限
022 : 按位与后是 755创建目录时的权限是755
创建文件时的权限是644 (默认情况下, 新建的文件不具有可执行权限
)
umask 444
设置默认创建时的权限是333umask 444
444 按位与后是 333
文件搜索命令
- 命令 : find
路径 : /bin/find
权限 : 所有用户
功能 : 文件搜索
语法 : find [搜索范围] [匹配条件]
匹配条件 :
-name
文件名
find /etc -name ?init*
在
/etc
下找到文件名为?init*
的文件
?init*
?
: 匹配单个字符
*
: 匹配任意字符
-iname
不区分大小写
-size
大小
find / -size +204800
在
/
下找到大于100MB的文件
+
: 大于
-
: 小于
=
: 等于
204800
: 数据块
1数据块=512字节=0.5K
100MB=102400K
102400K
/0.5K
=204800
-user
所有者
find /home -user centos
在
/home
下找到所有者为centos的文件
-group
所属组
-cmin
文件属性 change
find /etc -cmin -5
在
/etc
下找到5分钟内被修改过属性的文件和目录
-
: 小于
+
: 大于
-amin
访问时间 access
-mmin
文件内容 modify
-a
连接选项 and两个条件同时满足
-o
or两个条件满足任意一个即可
-type
文件类型
根据type查找
f
: 文件
d
: 目录
l
: 软链接文件
-inum
根据i节点查找
-exec
对find返回的结果进行操作
find /etc -name inittab -exec ls {} \;
find语句
+-exec
+命令
+{} \;
{}
: 对find返回的结果整合替换
\
: 转义符
;
: 结束
- 命令 : locate
路径 : /usr/bin/locate
权限 : 所有用户
功能 : 在文件资料库中查找文件
语法 : locate [文件名]
updatedb
: 手动更新资料库
locate是在文件资料库中查找, 速度快; 而find是在分区下查找, 速度慢.
/tmp
: 有些目录并不在文件资料库的收入范围之内, 比如/tmp, 它下面的文件是没办法通过locate找到的.
-i
: 参数, 不区分大小写.
- 命令 : which
路径 : /usr/bin/which
权限 : 所有用户
功能 : 搜索命令所在目录及别名信息
语法 : which [命令名]
[root@localhost ~]# which cp
alias cp='cp -i' : 别名
/usr/bin/cp : 命令位置
- 命令 : whereis
路径 : /usr/bin/whereis
权限 : 所有用户
功能 : 搜索命令所在目录及帮助文档路径
语法 : whereis [命令名]
[root@localhost ~]# whereis cp
cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz /usr/share/man/man1p/cp.1p.gz
cp: /usr/bin/cp : 命令位置
/usr/share/man/man1/cp.1.gz : 帮助文档位置
/usr/share/man/man1p/cp.1p.gz : 帮助文档位置
帮助文档都放在
/usr/share/man
下,man
是manual手册
的意思
- 命令 : grep
路径 : /bin/grep
权限 : 所有用户
功能 : 在文件中搜寻字符串匹配的行并输出
语法 : grep [指定字符串] [文件]
-i
: 不区分大小写
-v
: 反向查找
“
^
#” : 以#开头
“#$
” : 以#结尾
帮助命令
- 命令 : man
英文 : manual
路径 : /usr/bin/man
权限 : 所有用户
功能 : 获得帮助信息
语法 : man [命令或配置文件]
man不能获得shell内置命令的帮助信息
查看命令的帮助信息 :
[root@localhost ~]# man ls
{
NAME
ls - list directory contents : 命令的功能
SYNOPSIS
ls [OPTION]... [FILE]... : 命令的语法
-a, --all
do not ignore entries starting with . : 命令的参数
}
跟less命令的查找方式相同
查看配置文件的帮助信息 :
[root@localhost ~]# man services
{
NAME
services - Internet network services list : 配置文件的功能
Each line describes one service, and is of the form:
service-name port/protocol [aliases ...] : 配置文件的格式
}
使用配置文件的相对路径即可, 使用绝对路径则打开的是文件内容.
如果它既是配置文件(5)又是命令(1), 系统会默认打开命令的帮助信息, 打开配置文件的帮助需声明"man 5 配置文件名称"
- 命令 : whatis
功能 : 获取命令的功能信息
语法 : whatis [命令] - 命令 : apropos
功能 : 获取命令的功能信息
语法 : apropos [命令] - 命令 : --help
功能 : 获取命令的参数信息
语法 : [命令] --help - 命令 : help
功能 : 获取shell内置命令的帮助信息
语法 : help [命令]
用户管理命令
- 命令 : useradd
路径 : /usr/bin/useradd
权限 : root
功能 : 添加新用户
语法 : useradd 用户名 - 命令 : passwd
英文 : password
路径 : /usr/bin/passwd
权限 : 所有用户 ( root可以更改所有用户的密码, 且密码可随意设置; 普通用户只能更改自己的密码, 但密码必须遵守密码规则 )
功能 : 給用户设置密码
语法 : passwd 密码 - 命令 : who
路径 : /usr/bin/who
权限 : 所有用户
功能 : 查看登录用户信息
语法 : who
[root@localhost ~]# who
root :0 2023-01-02 09:26 (:0)
root pts/0 2023-01-02 09:26 (:0)
root pts/1 2023-01-02 09:26 (192.168.200.1)
root tty2 2023-01-02 09:26
root
: 登录用户名
:0
: 本地终端
tty2~6
: 本地终端
pts/1
: 远程终端
ctrl + alt + F2~6
: 可切换到终端tty2~6, tty1是图形化界面终端
2023-01-02 09:26
: 登录时间
(192.168.200.1)
: IP地址
- 命令 : w
路径 : /usr/bin/w
权限 : 所有用户
功能 : 查看登录用户详细信息
语法 : w
[root@localhost ~]# w
09:38:01 up 13 min, 4 users, load average: 0.00, 0.08, 0.13
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 :0 09:26 ?xdm? 41.70s 0.36s /usr/libexec/gn
root pts/0 :0 09:26 11:29 0.08s 0.08s bash
root pts/1 192.168.200.1 09:26 1.00s 0.12s 0.02s w
root tty2 09:26 11:05 0.07s 0.07s -bash
09:38:01
: 登录时间
up 13 min
: linux连续运行的时间
4 users
: 用户
load average: 0.00, 0.08, 0.13
: 系统在1,5,15分钟时的负载指数
IDLE
: 用户登录后的操作时间, 为0则是空闲
JCPU
: 累计占用的CPU时间
PCPU
: 当前命令占用的CPU时间
WHAT
: 用户执行的操作, -bash是还没有执行操作
压缩解压命令
- 命令 : gzip
英文 : GNU zip
路径 : /bin/gzip
权限 : 所有用户
功能 : 压缩文件
语法 : gzip [文件]
压缩文件格式 : .gz - 命令 : gunzip
英文 : GUN unzip
路径 : /bin/gunzip
权限 : 所有用户
功能 : 解压.gz
的压缩文件
语法 : gunzip [压缩文件]
gzip只能压缩文件, 不能压缩目录
不保留原文件
- 命令 : tar
路径 : /bin/tar
权限 : 所有用户
功能 : 打包
语法 : tar [参数] [压缩后文件名] [文件或目录]
压缩文件格式 : .tar.gz
参数 :
-c : 打包
-v : 显示详细信息
-f : 指定打包文件或目录
-z : 打包并压缩
-x : 解包
压缩 : tar -zcvf tian tian.tar.gz
解压 : tar -zxvf tian.tar.gz
- 命令 : zip
路径 : /usr/bin/zip
权限 : 所有用户
功能 : 压缩文件或目录
语法 : zip [参数] [压缩后文件名] [文件或目录]
压缩文件格式 : .zip
参数 :
-r : 压缩目录
- 命令 : unzip
路径 : /usr/bin/unzip
权限 : 所有用户
功能 : 解压.zip的压缩文件
语法 : unzip [压缩文件] - 命令 : bzip2
路径 : /usr/bin/bzip2
权限 : 所有用户
功能 : 压缩文件
语法 : bzip2 [参数] [文件]
压缩文件格式 : .bz2
参数 :
-k : 保留原文件
注意 :
bzip2的压缩比非常高, 一般用来压缩比较大的文件.
和tar连用 :
tar -jcvf tian.tar.bz2 tian
-z
换成了-j
- 命令 : bunzip2
路径 : /usr/bin/bunzip2
权限 : 所有用户
功能 : 解压压缩文件
语法 : bunzip2 [参数] [压缩文件]
参数 :
-k : 保留原文件
和tar连用 :
tar -jxvf tian.tar.bz2 tian
-z
换成了-j
网络命令
- 命令 : write
路径 : /usr/bin/write
权限 : 所有用户
功能 : 给用户发信息
语法 : write 用户名
用户必须在线
敲回车, 输入信息,
ctrl+退格键
或delete
为退格, 按ctrl+d
保存结束.
- 命令 : wall
英文 : write all
路径 : /usr/bin/wall
权限 : 所有用户
功能 : 发广播信息
语法 : wall [message]
所有用户都会收到message.
- 命令 : ping
路径 : /bin/ping
权限 : 所有用户
功能 : 测试网络连通性
语法 : ping [参数] IP地址
参数 :
-c : 指定发送次数
默认为一直ping, 按
ctrl+c
终止命令
- 命令 : ifconfig
英文 : interface configure
路径 : /sbin/ifconfig
权限 : root
功能 : 查看和设置网卡信息
语法 : ifconfig [网卡名称] [IP地址]
linux默认为两张网卡
ens33或eth0 : 本机网卡
lo : 环回网卡
[root@localhost test]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.10 netmask 255.255.255.0 broadcast 192.168.200.255
inet6 fe80::bfbf:ed39:8854:d57f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b7:c3:e7 txqueuelen 1000 (Ethernet)
RX packets 2094 bytes 188729 (184.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1291 bytes 182714 (178.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
inet 192.168.200.10 netmask 255.255.255.0 broadcast 192.168.200.255
IP地址, 子网掩码, 网关
- 命令 : mail
路径 : /bin/mail
权限 : 所有用户
功能 : 查看发送电子邮件
语法 : mail [用户名]
[root@localhost ~]# mail centos
Subject: test : 邮件标题
hello centos : 邮件内容
EOT : ctrl+d结束
[root@localhost ~]#
[centos@localhost ~]$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/centos": 1 message 1 new
>N 1 root Tue Jan 3 09:32 18/617 "test" : 第一封邮件
& 1 : 输入1, 查看邮件
.
.
.
hello centos : 邮件内容
& h : 列出邮件标题
> 1 root Tue Jan 3 09:32 18/617 "test"
& q : 退出
Held 1 message in /var/spool/mail/centos
[centos@localhost ~]$
本地用户和本地用户通信用的是本地内存, 无需搭建邮件服务, 网络也不需要.
如果是与真正的网络邮箱通信, 网络是必须的.
- 命令 : last
路径 : /usr/bin/last
权限 : 所有用户
功能 : 列出当前与过去登录系统的用户信息
语法 : last - 命令 : lastlog
路径 : /usr/bin/lastlog
权限 : 所有用户
功能 : 查看用户上次登录的时间
语法 : lastlog [参数]
参数 :
-u :
lastlog -u
+uid
- 命令 : traceroute
路径 : /bin/traceroute
权限 : 所有用户
功能 : 显示数据包到主机间的路径 ( 追踪 )
语法 : traceroute [网址] - 命令 : netstat
路径 : /bin/netstat
权限 : 所有用户
功能 : 显示网络相关信息
语法 : netstat [参数]
参数 :
-n : 显示IP地址和端口号
-l : 监听
-t : tcp协议
-u : udp协议
-r : 路由
-p : 服务名
[root@localhost ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 730/rpcbind
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1513/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1200/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1199/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1520/master
tcp6 0 0 :::111 :::* LISTEN 730/rpcbind
tcp6 0 0 :::21 :::* LISTEN 3241/vsftpd
tcp6 0 0 :::22 :::* LISTEN 1200/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1199/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1520/master
udp 0 0 0.0.0.0:46509 0.0.0.0:* 735/avahi-daemon: r
udp 0 0 0.0.0.0:901 0.0.0.0:* 730/rpcbind
udp 0 0 192.168.122.1:53 0.0.0.0:* 1513/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 1513/dnsmasq
udp 0 0 0.0.0.0:111 0.0.0.0:* 730/rpcbind
udp 0 0 0.0.0.0:5353 0.0.0.0:* 735/avahi-daemon: r
udp6 0 0 :::901 :::* 730/rpcbind
udp6 0 0 :::111 :::* 730/rpcbind
Recv-Q
: 接收数据包, 为0则表成功
Send-Q
: 发送数据包, 为0则表成功
Local Address
: 本地IP地址和本机开放的目的端口
PID/Program name
: 源端口和服务名
[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.200.2 0.0.0.0 UG 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
查看路由表
- 命令 : mount
路径 : /bin/mount
权限 : 所有用户
功能 : ( 查看 ) 挂载
语法 : mount [-t 文件系统] [设备文件名] [挂载点]
[root@localhost ~]# mount /dev/sr1 /opt/centos
mount: /dev/sr1 is write-protected, mounting read-only
[root@localhost ~]# umount /dev/sr1
卸载, 设备文件名和挂载点写一个即可.
关机重启命令
- 命令 : shutdown
语法 : shutdown [参数] [时间]
参数 :
-h : 关机
-r : 重启
- 关机
halt
poweroff
init 0
- 重启
reboot
init 6
- 系统运行级别
0 : 关机
1 : 单用户 ( 相当于windows中的安全模式, 只启动最核心的程序, 用来做修复的 )
2 : 不完全多用户, 不含nfs服务
3 : 完全多用户
4 : 未使用
5 : 图形界面
6 : 重启
init 1~5
: 切换系统运行级别
1~3
: 字符界面
4
: 不能使用
5
: 图形界面
runlevel
: 查看系统运行级别
- 退出登录
logout