day07---系统命令

网友投稿 755 2022-09-10

day07---系统命令

day07---系统命令

课程知识概述--系统命令seqcatlessmoreheadtailgreptralias复习1.echo -e 激活特殊的意义 \n 表示回车 \t tab键 [root@oldboy~]#echo "oldboy\talex" oldboy\talex [root@oldboy~]# [root@oldboy~]#echo -e "oldboy\talex" oldboy alex [root@oldboy~]#echo "oldboy\nalex" oldboy\nalex [root@oldboy~]# [root@oldboy~]# [root@oldboy~]#echo -e "oldboy\nalex" oldboy alex 例子:在/oldboy目录下创建 oldboy1/01stu..02stu oldboy2/01stu..02stu oldboy3/01stu..02stu oldboy10/01stu..02stu 结果如下: /oldboy/oldboy1/01stu /oldboy/oldboy1/02stu /oldboy/oldboy2/01stu /oldboy/oldboy2/02stu .... /oldboy/oldboy10/01stu /oldboy/oldboy10/02stu 例子2: 在/oldboy目录下创建 test01/blog test01/bbs test01/ test10/blog test10/bbs test10/ 结果: 在/oldboy下有10个目录 test01..test10 在10个目录下分别有三个目录 bbs blog [root@oldboy~]#echo /oldboy/oldboy{01..10} /oldboy/oldboy01 /oldboy/oldboy02 /oldboy/oldboy03 /oldboy/oldboy04 /oldboy/oldboy05 /oldboy/oldboy06 /oldboy/oldboy07 /oldboy/oldboy08 /oldboy/oldboy09 /oldboy/oldboy10 [root@oldboy~]##mkdir /oldboy/oldboy{01..10} [root@oldboy~]# [root@oldboy~]#mkdir oldboy01 oldboy02 oldboy03 [root@oldboy~]#ll 总用量 468972 -rw-r--r--. 1 root root 23 4月 27 10:25 1.txt -rw-r--r--. 1 root root 89782552 3月 20 17:23 360safe+267791+n498d041f99.exe -rw-r--r--. 1 root root 389758391 8月 22 2018 gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm drwxr-xr-x. 2 root root 6 5月 8 08:52 oldboy01 drwxr-xr-x. 2 root root 6 5月 8 08:52 oldboy02 drwxr-xr-x. 2 root root 6 5月 8 08:52 oldboy03 -rw-r--r--. 1 root root 201 5月 7 11:39 passwd -rw-r--r--. 1 root root 670293 5月 7 11:17 services drwxr-xr-x. 12 root root 136 5月 7 11:56 test -rw-r--r--. 1 root root 94 4月 29 11:51 test.sh [root@oldboy~]#mkdir /oldboy/oldboy1 /oldboy/oldboy2 /oldboy/oldboy3 [root@oldboy~]#echo /oldboy/oldboy{01..2}/01stu /oldboy/oldboy01/01stu /oldboy/oldboy02/01stu [root@oldboy~]# [root@oldboy~]# [root@oldboy~]#echo /oldboy/oldboy{01..2}/{01..02}stu /oldboy/oldboy01/01stu /oldboy/oldboy01/02stu /oldboy/oldboy02/01stu /oldboy/oldboy02/02stu tree 以树形结构显示 yum -y install tree -d 只显示所有的目录 [root@oldboy~]#tree -d /oldboy/ /oldboy/ ├── oldboy01 │ ├── 01stu │ └── 02stu ├── oldboy02 │ ├── 01stu │ └── 02stu ├── oldboy03 │ ├── 01stu │ └── 02stu -L 深度等级 PS: -L 1 之间有空格 [root@oldboy~]#tree -L 1 /oldboy/ /oldboy/ ├── oldboy01 ├── oldboy02 ├── oldboy03 ├── oldboy04 ├── oldboy05 ├── oldboy06 ├── oldboy07 ├── oldboy08 ├── oldboy09 └── oldboy10 [root@oldboy~]#tree --du -h /root/ /root/ ├── [ 23] 1.txt ├── [ 86M] 360safe+267791+n498d041f99.exe ├── [372M] gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm ├── [ 6] oldboy01 ├── [ 6] oldboy02 ├── [ 6] oldboy03 ├── [ 201] passwd ├── [655K] services ├── [ 196] test │ ├── [ 6] stu01 │ ├── [ 6] stu02 │ ├── [ 6] stu03 │ ├── [ 6] stu04 │ ├── [ 6] stu05 │ ├── [ 6] stu06 │ ├── [ 6] stu07 │ ├── [ 6] stu08 │ ├── [ 6] stu09 │ └── [ 6] stu10 └── [ 94] test.sh 458M used in 14 directories, 6 files [root@oldboy~]#tree --du -h gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm 372M used in 0 directories, 0 files [root@oldboy~]#tree gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm [error opening dir] 0 directories, 0 files 例子2: 在/oldboy目录下创建 test01/blog test01/bbs test01/ test10/blog test10/bbs test10/ 结果: 在/oldboy下有10个目录 test01..test10 在10个目录下分别有三个目录 bbs blog echo {} 序列中输出不规范的字符串或者数字 1 10 20 35 [root@oldboy~]#echo stu01 stu10 stu15 stu22 stu33 stu01 stu10 stu15 stu22 stu33 [root@oldboy~]# [root@oldboy~]# [root@oldboy~]#echo stu{01,10,15,22,33} stu01 stu10 stu15 stu22 stu33 [root@oldboy~]#echo {a,r,u}oldboy aoldboy roldboy uoldboy [root@oldboy~]#echo {a,r,u}-oldboy a-oldboy r-oldboy u-oldboy [root@oldboy~]# [root@oldboy~]#echo oldboy{ oldboyoldboybbs oldboyblog [root@oldboy~]# [root@oldboy~]# [root@oldboy~]#echo oldboy/{ oldboy/oldboy/bbs oldboy/blog [root@oldboy~]#echo A-A-blog B-B-blog A-A-blog B-B-blog [root@oldboy~]# [root@oldboy~]#echo {A,B}{ AAblog BBblog [root@oldboy~]# [root@oldboy~]# [root@oldboy~]#echo {A,B}-{ A-A-blog B-B-blog [root@oldboy~]#mkdir -p /oldboy/test{01..10}/{ [root@oldboy~]# [root@oldboy~]#tree /oldboy/ /oldboy/ ├── test01 │ ├── bbs │ ├── blog │ └── ├── test02 │ ├── bbs │ ├── blog │ └── 错误的书写方式: [root@oldboy~]#echo /oldboy/test{01..02}/bbs blog /oldboy/test01//oldboy/test02/bbs blog [root@oldboy~]#mkdir /oldboy/test{01..02}/bbs blog mkdir: 无法创建目录"/oldboy/test01/没有那个文件或目录 mkdir: 无法创建目录"/oldboy/test02/没有那个文件或目录 [root@oldboy~]#mkdir -p /oldboy/test{01..02}/bbs blog [root@oldboy~]# [root@oldboy~]#tree /oldboy/ /oldboy/ ├── test01 │ └── └── test02 └── 4 directories, 0 files [root@oldboy~]#ll bbs/ blog/ bbs/: 总用量 0 blog/: 总用量 02.seq 序列 -w 输出规范的数字 echo {01..10} -s 指定分隔符 默认回车分隔 [root@oldboy~]#seq -s + 10 1+2+3+4+5+6+7+8+9+103.cat 查看文件内容 -n 显示行号 1)输出内容到屏幕 shell编程 打印菜单 [root@oldboy~]#cat < oldboyedu > EOF oldboyedu [root@oldboy~]#cat < test > alex > AAA test alex 2)内容输入到文件中 > 先清空后写入 [root@oldboy~]#cat 1.txt test test oldboy alex lidao [root@oldboy~]#cat >1.txt< hehe > hehe > hehe > EOF [root@oldboy~]#cat 1.txt hehe hehe hehe 3)内容追加到文件中 >> 追加内容 [root@oldboy~]#cat 1.txt hehe hehe hehe [root@oldboy~]#cat >>1.txt< oldboy > oldboy > EOF [root@oldboy~]#cat 1.txt hehe hehe hehe oldboy oldboy 4)合并文件 将多个文件的内容合并到同一个文件 方便统计计算 [root@oldboy~]#cat 1.txt 2.txt 3.txt hehe hehe hehe oldboy oldboy [root@oldboy~]#echo 11111111 >1.txt [root@oldboy~]#echo 22222222 >2.txt [root@oldboy~]#echo 33333333 >3.txt [root@oldboy~]#cat 1.txt 2.txt 3.txt 11111111 22222222 33333333 [root@oldboy~]#cat 1.txt 11111111 [root@oldboy~]#cat 2.txt 22222222 [root@oldboy~]#cat 3.txt 33333333 [root@oldboy~]#cat 1.txt 2.txt 3.txt > all.txt [root@oldboy~]# [root@oldboy~]#cat all.txt 11111111 22222222 33333333 PS: 只要能在屏幕上显示的内容 就可以定向到文件中 > >> [root@oldboy~]#cat {1..3}.txt 11111111 22222222 33333333 [root@oldboy~]#echo "1111111111\n2222222333333" 1111111111\n2222222333333 [root@oldboy~]#echo -e "1111111111\n2222222333333" 1111111111 2222222333333 [root@oldboy~]# [root@oldboy~]#echo -e "1111111111\n2222222\n33333333" 1111111111 2222222 33333333 [root@oldboy~]# [root@oldboy~]#echo -e "1111111111\n2222222\n33333333" >all.txt [root@oldboy~]# [root@oldboy~]# [root@oldboy~]#cat all.txt 1111111111 2222222 33333333 4.less 一页一页的查看文件内容 运行一个文件 程序 系统加载到内存中运行 如果一个文件较大 加载到内存的速度较慢 vim 当前所有的文件内容加载到内存中 PS:在Linux中查看大文件不用vim和cat 参数选项: -N 显示行号 f 往下翻页 空格 往下翻页 b 往上翻页 100g 快速移动到100行 gg 移动到文件的开头 1g 移动到文件的开头 G 文件的结尾 / 搜索字符串 n 往下查找 N 往上查找 q 退出5.more 一页一页的查看文件内容 建议使用less f b 到文件的末尾自动退出6.head 从文件的第一行开始显示 默认显示前10行 包含空行 -n 5 显示文件的前5行 -5 简写 -c 显示文件的前n个字符 [root@oldboy~]#head -5 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@oldboy~]#head -2 services # /etc/services: # $Id: services,v 1.55 2013/04/14 ovasik Exp $ [root@oldboy~]#head 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 # # 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 -c 了解 [root@oldboy~]#head -c 3 services # /[root@oldboy~]# 7. tail 默认显示尾部的10行内容 -n5 显示最后5行内容 -5 简写 -f 实时显示文件内容的变化 follow 跟随 tailf 简写 -F 时时显示文件内容的变化 如果查看的文件不存在 则会等待 监控此文件 1)[root@oldboy~]#tail -n 2 services iqobject 48619/udp # iqobject matahari 49000/tcp # Matahari Broker [root@oldboy~]#tail -2 services iqobject 48619/udp # iqobject matahari 49000/tcp # Matahari Broker 例子: head tail 1.复制/etc/passwd 到当前家目录 2.显示当前passwd的第15行 如何显示? [root@oldboy~]#head -16 passwd |tail -1 polkitd:x:999:998:User for polkitd:/:/sbin/nologin 管道:可以把管道前的命令的结果 作为后面命令来使用 2)-f 时时显示文件内容的变化 tail -f 简写 tailf [root@oldboy~]#tailf /var/log/messages May 8 11:04:36 oldboy systemd: Starting firewalld - dynamic firewall daemon... May 8 11:04:37 oldboy systemd: Started firewalld - dynamic firewall daemon. May 8 11:04:37 oldboy kernel: ip_tables: (C) 2000-2006 Netfilter Core Team 3)-F 时时显示文件内容的变化 如果查看的文件不存在 则会等待 监控此文件 [root@oldboy~]#tail -F oldboy.txt tail: 无法打开"oldboy.txt" 读取数据: 没有那个文件或目录 tail: "oldboy.txt" 已被建立,正在跟随新文件的末尾 test test test test test test8. grep 查找过滤字符串 awk sed grep 选项参数: -n 显示过滤到内容的行号 -v 取反 语法格式: 三剑客中 单引号 双引号 不加引号 意义不同 grep 'root' file cat passwd|grep root 方法1: [root@oldboy~]#grep 'root' passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin 方法2: [root@oldboy~]#cat passwd |grep root root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin 方法3: -n [root@oldboy~]#grep -n root passwd 1:root:x:0:0:root:/root:/bin/bash 10:operator:x:11:0:operator:/root:/sbin/nologin [root@oldboy~]#grep -n . passwd 25:oldboy1:x:1002:1002::/home/oldboy1:/bin/bash 26:oldboy2:x:1003:1003::/home/oldboy2:/bin/bash PS: . 代表了单个任意字符 *所有 ^ 以任意字符开头 $ 以任意字符结尾 ^$ 空行 < 标准输入 常和tr配合使用 方法4: -v 取反 [root@oldboy~]#cat 1.txt oldboy alex goudan gousheng erma [root@oldboy~]#grep oldboy 1.txt oldboy [root@oldboy~]#grep -v oldboy 1.txt alex goudan gousheng erma 方法5: 配置文件都有注释 只想查看生效的配置 [root@oldboy~]#grep -v '#' config SELINUX=disabled SELINUXTYPE=targeted [root@oldboy~]#grep '^$' config [root@oldboy~]#grep -v '^$' config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. #SELINUX=enforcing SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted [root@oldboy~]#grep -v '^$' config |grep -v '#' SELINUX=disabled SELINUXTYPE=targeted 扩展: [root@oldboy~]#egrep -v '^$|#' config SELINUX=disabled SELINUXTYPE=targeted 9.tr 内容替换 1对1的替换 不能替换字符串 (oldboy alex 错误的) sed替换 特殊符号的替换 PS: 有些命令不能直接对文件进行操作 [root@oldboy~]#tr ":" "#" 1.txt tr: 额外的操作数 "1.txt" Try 'tr --help' for more information. 方法1: [root@oldboy~]#cat 1.txt |tr ":" "#" root#x#0#0#root#/root#/bin/bash bin#x#1#1#bin#/bin#/sbin/nologin daemon#x#2#2#daemon#/sbin#/sbin/nologin 方法2: [root@oldboy~]#tr ":" "#" < 1.txt root#x#0#0#root#/root#/bin/bash bin#x#1#1#bin#/bin#/sbin/nologin daemon#x#2#2#daemon#/sbin#/sbin/nologin [root@oldboy~]#tr "/" "+" < 1.txt root:x:0:0:root:+root:+bin+bash bin:x:1:1:bin:+bin:+sbin+nologin daemon:x:2:2:daemon:+sbin:+sbin+nologin [root@oldboy~]# [root@oldboy~]# [root@oldboy~]#tr "\n" "+" < 1.txt root:x:0:0:root:/root:/bin/bash+bin:x:1:1:bin:/bin:/sbin/nologin+daemon:x:2:2:daemon:/sbin:/sbin/nologin+[root@oldboy~]# 方法3: 无意义的替换 [root@oldboy~]#cat 2.txt aabbcc aabbcc aabbcc oldboy [root@oldboy~]#tr "oldboy" "alex" < 2.txt aaxxcc aaxxcc aaxxcc xlexxx9. alias 别名 系统安全设置 周玉强 强哥 小强 强强 钢炮 冉xx oldboy mv --->别名---> mv -i rm --->别名---> rm -i cp --->别名---> cp -i ll --->别名---> ls -l [root@oldboy~]#rm -i 1.txt # -i 和用户交互 提高安全性 rm:是否删除普通文件 "1.txt"? rm='rm -i' 执行rm命令 其实是执行了 rm -i 第一个里程碑 如何查看系统设定好的别名 [root@oldboy~]#alias alias 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' 第二个里程碑 临时取消别名 \ 转译 还原本来的意义 脱掉了马甲 [root@oldboy~]#\rm 1.txt 第三个里程碑 如何设置别名 格式: alias 别名的名称(随便定义见名字知道其意思)='系统可执行的命令' [root@oldboy~]#alias rm='echo command bny....' [root@oldboy~]#\rm 2.txt 例子: [root@oldboy~]#alias vieth0='vim /etc/sysconfig/network-scripts/ifcfg-eth0' [root@oldboy~]#vieth0 第四个里程碑 取消别名 [root@oldboy~]#unalias rm 第五个里程碑 永久生效 写入 /etc/profile source /etc/profile PS:工作中上吧的时候一定要注意查看 alias

-------------------------------------------

个性签名:代码过万,键盘敲烂!!!

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:单元测试unittest(单元测试unit3新视野大学英语第三版读写4答案)
下一篇:Demo:Menu Bar
相关文章

 发表评论

暂时没有评论,来抢沙发吧~