本文共 12443 字,大约阅读时间需要 41 分钟。
echo 输出内容到屏幕或者文件中
> 输出重定向 先清空在写入
>> 追加输出重定向 不清空追加到文件的底部
-e 激活特殊的含义
\t tab
\n 回车
[root@oldboyedu-lnb ~]# echo oldboyedu oldboyedu [root@oldboyedu-lnb ~]# echo oldboyedu > 1.txt [root@oldboyedu-lnb ~]# cat 1.txt oldboyedu [root@oldboyedu-lnb ~]# echo oldboyedu >> 1.txt [root@oldboyedu-lnb ~]# [root@oldboyedu-lnb ~]# cat 1.txt oldboyedu oldboyedu \n 回车换行 [root@oldboyedu-lnb ~]# echo -e "oldboy\nalex\nlidao" >> 1.txt [root@oldboyedu-lnb ~]# [root@oldboyedu-lnb ~]# cat 1.txt oldboyedu oldboyedu oldboy alex lidao oldboy alex lidao \t 插入tab制表符 [root@oldboyedu-lnb ~]# echo -e "oldboy\talex\tlidao" >> 1.txt [root@oldboyedu-lnb ~]# cat 1.txt oldboyedu
oldboyedu oldboy alex lidao oldboynalexnlidao oldboynalexnlidao oldboy alex lidao oldboy alex lidao
{} 序列 大部分的命令都可以直接调用序列
[root@oldboyedu-lnb ~]# echo {1..5}1 2 3 4 5 [root@oldboyedu-lnb ~]# echo {01..5}01 02 03 04 05
[root@oldboyedu-lnb ~]# echo {1..3} 1 2 3[root@oldboyedu-lnb ~]# mkdir {1..3}[root@oldboyedu-lnb ~]# ll total 28drwxr-xr-x. 2 root root 6 Jul 30 08:22 1drwxr-xr-x. 2 root root 6 Jul 30 08:22 2drwxr-xr-x. 2 root root 6 Jul 30 08:22 3
[root@oldboyedu-lnb oldboy]# echo {a..z} a b c d e f g h i j k l m n o p q r s t u v w x y z [root@oldboyedu-lnb oldboy]# echo {A..Z} A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [root@oldboyedu-lnb oldboy]# echo {a..e} a b c d e
[root@oldboyedu-lnb oldboy]# echo {a,c,d} a c d
[root@oldboyedu-lnb oldboy]# mkdir oldboyedu alexdsx ld [root@oldboyedu-lnb oldboy]# ll total 0 drwxr-xr-x. 2 root root 6 Jul 30 08:24 alexdsx drwxr-xr-x. 2 root root 6 Jul 30 08:24 ld drwxr-xr-x. 2 root root 6 Jul 30 08:24 oldboyedu [root@oldboyedu-lnb oldboy]# mkdir {oldboyedu,alexdsx,lidao} [root@oldboyedu-lnb oldboy]# ll total 0 drwxr-xr-x. 2 root root 6 Jul 30 08:26 alexdsx drwxr-xr-x. 2 root root 6 Jul 30 08:26 lidao drwxr-xr-x. 2 root root 6 Jul 30 08:26 oldboyedu -----------[root@oldboyedu-lnb oldboy]# ls -d {oldboyedu,alexdsx,lidao}alexdsx lidao oldboyedu
oldboy01 oldboy02 oldboy03
组合方式: 序列外的字符串和序列中的每一个数字或字符进行拼接
序列可以在字符串的前面 也可以在字符串的后面
[root@oldboyedu-lnb oldboy]# echo oldboy {01..3} oldboy 01 02 03 [root@oldboyedu-lnb oldboy]# echo oldboy{01..3} oldboy01 oldboy02 oldboy03 [root@oldboyedu-lnb oldboy]# #echo {01..3}oldboy [root@oldboyedu-lnb oldboy]# echo 01oldboy 02oldboy 03oldboy 01oldboy 02oldboy 03oldboy [root@oldboyedu-lnb oldboy]# echo {01..3}oldboy 01oldboy 02oldboy 03oldboy [root@oldboyedu-lnb oldboy]# mkdir {01..3}oldboy [root@oldboyedu-lnb oldboy]# ll total 0 drwxr-xr-x. 2 root root 6 Jul 30 08:34 01oldboy drwxr-xr-x. 2 root root 6 Jul 30 08:34 02oldboy drwxr-xr-x. 2 root root 6 Jul 30 08:34 03oldboy
在/oldboy/alex/test01...test10
结果
/oldboy/alex/test01 /oldboy/alex/test02 ..../oldboy/alex/test10
[root@oldboyedu-lnb oldboy]# echo /oldboy/alex/test/oldboy/alex/test [root@oldboyedu-lnb oldboy]# #echo /oldboy/alex/test{01..2} [root@oldboyedu-lnb oldboy]# #1 /oldboy/alex/test01 /oldboy/alex/test02 [root@oldboyedu-lnb oldboy]# #mkdir /oldboy/alex/test01 /oldboy/alex/test02 [root@oldboyedu-lnb oldboy]# mkdir -p /oldboy/alex/test{01..2}
在/oldboy/www /oldboy/bbs /oldboy/blog [root@oldboyedu-lnb oldboy]# #在/oldboy/www /oldboy/bbs /oldboy/blog [root@oldboyedu-lnb oldboy]# #echo /oldboy/{www,bbs,blog} [root@oldboyedu-lnb oldboy]# #mkdir /oldboy/www /oldboy/bbs /oldboy/blog [root@oldboyedu-lnb oldboy]# [root@oldboyedu-lnb oldboy]# echo /oldboy/{www,bbs,blog} /oldboy/www /oldboy/bbs /oldboy/blog [root@oldboyedu-lnb oldboy]# mkdir /oldboy/{www,bbs,blog}
创建 www01 www02 bbs01 bbs02 blog01 blog02
[root@oldboyedu-lnb oldboy]# #创建 www01 www02 bbs01 bbs02 blog01 blog02[root@oldboyedu-lnb oldboy]# echo {www,bbs,blog}{01..2}www01 www02 bbs01 bbs02 blog01 blog02
在/oldboy/alex/下创建 stu01..10个目录 在每个目录下创建创建 www,bbs,blog目录
使用tree命令查看结果
[root@oldboyedu-lnb ~]# echo /oldboy/alex/stu{01..2}/oldboy/alex/stu01 /oldboy/alex/stu02[root@oldboyedu-lnb ~]# echo /oldboy/alex/stu{01..2}/{www,bbs,blog}/oldboy/alex/stu01/www /oldboy/alex/stu01/bbs /oldboy/alex/stu01/blog /oldboy/alex/stu02/www /oldboy/alex/stu02/bbs /oldboy/alex/stu02/blog[root@oldboyedu-lnb ~]# echo {A,B}{01..02} A01 A02 B01 B02
[root@oldboyedu-lnb ~]# #cp passwd{,.bak}[root@oldboyedu-lnb ~]# echo passwd{,.bak}passwd passwd.bak[root@oldboyedu-lnb ~]# cp passwd{,.bak}
[root@oldboyedu-lnb ~]# echo {1..10..02}1 3 5 7 9[root@oldboyedu-lnb ~]# echo {1..10..1}1 2 3 4 5 6 7 8 9 10[root@oldboyedu-lnb ~]# echo {1..10..3}1 4 7 10[root@oldboyedu-lnb ~]# echo {1..10..4}1 5 9
格式:
seq num # seq 100
-w # 输出规范的序列
-s # 指定分隔符
seq 10 # 输出数字1-10
seq -s +5 1+2+3+4+5
seq -s -5 1-2-3-4-5
seq -s \*100 |bc (乘法 *有特殊含义需要用\转义)
输出内容到屏幕中 类似于echo
-n 显示文件的行号
[root@oldboyedu-lnb ~]# cat <oldboyedu.com > EOF oldboyedu.com
[root@oldboyedu-lnb ~]# cat 1.sh for.sh passwd[root@oldboyedu-lnb oldboy]# lltotal 12-rw-r--r--. 1 root root 11 Jul 30 09:37 1.txt-rw-r--r--. 1 root root 10 Jul 30 09:37 2.txt-rw-r--r--. 1 root root 10 Jul 30 09:37 3.txt[root@oldboyedu-lnb oldboy]# cat {1..3}.txt1111111111222222222333333333[root@oldboyedu-lnb oldboy]# cat *.txt1111111111222222222333333333
文件合并
[root@oldboyedu-lnb oldboy]# cat 1.txt 2.txt 3.txt > all.txt [root@oldboyedu-lnb oldboy]# cat all.txt 1111111111 222222222 333333333 [root@oldboyedu-lnb oldboy]# cat 1.txt 2.txt 3.txt > all.txt [root@oldboyedu-lnb oldboy]# cat all.txt 1111111111 222222222 333333333 [root@oldboyedu-lnb oldboy]# cat /etc/hosts > all.txt [root@oldboyedu-lnb oldboy]# cat all.txt 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [root@oldboyedu-lnb oldboy]# cat 1.txt 2.txt 3.txt > all.txt [root@oldboyedu-lnb oldboy]# cat /etc/hosts >> all.txt [root@oldboyedu-lnb oldboy]# cat all.txt 1111111111 222222222 333333333 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [root@oldboyedu-lnb ~]# cat >1.txt<oldboy > alex > EOF [root@oldboyedu-lnb ~]# cat 1.txt oldboy alex
在工作中大的文件不使用cat和vim vim需要把文件加载到内存中 速度较慢
f # 往下翻页空格 # 往下翻页b # 往上翻页-N # 显示行号100g # 快速移动光标到100行1g # 快速移动光标到首行 G # 文件的底部 v # 进入到编辑模式:wq # 保存并退出vim模式返回less模式 / # 查找内容
n # 往下查找内容 N # 往上查找内容 q # 退出less模式
f # 往下翻页b # 往上翻页/ # 查找内容 不高亮显示
语法规范:
1) head file.txt # 默认显示file.txt的前10行
2) cat file.txt|head # seq 100|head
参数选项:
-n 显示n行
-c 显示文件的前n个字符 了解
[root@oldboyedu-lnb ~]# head /etc/services # 默认显示文件的前10行
-n2 显示输出内容的前2行 简写-2
[root@oldboyedu-lnb ~]# seq 100|head -n2
1
2
[root@oldboyedu-lnb ~]# seq 100|head -2
1
2
[root@oldboyedu-lnb ~]# head -2 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin
[root@oldboyedu-lnb ~]# head -c2 /etc/passwd ro
-n 显示尾巴最后的n行 -f follow 实时显示文件的变化 简写 tailf -F 实时显示文件的变化 监控文件是否存在 存在则正常监控 不存在则等待文件的出现
[root@oldboyedu-lnb ~]# tail -n 1 1.txt10101010101010
[root@oldboyedu-lnb ~]# tail -f /var/log/secure
显示/etc/passwd的第11行 所有能显示到屏幕上的 都可以使用head和tail
[root@oldboyedu-lnb ~]# head -11 passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin [root@oldboyedu-lnb ~]# head -11 passwd|tail -1 games:x:12:100:games:/usr/games:/sbin/nologin
语法:
grep '过滤的内容' file # 双引号 单引号 不加引号 都有特殊含义
cat file|grep '过滤的内容' # grep 单引号的含义 所见即所得
参数选项:
-n # 显示过滤到内容的行号
-v # 取反 排错搜索到的内容
^$ # 表示空行
PS: grep 直接搜索文件 使用 grep '过滤的内容' 文件
PS: grep 和其他命令的输出结合使用 ls cat 的输出结果进行过滤 cat file.txt|grep xxx
[root@oldboyedu-lnb ~]# grep root passwdroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin
[root@oldboyedu-lnb ~]# cat passwd|grep rootroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin[root@oldboyedu-lnb ~]# cat passwd|grep root
[root@oldboyedu-lnb ~]# grep -n root passwd1:root:x:0:0:root:/root:/bin/bash10:operator:x:11:0:operator:/root:/sbin/nologin
[root@oldboyedu-lnb ~]# cat 2.txtoldboyalexlidaotest[root@oldboyedu-lnb ~]# grep oldboy 2.txtoldboy[root@oldboyedu-lnb ~]# grep -v oldboy 2.txtalexlidaotest
[root@oldboyedu-lnb ~]# grep '^$' 2.txt[root@oldboyedu-lnb ~]#[root@oldboyedu-lnb ~]# grep '#' 2.txt #lidao #lidao #lidao
例: 把/etc/selinux/config中的空行和# 排除掉 只显示生效的行
[root@oldboyedu-lnb ~]# grep -v '^$' /etc/selinux/config |grep -v '#'SELINUX=disabledSELINUXTYPE=targeted 扩展:[root@oldboyedu-lnb ~]# egrep -v '^$|#' /etc/selinux/configSELINUX=disabledSELINUXTYPE=targeted
# @ / % & : tr 无法直接读取文件
< # 输入重定向
语法格式:
tr "替换谁" "替换成什么" < file
cat file|tr "替换谁" "替换成什么"
[root@oldboyedu-lnb ~]# tr ":" "#" < all.txt root#x#0#0#root#/root#/bin/bash bin#x#1#1#bin#/bin#/sbin/nologin 把结果重定向到文件中 [root@oldboyedu-lnb ~]# tr ":" "#" < all.txt > test.txt root@oldboyedu-lnb ~]# cat test.txt root#x#0#0#root#/root#/bin/bash bin#x#1#1#bin#/bin#/sbin/nologin
[root@oldboyedu-lnb ~]# cat all.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@oldboyedu-lnb ~]# cat all.txt |tr "/" ":" root:x:0:0:root::root::bin:bash bin:x:1:1:bin::bin::sbin:nologin ----------------- [root@oldboyedu-lnb ~]# cat all.txt |tr ":" "\n" root x 0 0 [root@oldboyedu-lnb ~]# cat all.txt |tr ":" "\t" root x 0 0 root /root /bin/bash bin x 1 1 bin /bin /sbin/nologin
[root@oldboyedu-lnb ~]# cat all.txt |tr ":" "+" root+x+0+0+root+/root+/bin/bash bin+x+1+1+bin+/bin+/sbin/nologin
别名的作用: 系统命令安全 方便操作
系统为了安全 给一些比较危险的命令起了个小名
当执行危险的命令时 其他是执行的另外一个命令
张三--->铁蛋
李四--->二蛋
rm ----> rm -i # -i 和我们交互执行命令
cp ----> cp -i
mv ----> mv -i
[root@oldboyedu-lnb ~]# aliasalias cp='cp -i'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias grep='grep --color=auto'alias l.='ls -d .* --color=auto'alias ll='ls -l --color=auto'alias ls='ls --color=auto'alias mv='mv -i'alias rm='rm -i'alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@oldboyedu-lnb ~]# \grep root all.txt root:x:0:0:root:/root:/bin/bash [root@oldboyedu-lnb ~]# \grep root all.txt --color root:x:0:0:root:/root:/bin/bash [root@oldboyedu-lnb ~]# unalias rm [root@oldboyedu-lnb ~]# rm -rf etc
语法格式:
alias 自己定义的名称='可以执行的命令
[root@oldboyedu-lnb ~]# alias rm='echo command rm bny......'
[root@oldboyedu-lnb ~]# tail -1 /etc/profile alias rm='echo command bny........'
vim /etc/profilealias vimeth0='cat /etc/sysconfig/network-scripts/ifcfg-eth0' "/etc/profile" 78L, 2003C written [root@oldboyedu-lnb~]# source /etc/profile[root@oldboyedu-lnb~]# vimetho-bash: vimetho: command not found[root@oldboyedu-lnb~]# vimeth0TYPE=EthernetBOOTPROTO=staticNAME=eth0DEVICE=eth0ONBOOT=yesIPADDR=10.0.0.200PREFIX=24GATEWAY=10.0.0.2DNS1=223.5.5.5
转载地址:http://evafz.baihongyu.com/