bash shell 编程练习
原始文件:
find /etc -name passwd 2>&1 | tee ee.log
1. cat -n 把 e.log 的文档内容加上行号后输入 e2.log 这个文档里:
xiluhua@localhost ~/t2scripts $ cat -n e.log | tee e2.log
/etc/passwd find: `/etc/ntp/crypto': Permission denied
find: `/etc/audisp': Permission denied
find: `/etc/audit': Permission denied find: `/etc/polkit-/localauthority': Permission denied
find: `/etc/dhcp': Permission denied
/etc/pam.d/passwd
find: `/etc/lvm/backup': Permission denied
find: `/etc/lvm/cache': Permission denied
find: `/etc/lvm/archive': Permission denied
find: `/etc/cups/ssl': Permission denied
find: `/etc/pki/rsyslog': Permission denied find: `/etc/pki/CA/private': Permission denied
find: `/etc/vmware-tools/GuestProxyData/trusted': Permission denied
find: `/etc/sudoers.d': Permission denied
find: `/etc/selinux/targeted/modules/active': Permission denied
2. cat -b 把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
xiluhua@localhost ~/t2scripts $ cat -b e.log | tee e3.log
/etc/passwd find: `/etc/ntp/crypto': Permission denied
find: `/etc/audisp': Permission denied
find: `/etc/audit': Permission denied find: `/etc/polkit-/localauthority': Permission denied
find: `/etc/dhcp': Permission denied
/etc/pam.d/passwd
find: `/etc/lvm/backup': Permission denied
find: `/etc/lvm/cache': Permission denied
find: `/etc/lvm/archive': Permission denied
find: `/etc/cups/ssl': Permission denied
find: `/etc/pki/rsyslog': Permission denied find: `/etc/pki/CA/private': Permission denied
find: `/etc/vmware-tools/GuestProxyData/trusted': Permission denied
find: `/etc/sudoers.d': Permission denied
find: `/etc/selinux/targeted/modules/active': Permission denied
3. cat /dev/null 清空 ee.log 文档内容:
cat /dev/null > e3.log
4. chattr +i:不得任意更动文件或目录。
root@localhost /home/xiluhua/t2scripts $ chattr +i ttt.sh $ 加了 +i 之后,root权限也删不了了
root@localhost /home/xiluhua/t2scripts $ rm -rf ttt.sh
rm: cannot remove `ttt.sh': Operation not permitted
5. chgrp
root@localhost /home/xiluhua/t2scripts # touch ttt.sh
root@localhost /home/xiluhua/t2scripts # ll ttt.sh
-rw-r--r--. root root Jan : ttt.sh
root@localhost /home/xiluhua/t2scripts # chgrp xiluhua ttt.sh
root@localhost /home/xiluhua/t2scripts # ll ttt.sh
-rw-r--r--. root xiluhua Jan : ttt.sh
6. chmod
xiluhua@localhost ~/t2 $ chmod --reference=t.sh tt.sh # 以 t.sh 为原型更改 tt.sh 的权限
xiluhua@localhost ~/t2 $ ll tt.sh
-rwxrwxr-x. xiluhua xiluhua Jan : tt.sh
xiluhua@localhost ~/t2 $
7. file (1) 用于辨识文件类型。
xiluhua@localhost ~/t2scripts $ file t.sh -i # 显示 mime 类别
t.sh: text/x-shellscript; charset=us-ascii
8. file (2) 显示符号链接的文件类型
xiluhua@localhost ~ $ ln -s t2scripts/ t2 xiluhua@localhost ~ $ file -L t2
t2: directory
9. cut
xiluhua@localhost ~/t2 $ cat /etc/passwd|head -n |cut -d : -f ,-,
root:::root:/bin/bash
bin:::bin:/sbin/nologin
daemon:::daemon:/sbin/nologin
adm:::adm:/sbin/nologin
lp:::lp:/sbin/nologin
10. lsattr 用于显示文件属性,配合 chattr 命令使用
xiluhua@localhost ~/t2 $ lsattr tt.sh
----i--------e- tt.sh
11. tee
xiluhua@localhost ~/t2 $ cat f3.log | tee f4.log f5.log # 同时输出到 f4和f5 两个文件
abc
efg
12. umask (1)指定在建立文件时预设的权限掩码。
root@localhost ~ # umask root@localhost ~ # umask -S
u=rwx,g=rx,o=rx
13. umask (2)
xiluhua@localhost ~ $ umask xiluhua@localhost ~ $ umask -S
u=rwx,g=rwx,o=rx
14. which命令用于查找文件。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
15. whereis
root@localhost ~ # whereis bash
bash: /bin/bash /usr/share/man/man1/bash..gz
16. scp (1) 本地到远程
scp install.log xiluhua@192.168.178.132:~
17. scp (2) 远程到本地
scp xiluhua@192.168.178.132:~/rmq_bk_gc.log .
18. awk 是一种处理文本文件的语言,是一个强大的文本分析工具。
19. awk (1)
xiluhua@localhost ~/t2 $ awk '{print $1,$3}' f1.log
is
you
This's test
are
20. awk (2)
xiluhua@localhost ~/t2 $ awk '{printf "%-8s %-10s\n",$1,$4}' f1.log # 格式化输出
a
like
This's
orange,apple,mongo
21. awk (3)
提取yum list结果的第三列并除重
root@vm-xiluhua /mnt # yum -q list | awk '{print $3}'| sort -u
bash shell 编程练习的更多相关文章
- abc高级bash shell编程
http://www.pythoner.com/122.html abc高级bash shell编程
- linux 10 -Bash Shell编程
二十三. Bash Shell编程: 1. 读取用户变量: read命令是用于从终端或者文件中读取输入的内建命令,read命令读取整行输入,每行末尾的换行符不被读入.在read命令后 ...
- 【shell编程基础0】bash shell编程的基本配置
前面一篇“shell编程之变量篇”主要讲述下shell编程的变量的基本知识:设置变量的方式,自定义变量和环境变量的差别,变量的替换.删除.测试等. 这一篇主要是讲述在bash shell下的一些基本配 ...
- Bash shell编程的语法知识点(1)
Bash shell脚本编程知识点如下(初学,不全,欢迎讨论补充): shell简介 脚本的简单介绍 变量和引用 算术运算 交互式编程 选择判断 条件测试 循环 函数 shell简介 shell是一种 ...
- Bash Shell编程简记
Shell编程简记 经常在linux环境下开发的同学,难免要使用shell的一些命令或者编写小的脚本,我这里也总结和整理下,自己对Shell的理解和常用的一些shell脚本. 按照目录分为如下3个节: ...
- Bash Shell编程要点小结
一.case命令 case variable invalue1) command(s);; value2) command(s);; *) command(s);; esac 如果case变量没有被匹 ...
- GNU Bash Shell 编程图解笔记
bash,Unix shell的一种,在1987年由布莱恩·福克斯为了GNU计划而编写.1989年发布第一个正式版本,原先是计划用在GNU操作系统上,但能运行于大多数类Unix系统的操作系统之上,包括 ...
- bash/shell编程学习(3)
接上节继续, 1. 从键盘读取输入内容 #!/bin/bash read -p 'please input something:' input echo 'your input:' $input 运行 ...
- bash/shell编程学习(1)
1)定义变量 myvar=abc #注:等号前后不能加空格 #或 myvar="abc" #或 myvar='abc' #注:如果变量后面的值中间本身没有空格,加不加引号都无所谓, ...
- bash/shell编程学习(2)
先来复习上节重定向的用法: 1.快速清空文件 cat demo.txt < /dev/null 注:linux中有一个经典名言[一切皆文件],/dev/null可以认为是一个特殊的空文件,更形象 ...
随机推荐
- 洛谷P4151 最大XOR和路径 [WC2011] 线性基+图论
正解:线性基+图论 解题报告: 传送门 首先可以思考一下有意义的路径会是什么样子,,,那就一定是一条链+一些环 挺显然的因为一条路径原路返回有没有意义辣?所以一定是走一条链+一些环(当然也可以麻油环, ...
- MVVM软件设计模式(转)
add by zhj: MVVM是一种软件设计模式,这里要说一下设计模式,我们通常所的设计模式是指面向对象中的设计模式,用在面向对象编程语言中.但软件设计模式是更高一个级别的设计模式,两者不是同一个东 ...
- 四、Spring Boot Web开发
四.Web开发 1.简介 使用SpringBoot: 1).创建SpringBoot应用,选中我们需要的模块: 2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可 ...
- Linux下Redis的安装与启动
一. 进入目录(我们准备将redis装入opt文件夹) $ cd /opt/ 二.下载redis压缩包 $ wget http://download.redis.io/releases/redis-4 ...
- MongoDB pymongo模块
安装pymongo模块 pip install pymongo 连接mongodb代码,生成pymongo对象,传入连接服务器相关参数 ip 端口 如果使用指定的账户登录,设置要登录的账户和密码,然后 ...
- vue中根据当前时间进行排序
computed: { newdataList: function() { return this.sortKey(this.dataList, "addtime"); } }, ...
- Observer(__ob__: Observer) 对象添加属性
重点通过这句话给对象添加属性: this.$set(r,'upshow',false); 在data中定义laws来装从接口中请求到数据 data(){ return{ laws:[],//法律依据 ...
- ps切图插件
ps切图工具插件 下载网址:http://www.cutterman.cn/zh/cutterman 安装完插件,关闭ps,重新打开,窗口- 扩展,即可使用
- PHPUnit单元测试的简单使用
何为单元测试: 指对软件中的基本单元进行测试,如函数.方法等,以检查其返回值或行为是否符合预期:实际中软件是很复杂的,由许多组件构成,执行流程连贯在一起,要进行单元片段的测试,就需要为其提供执行上下文 ...
- openshift node资源限制
在oc的node配置文件中添加 ...... kubeletArguments: cgroups-per-qos: - "true" cgroup-driver: - " ...