第六章 命令集结

寵の児 提交于 2019-12-02 06:34:44

命令集结

1.echo 所见即所得,输出内容到屏幕上面。

单引号和双引号及不加引号的区别?
单引号:所见即所得。单引号里面的内容,会被看做一个整体,不会解析变量和特殊字符。
双引号:所见即所得,会解析变量。
不加引号:所见即所得,会解析变量。支持通配符。
反引号:先执行反引号里面的命令,将输出结果交给外面的命令。(反引号执行的是命令)
[root@qiudao ~/shell]# mkdir date +%F
[root@qiudao ~/shell]# ll
total 12
drwxr-xr-x 2 root root 6 Jun 25 19:30 2019-06-25

[root@oldboyedu opt]# echo 123 >file.txt
[root@oldboyedu opt]# echo 123 >>file.txt

  标准输出重定向
 标准输出追加重定向

[root@oldboyedu opt]# echo -e "oldboy\noldgirl"
oldboy
oldgirl

2.whoami 显示当前用户
[root@oldboyedu opt]# whoami
root

3.pwd 显示当前所在的位置,路径
[root@oldboyedu opt]# pwd
/opt
[root@oldboyedu opt]# cd
[root@oldboyedu ~]# pwd
/root

4.history 显示历史执行命令
-c 清空历史记录
-d id 删除指定的命令记录
-w 保存历史记录到文件当中

[root@oldboyedu ~]# history
[root@oldboyedu ~]# history -d 850
[root@oldboyedu ~]# history | grep echo

5.alias 设置别名

6.unalias 取消别名

[root@oldboyedu ~]# alias tong='ping baidu.com'
[root@oldboyedu ~]# tong
PING baidu.com (123.125.114.144) 56(84) bytes of data.
64 bytes from 123.125.114.144 (123.125.114.144): icmp_seq=1 ttl=128 time=25.4 ms
64 bytes from 123.125.114.144 (123.125.114.144): icmp_seq=2 ttl=128 time=23.7 ms
64 bytes from 123.125.114.144 (123.125.114.144): icmp_seq=3 ttl=128 time=23.9 ms
^C
--- baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 23.736/24.364/25.449/0.790 ms
[root@oldboyedu ~]# unalias tong
[root@oldboyedu ~]# tong
-bash: tong: command not found

7.source 让配置文件生效

[root@oldboy250 ~]# alias bd="ping www.baidu.com"
[root@oldboy250 ~]# source /etc/bashrc
[root@oldboy250 ~]# bd

8.man 命令帮助信息

[root@oldboyedu ~]# man cd

9.help 查看系统内置命令帮助信息。

[root@oldboy250 ~]# ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

10.info 详细显示命令信息

11.shutdown 关机重启命令 ****

-h   0(时间信息,默认按分钟)  关机
-r   0(时间信息,默认按分钟) 重启
                                                                                

-c   取消你所设置关机或重启        

12.reboot 重启 ****

13.halt 关机命令,只会关闭系统,不会关掉电源,需要手动关闭电源。

14.poweroff 关机命令 ****

15.ls 显示文件详细信息
-l 以长格的形式显示属性信息
-a 显示所有文件
-h 以人类的可读形式显示
-i 显示inode号
-d 只显示目录信息
-t 按照时间排序
-r 倒叙排序
-1 列表形式显示。

16.cd 切换目录
. 当前目录
.. 当前目录的上一级目录
- 返回上一次所在的位置
~ 返回到当前用户的家目录
cd 返回到当前用户的家目录
/ 进入/目录,顶点目录。

17.mkdir 创建目录
-p 递归创建
-v 显示创建过程
{}
[root@oldboyedu ~]# mkdir oldboy{01..05}
[root@oldboyedu ~]# mkdir old{boy,girl,dog} -p
[root@oldboyedu ~]# mkdir oldboy{a..z}

18.touch 创建文件
{}

19.tree 以树状型显示目录结构。
-d 只显示目录
-L 显示目录层级
-f 只显示文件信息
-a 显示所有文件信息

20.cp 复制或者拷贝文件
-r 递归复制
-p 保持属性
-a =-pdr
-i 提示文件存在时是否覆盖(系统默认别名有)
-v 显示复制的过程
-t 把源路径和目标位置进行调换。
[root@oldboyedu ~]# cp passwd passwd.bak
[root@oldboyedu ~]# cp passwd{,.org}
[root@oldboyedu ~]# cp -r oldboy oldboy_bak
[root@oldboyedu ~]# cp -a oldboy oldboy_org

21.mv 移动和重命名
-i 提示文件存在时是否覆盖(系统默认别名有)
-t 把源路径和目标位置进行调换。

22.rm 删除命令
-i 提示文件存在时是否覆盖(系统默认别名有)
-f 强制删除,不提示
-r 递归删除,删除目录
企业当中会给rm命令设置别名,给危险的命令加上一个保险。
rm -rf /*
rm -rf ./
rm -rf . /

文件查看命令
23.cat 查看文件的内容,会将文件的所有内容显示出来。
-n 显示行号
-A 给文件内容的每行结尾加个标识符。

24.tac 倒叙查看文件的内容,把行进行倒叙

25.more 分页显示文件的内容
空格/f 向下翻页
b 向上翻页
q 退出
/ 搜索关键字,不会高亮显示
= 显示当前光标所在行
-N(数字) 指定分页显示内容的行数
+N(数字) 指定从第几行显示文件内容
文件显示完成会自动退出。

26.less 分页显示文件的内容
空格/f 向下翻页
b 向上翻页
q 退出
/ 搜索关键字,会高亮显示
-N 显示行号
文件显示完成不会自动退出。

27.head 显示文件头部信息,默认显示前十行。
-n 取消默认输出,指定你要输出的行数
-N(数字)
-cN(数字) 显示文件内容的前多少个字符

28.tail 显示文件尾部信息,默认显示最后十行。
-n 取消默认输出,指定你要输出的行数
-N(数字)
-cN(数字) 显示文件内容的最后多少个字符
[root@oldboyedu ~]# tail -c5 passwd
dboy #有一个换行符
-f 实时查看文件内容的更新
-F 实时查看文件内容的更新,当文件不存在时,会一直尝试。

29.tailf 实时查看文件内容的更新

30.grep 文件字符过滤命令,将过滤出来的内容显示颜色
-n 给过滤出来的内容加上内容所在行的行号。
-o 只显示过滤出来的内容。
-c 统计过滤出来的内容总共多少行。
-i 忽略大小写
-v 排除,取反。
-r 递归过滤
-E 配合正则表达式使用
-w 只过滤匹配的字符串。
-AN(数字) 过滤出内容的后几行
-BN(数字) 过滤出内容的前几行
-CN(数字) 过滤出内容的前后几行
^ 以什么开头的行
$ 以什么结尾的行

[root@oldboyedu ~]# ip a s eth0 |grep -wA1 inet
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
[root@oldboyedu ~]# ip a s eth0 |grep -wB1 inet
link/ether 00:0c:29:71:30:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@oldboyedu ~]# ip a s eth0 |grep -wC1 inet
link/ether 00:0c:29:71:30:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
[root@oldboyedu ~]#
[root@oldboyedu ~]#
[root@oldboyedu ~]#
[root@oldboyedu ~]# cp passwd /opt/
[root@oldboyedu ~]#
[root@oldboyedu ~]# cd /opt/
[root@oldboyedu opt]# ll
total 8
-rw-r--r--. 1 root root 4 Jun 25 16:50 file.txt
-rw-r--r--. 1 root root 965 Jun 25 18:34 passwd
[root@oldboyedu opt]# grep "root" passwd
fbgroot❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
rootoldboy
[root@oldboyedu opt]# grep -n "root" passwd
1:fbgroot❌0:0:root:/root:/bin/bash
10:operator❌11:0:operator:/root:/sbin/nologin
23:rootoldboy
[root@oldboyedu opt]# grep -i "root" passwd
fbgroot❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
ROOT
rootoldboy
[root@oldboyedu opt]# grep -o "root" passwd
root
root
root
root
root
[root@oldboyedu opt]# grep -v "root" passwd
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
games❌12💯games:/usr/games:/sbin/nologin
ftp❌14:50:FTP User:/var/ftp:/sbin/nologin
nobody❌99:99:Nobody:/:/sbin/nologin
systemd-network❌192:192:systemd Network Management:/:/sbin/nologin
dbus❌81:81:System message bus:/:/sbin/nologin
polkitd❌999:998:User for polkitd:/:/sbin/nologin
tss❌59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt❌173:173::/etc/abrt:/sbin/nologin
sshd❌74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix❌89:89::/var/spool/postfix:/sbin/nologin
ROOT
oldboy.
[root@oldboyedu opt]# grep -c "root" passwd
3
[root@oldboyedu opt]# grep -w "root" passwd
fbgroot❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
[root@oldboyedu opt]# grep "root" passwd
fbgroot❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
rootoldboy
[root@oldboyedu opt]# grep "root|sshd" passwd
[root@oldboyedu opt]# grep -E "root|sshd" passwd
fbgroot❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
sshd❌74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rootoldboy
[root@oldboyedu opt]# egrep "root|sshd" passwd
fbgroot❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
sshd❌74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rootoldboy
[root@oldboyedu opt]#
[root@oldboyedu opt]# echo root >123.txt
[root@oldboyedu opt]# echo oldboy >12.txt
[root@oldboyedu opt]#
[root@oldboyedu opt]#
[root@oldboyedu opt]# ll
total 16
-rw-r--r--. 1 root root 5 Jun 25 18:38 123.txt
-rw-r--r--. 1 root root 7 Jun 25 18:38 12.txt
-rw-r--r--. 1 root root 4 Jun 25 16:50 file.txt
-rw-r--r--. 1 root root 965 Jun 25 18:34 passwd
[root@oldboyedu opt]# grep "root" ./
./123.txt:root
./passwd:fbgroot❌0:0:root:/root:/bin/bash
./passwd:operator❌11:0:operator:/root:/sbin/nologin
./passwd:rootoldboy
[root@oldboyedu opt]# grep -r "root" ./

./123.txt:root
./passwd:fbgroot❌0:0:root:/root:/bin/bash
./passwd:operator❌11:0:operator:/root:/sbin/nologin
./passwd:rootoldboy
[root@oldboyedu opt]# mkdir old
[root@oldboyedu opt]# echo root >old/123.txt
[root@oldboyedu opt]#
[root@oldboyedu opt]# grep "root" ./
./123.txt:root
grep: ./old: Is a directory
./passwd:fbgroot❌0:0:root:/root:/bin/bash
./passwd:operator❌11:0:operator:/root:/sbin/nologin
./passwd:rootoldboy
[root@oldboyedu opt]# grep -r "root" ./

./123.txt:root
./old/123.txt:root
./passwd:fbgroot❌0:0:root:/root:/bin/bash
./passwd:operator❌11:0:operator:/root:/sbin/nologin
./passwd:rootoldboy
[root@oldboyedu opt]# grep -R "root" ./*
./123.txt:root
./old/123.txt:root
./passwd:fbgroot❌0:0:root:/root:/bin/bash
./passwd:operator❌11:0:operator:/root:/sbin/nologin
./passwd:rootoldboy
[root@oldboyedu opt]#
[root@oldboyedu opt]#
[root@oldboyedu opt]# grep ^r passwd
rootoldboy
[root@oldboyedu opt]# grep root passwd
fbgroot❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
rootoldboy
[root@oldboyedu opt]# grep y$ passwd
rootoldboy
[root@oldboyedu opt]#

字符处理命令

31.sort 排序,默认以空格为分隔符
-t 指定分隔符
-r 倒叙排序
-kN(数字) 指定列进行排序
-n 以数字形式进行排序

[root@oldboyedu opt]# cat sort.txt
b:3
c:2
a:4
e:5
d:1
f:11
[root@oldboyedu opt]# sort -t ':' -k1 sort.txt
a:4
b:3
c:2
d:1
e:5
f:11
[root@oldboyedu opt]# sort -t ':' -k2 sort.txt
d:1
f:11
c:2
b:3
a:4
e:5
[root@oldboyedu opt]# sort -t ':' -nk2 sort.txt
d:1
c:2
b:3
a:4
e:5
f:11
[root@oldboyedu opt]# sort -t ':' -rnk2 sort.txt
f:11
e:5
a:4
b:3
c:2
d:1

32.uniq 去重

-c     统计次数
-d     只显示重复的行数
-u     只显示不重复的行数

[root@oldboyedu opt]# cat oldboy.txt
oldboy
123
oldboy
123
def
abc
def
[root@oldboyedu opt]# uniq oldboy.txt
oldboy
123
oldboy
123
def
abc
def
[root@oldboyedu opt]# sort oldboy.txt
123
123
abc
def
def
oldboy
oldboy
[root@oldboyedu opt]# sort oldboy.txt | uniq
123
abc
def
oldboy
[root@oldboyedu opt]# sort oldboy.txt | uniq -c
2 123
1 abc
2 def
2 oldboy
[root@oldboyedu opt]# sort oldboy.txt | uniq -c| sort -n
1 abc
2 123
2 def
2 oldboy
[root@oldboyedu opt]# sort oldboy.txt | uniq -c| sort -rn
2 oldboy
2 def
2 123
1 abc
[root@oldboyedu opt]# sort oldboy.txt | uniq -d
123
def
oldboy
[root@oldboyedu opt]# sort oldboy.txt | uniq -u
abc
[root@oldboyedu opt]#

33.wc 统计
-l 统计行号
-c 统计文件大小,字节数
-w 统计列数,默认以空格为分隔符

[root@oldboyedu opt]# wc -l passwd
23 passwd
[root@oldboyedu opt]# wc -c passwd
965 passwd
[root@oldboyedu opt]# ll passwd
-rw-r--r--. 1 root root 965 Jun 25 18:34 passwd
[root@oldboyedu opt]# wc -w oldboy.txt
7 oldboy.txt
[root@oldboyedu opt]# wc -w /etc/hosts
10 /etc/hosts
[root@oldboyedu opt]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@oldboyedu opt]#

34.cut 截取字符,没有默认的分隔符
-d 指定分隔符
-fN(数字) 取指定的列
-cN(数字) 取指定的字符
[root@oldboyedu opt]# head -1 passwd
fbgroot❌0:0:root:/root:/bin/bash
[root@oldboyedu opt]# cut -d ':' -f7 passwd
/bin/bash
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/bin/sync
/sbin/shutdown
/sbin/halt
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
ROOT
oldboy.
rootoldboy
[root@oldboyedu opt]# cut -d ':' -f7 passwd | head -1
/bin/bash

[root@oldboyedu opt]# cut -c3-5 passwd

[root@oldboyedu opt]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:71:30:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::80b2:dc89:7adf:c7b1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@oldboyedu opt]# ip a s eth0 | head -3
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:71:30:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@oldboyedu opt]# ip a s eth0 | head -3 | tail -1
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@oldboyedu opt]# ip a s eth0 | head -3 | tail -1 | cut -d ' ' -f6
10.0.0.100/24
[root@oldboyedu opt]# ip a s eth0 | head -3 | tail -1 | cut -d ' ' -f6 |cut -d '/' -f1
10.0.0.100

[root@oldboyedu opt]# ip a s eth0 | grep -w inet | cut -d ' ' -f6 |cut -d '/' -f1
10.0.0.100
[root@oldboyedu opt]# ip a s eth0 | grep -w inet
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0

[root@oldboyedu opt]# ip a s eth0 | grep -w inet |tr '/' ' ' |cut -d ' ' -f6
10.0.0.100

35.tr 替换命令,单对单替换
-d 删除字符

[root@oldboyedu opt]# tr '1' '2' < oldboy.txt
oldboy
223
oldboy
223
def
abc
def
[root@oldboyedu opt]# tr -d 1 < oldboy.txt
oldboy
23
oldboy
23
def
abc
def

2
3

36.df 查看磁盘状态
-h 以人类的可读形式显示
-i 显示inode号的数量
[root@oldboyedu opt]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 50101352 1875312 48226040 4% /
devtmpfs 1003144 0 1003144 0% /dev
tmpfs 1014044 0 1014044 0% /dev/shm
tmpfs 1014044 9808 1004236 1% /run
tmpfs 1014044 0 1014044 0% /sys/fs/cgroup
/dev/sda1 201380 107052 94328 54% /boot
tmpfs 202812 0 202812 0% /run/user/0
[root@oldboyedu opt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 48G 1.8G 46G 4% /
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.6M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 197M 105M 93M 54% /boot
tmpfs 199M 0 199M 0% /run/user/0
[root@oldboyedu opt]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 25062912 60423 25002489 1% /
devtmpfs 250786 377 250409 1% /dev
tmpfs 253511 1 253510 1% /dev/shm
tmpfs 253511 723 252788 1% /run
tmpfs 253511 16 253495 1% /sys/fs/cgroup
/dev/sda1 102400 326 102074 1% /boot
tmpfs 253511 1 253510 1% /run/user/0

文件的上传和下载

yum install -y lrzsz

37.rz 上传,不支持大于4G的文件,不可以断点续传,不可以上传目录。

38.sz 下载文件到本地

[root@oldboyedu opt]# sz passwd

联网下载命令

39.wget 下载软件包命令,下载软件包,
-O 指定下载文件名
[root@oldboyedu opt]# wget -O 123.txt https://www.baidu.com

40.curl 下载命令,访问或者测试网站使用
-o 指定下载文件名
[root@oldboyedu opt]# curl -o 456.txt https://www.baidu.com

显示ip地址命令

41.ip 显示ip地址

[root@oldboyedu opt]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:71:30:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::80b2:dc89:7adf:c7b1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:71:30:a2 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.100/24 brd 172.16.1.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
inet6 fe80::8a2a:8884:9bb5:fd5f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@oldboyedu opt]# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:71:30:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::80b2:dc89:7adf:c7b1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:71:30:a2 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.100/24 brd 172.16.1.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
inet6 fe80::8a2a:8884:9bb5:fd5f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@oldboyedu opt]# ip address show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:71:30:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::80b2:dc89:7adf:c7b1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@oldboyedu opt]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:71:30:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::80b2:dc89:7adf:c7b1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@oldboyedu opt]#

42.ifconfig 显示ip地址命令,centos-7默认没有安装此命令。需下载
yum install -y net-tools

[root@oldboyedu opt]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.100 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::80b2:dc89:7adf:c7b1 prefixlen 64 scopeid 0x20
ether 00:0c:29:71:30:98 txqueuelen 1000 (Ethernet)
RX packets 7419 bytes 684584 (668.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4757 bytes 771409 (753.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.1.100 netmask 255.255.255.0 broadcast 172.16.1.255
inet6 fe80::8a2a:8884:9bb5:fd5f prefixlen 64 scopeid 0x20
ether 00:0c:29:71:30:a2 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 1202 (1.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@oldboyedu opt]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.100 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::80b2:dc89:7adf:c7b1 prefixlen 64 scopeid 0x20
ether 00:0c:29:71:30:98 txqueuelen 1000 (Ethernet)
RX packets 7445 bytes 686696 (670.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4771 bytes 774255 (756.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@oldboyedu opt]#

43.hostname 显示主机名
-I 显示所有的IP地址
-i 显示所有的IP地址,还会显示物理Mac地址
[root@oldboyedu opt]# hostname -I
10.0.0.100 172.16.1.100

文件查找命令
44.which 查找命令的绝对路径

[root@oldboyedu opt]# which ifconfig
/usr/sbin/ifconfig

45.whereis 查找包含命令的名称绝对路径
[root@oldboyedu opt]# whereis ifconfig
ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

46.type 显示命令的绝对路径
-a 显示内部命令绝对路径
[root@oldboyedu opt]# type passwd
passwd is /usr/bin/passwd
[root@oldboyedu opt]# type cd
cd is a shell builtin
[root@oldboyedu opt]# type -a cd
cd is a shell builtin
cd is /usr/bin/cd

链接命令
47.ln 创建软硬链接
-s 创建软链接
[root@oldboyedu opt]# ln -s /opt/old/123.txt /tmp/123.txt
[root@oldboyedu opt]# ll /tmp
total 32
lrwxrwxrwx. 1 root root 16 Jun 25 20:09 123.txt -> /opt/old/123.txt

[root@oldboyedu opt]# ln /opt/old/123.txt /tmp/123_link.txt
[root@oldboyedu opt]# ll -i /tmp/123_link.txt
101742477 -rw-r--r--. 2 root root 5 Jun 25 18:39 /tmp/123_link.txt
[root@oldboyedu opt]# ll -i /opt/old/123.txt
101742477 -rw-r--r--. 2 root root 5 Jun 25 18:39 /opt/old/123.txt

bash快捷键
Ctrl键+a 将当前光标移动到命令行的行首
Ctrl键+e 将当前光标移动到命令行的行尾
Ctrl键+u 将当前光标之前的所有字符剪切
Ctrl键+k 将当前光标之后的所有字符剪切
Ctrl键+w 将当前光标之前的字符剪切,以空格为结尾
Ctrl键+c 取消当前的操作
Ctrl键+d 退出当前会话窗口
Ctrl键+z 将当前前台运行的程序,放到后台运行。
Ctrl键+l 清屏
Ctrl键+r 搜索历史命令
Ctrl键+y 粘贴剪切板上的内容
Ctrl键+左右方向键 向指定的方向键移动一组字符,以空格为分隔符
ESC键+. 使用上一条命令的最后的参数或者路径,以空格为分隔符,空格之后的内容,
delete键 从前往后删除一个字符
!命令 执行最近的一次以该命令为开头的命令
!! 执行上一条命令

bash特性
1.命令补全
2.选项补全,需要一个软件包
3.参数补全
4.历史命令
5.命令别名
6.命令帮助
7.echo输出颜色

文本编辑器

48.vi/vim 文本编辑工具

三种模式:
普通模式(命令模式)
编辑模式
底行模式(末行模式)

普通模式:删除、复制、粘贴、撤销等操作,
G 跳转到最后一行
gg/1G 跳转到首行
N(数字)G/Ngg 跳转到某行
yy 复制当前行
Nyy 复制当前行及向下多少行,包含当前行。
p 在当前行的所在位置的下一行进行粘贴
Np 向下粘贴多次
P 在当前行的所在位置的上一行进行粘贴
NP 向上粘贴多次
u 撤销
dd 删除当前行
Ndd 删除当前行及向下多少行,包含当前行。
dG 删除当前光标以下所有行。
x/delete 删除当前光标从前往后删除一个字符
X 删除当前光标从后往前删除一个字符
r 替换当前字符,单个进行替换
R 进行连续替换,在当前光标所在字符
^ 从前当前光标移动行首
$ 从前当前光标移动行尾
Ctrl键+f 向下翻页
Ctrl键+b 向上翻页
D 删除当前光标所在位置之后的内容,针对当前行的操作
de/dw 删除一组字符串
j 向下一个字符
k 向上一个字符
h 向左一个字符
l 向右一个字符
Nj 向下指定多少个字符
Nk 向上指定多少个字符
Nh 向左指定多少个字符
Nl 向右指定多少个字符
ZZ 保存退出

编辑模式
i 在当前光标所在位置前插入字符
a 在当前光标所在位置后插入字符
I 在当前光标所在行的行首插入字符
A 在当前光标所在行的行尾插入字符
o 在当前光标所在行的下一行插入字符
O 在当前光标所在行的上一行插入字符
s 删除当前光标所在字符,并在当前光标所在位置前插入字符
S 删除当前光标所在行,并进入编辑模式
C 删除当前光标所在位置之后的内容,并进入编辑模式
cw 删除一组字符串,会进入编辑模式

底行模式(末行模式)
:N 跳转到某行
:w 保存
:q 退出
:wq 保存退出
:q! 强制退出
:x 保存退出
/ 搜索
:%s###g 全局替换
:1,3s###g 替换第一行到第三行的内容

vim变量
:set nu 显示行号
:set nonu 取消
:set list 给每行的结尾添加一个标识符
:set nolist 取消

vim故障
vim -r

特殊符号

  标准输出重定向
 标准输出追加重定向

< 标准输入重定向
{} 生成序列

  •   所有

正则
. 任意一个字符
^ 以什么开头
$ 以什么结尾
| 前面的命令执行结果交给后面的命令
&& 前面的命令执行成功,后面的命令才会执行。
|| 前面的命令执行失败,后面的命令才会执行。
! 非

注释,注释后面的内容不识别

sed 替换

取单行,第一行

[root@oldboyedu opt]# sed -n '1p' passwd
fbgroot❌0:0:root:/root:/bin/bash

取多行,不连续的多行,1和4行

[root@oldboyedu opt]# sed -n '1p;4p' passwd
fbgroot❌0:0:root:/root:/bin/bash
adm❌3:4:adm:/var/adm:/sbin/nologin

取连续的多行,1到4行

[root@oldboyedu opt]# sed -n '1,4p' passwd
fbgroot❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin

取连续的多行,11到20行

[root@oldboyedu opt]# sed -n '11,20p' passwd
games❌12💯games:/usr/games:/sbin/nologin
ftp❌14:50:FTP User:/var/ftp:/sbin/nologin
nobody❌99:99:Nobody:/:/sbin/nologin
systemd-network❌192:192:systemd Network Management:/:/sbin/nologin
dbus❌81:81:System message bus:/:/sbin/nologin
polkitd❌999:998:User for polkitd:/:/sbin/nologin
tss❌59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt❌173:173::/etc/abrt:/sbin/nologin
sshd❌74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix❌89:89::/var/spool/postfix:/sbin/nologin
[root@oldboyedu opt]#

过滤字符串

[root@oldboyedu opt]# sed -n '/root/p' passwd
fbgroot❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
rootoldboy

排除字符串

[root@oldboyedu opt]# sed '/root/d' passwd
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync

删除当行,删除第一行

[root@oldboyedu opt]# sed '1d' passwd
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync

删除不连续的多行,删除第一行和第四行

[root@oldboyedu opt]# sed '1d;4d' passwd
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown

删除连续的多行,删除第一行到第15行

[root@oldboyedu opt]# sed '1,15d' passwd
polkitd❌999:998:User for polkitd:/:/sbin/nologin
tss❌59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt❌173:173::/etc/abrt:/sbin/nologin
sshd❌74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix❌89:89::/var/spool/postfix:/sbin/nologin

替换

[root@oldboyedu opt]# grep 'root' passwd
fbgroot❌0:0:root:/root:/bin/bash

将你要替换的内容打印到屏幕上面,确认修改是否正确

[root@oldboyedu opt]# sed 's#root#admin#g' passwd
fbgadmin❌0:0:admin:/admin:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown

真正替换,会修改文件的内容

[root@oldboyedu opt]# sed -i 's#root#admin#g' passwd
[root@oldboyedu opt]# grep root passwd
[root@oldboyedu opt]# grep admin passwd
fbgadmin❌0:0:admin:/admin:/bin/bash

取ip地址

[root@oldboyedu opt]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.100 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::80b2:dc89:7adf:c7b1 prefixlen 64 scopeid 0x20
ether 00:0c:29:71:30:98 txqueuelen 1000 (Ethernet)
RX packets 10434 bytes 945192 (923.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6809 bytes 986561 (963.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@oldboyedu opt]# ifconfig eth0 | sed -n '2p'
inet 10.0.0.100 netmask 255.255.255.0 broadcast 10.0.0.255
[root@oldboyedu opt]# ifconfig eth0 | sed -n '2p' |cut -d ' ' -f 10
10.0.0.100

[root@oldboyedu opt]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:71:30:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::80b2:dc89:7adf:c7b1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@oldboyedu opt]# ip a s eth0 |sed -n '3p'
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@oldboyedu opt]# ip a s eth0 |sed -n '3p' |sed 's#/# #g'
inet 10.0.0.100 24 brd 10.0.0.255 scope global noprefixroute eth0
[root@oldboyedu opt]# ip a s eth0 |sed -n '3p' |sed 's#/# #g' |cut -d ' ' -f 10
scope
[root@oldboyedu opt]# ip a s eth0 |sed -n '3p' |sed 's#/# #g' |cut -d ' ' -f 6
10.0.0.100
[root@oldboyedu opt]# ip a s eth0 |sed -n '3s#/# #gp'
inet 10.0.0.100 24 brd 10.0.0.255 scope global noprefixroute eth0
[root@oldboyedu opt]# ip a s eth0 |sed -n '3s#/# #gp' |cut -d ' ' -f6
10.0.0.100

awk 擅长取列

取单行,取出第一行

[root@oldboyedu opt]# awk 'NR==1' passwd
fbgadmin❌0:0:admin:/admin:/bin/bash

取不连续的多行,第一行和第三行

[root@oldboyedu opt]# awk 'NR==1;NR==3' passwd
fbgadmin❌0:0:admin:/admin:/bin/bash
daemon❌2:2:daemon:/sbin:/sbin/nologin

取连续的多行,第一行到第三行

[root@oldboyedu opt]# awk 'NR==1,NR==3' passwd
fbgadmin❌0:0:admin:/admin:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
[root@oldboyedu opt]#

过滤字符串 (格式:awk '//' 过滤字符串)

[root@oldboyedu opt]# awk '/admin/' passwd
fbgadmin❌0:0:admin:/admin:/bin/bash

取反。(!代表“非”,排除(取反))

[root@oldboyedu opt]# awk '!/admin/' passwd
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown

取列 NF表示最后一列(NR代表行)

[root@oldboyedu opt]# awk 'NR==1' passwd
fbgadmin❌0:0:admin:/admin:/bin/bash
[root@oldboyedu opt]# awk 'NR==1' passwd | awk -F '[:]' '{print $7}'
/bin/bash
[root@oldboyedu opt]# awk 'NR==1' passwd | awk -F '[:]' '{print $NF}'
/bin/bash
[root@oldboyedu opt]# awk -F: '{print $7}' passwd
/bin/bash
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/bin/sync
/sbin/shutdown
[root@oldboyedu opt]# awk -F: 'NR==1{print $7}' passwd
/bin/bash
[root@oldboyedu opt]#

取ip地址

[root@oldboyedu opt]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.100 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::80b2:dc89:7adf:c7b1 prefixlen 64 scopeid 0x20
ether 00:0c:29:71:30:98 txqueuelen 1000 (Ethernet)
RX packets 11563 bytes 1044609 (1020.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7517 bytes 1065277 (1.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

先取出IP所在的行

[root@oldboyedu opt]# ifconfig eth0 | awk 'NR==2'
inet 10.0.0.100 netmask 255.255.255.0 broadcast 10.0.0.255

再取出IP所在的列

[root@oldboyedu opt]# ifconfig eth0 | awk 'NR==2' |awk '{print $2}'
10.0.0.100

简化过程1

[root@oldboyedu opt]# ifconfig eth0| awk '{print $2}'
flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
10.0.0.100
fe80::80b2:dc89:7adf:c7b1
00:0c:29:71:30:98
packets
errors
packets
errors

简化过程2

[root@oldboyedu opt]# ifconfig eth0| awk 'NR==2{print $2}'
10.0.0.100

取IP地址

[root@oldboyedu opt]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:71:30:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::80b2:dc89:7adf:c7b1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@oldboyedu opt]# ip a s eth0 | awk 'NR==3'
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@oldboyedu opt]# ip a s eth0 | awk 'NR==3' |awk -F '[ /]' '{print $6}'
10.0.0.100
[root@oldboyedu opt]# ip a s eth0 |awk -F '[ /]' 'NR==3{print $6}'
10.0.0.100

[root@oldboy250 ~]# ip a s eth0|awk -F'[ /]+' 'NR==3 {print $6}'
10.0.0.255

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!