本人非linux初级学习者,此处仅记录了比较感兴趣的部分,当然也比较详尽,亦可作为参考资料;本文亦推荐了若干学习链接,内容主要是从书中摘录,故为转载
第三章 管道符、重定向与环境变量
1、巧妙的组合
ls –l /etc | more -4 : 可以悠闲地一页四行,一页一页地翻看/etc目录下文件
2、重定向符:
< filename 表示把文件内容作为输入对象 |
> filename 表示输出到某文件 >> 表示追加到某文件 |
如:wc –l < filename === cat filename | wc –l
3、alias 别名=命令 | unalias 别名
第四章 Vim编辑器与Shell命令脚本
1、vim快捷键
dd 剪切光标所在整行 | yy 复制光标所在整行 | p 粘贴截切或复制的部分 |
5dd 剪切光标处开始的5行 | 5yy 复制光标处开始的5行 | u 撤销上一步 |
/字符串 从上至下搜索 | N 上一个 | :set number 显示行数 |
?字符串 从下至上搜索 | n 下一个 | :set nonumber 不显示行数 |
2、shell脚本的三种执行方法
chmod u+x 111.sh -> ./111.sh
sh 111.sh
source 111.sh
3、执行脚本所携带参数
$# 参数个数 | $3 第3个参数 | $0 当前脚本的名称 |
$? 上条命令是否执行成功 | $* 所有参数 |
|
4、if判断
-d 目录是否存在 | -e 文件与目录是否存在 | -w 当前用户是否有权限写 |
-f 文件是否存在 | -r 当前用户是否有权限读 | -x 当前用户是否有权限执行 |
- 不在脚本中的执行方法:
方法一:
[ -d /home/lalala ]
echo $? 若结果为0,则/home/lalala目录存在,若结果为1,则/home/lalala目录不存在,妙!
方法二:
[ -d /home/lalala ] && echo “yes”
若有输出结果,则/home/lalala目录存在,否则不存在
- [ $USER != root ] && echo “$USER” : 如果当前用户非root用户,则输出当前用户名
- [ $USER != root ] && echo “$USER” || root === echo “$USER”
|| 后面的内容执行是说明前面的内容不成立
&& 后面的内容执行是因为前面的内容成立
-eq 等于 | -gt 大于 | -ge 大于等于 |
-ne 不等于 | -lt 小于 | -le 小于等于 |
[ 10 –eq 10]
echo $?
5、ping命令:脚本判断是否ping通
ping 127.0.0.1 –c 3 –i 0.2 –W 3
echo $?
-c 发送数据包的个数 | -i 每多少秒发一个数据包 | -W 几秒超时 |
6、read命令:人机交互
read –p “please input num: “ NUM 用户输入
echo $NUM 输出的就是用户设定的值
7、逐行读取文件
HLIST=$(cat lalala.txt)
for str in $HLIST
do
echo $str
done
8、0-999之间的任意整数: x=$(expr $RANDOM % 1000)
9、case命令
read –p “Enter: “ KEY
case $KEY in
[a-z]|[A-Z]) echo “字母”;;
[0-9]) echo “数字”;;
*) echo “其他”
esac
10、at命令:后台定时任务,格式为 at [时间] ,时间格式比较随意
执行at 14:55,输入定时任务命令,Ctrl+D保存退出
单条定时任务亦可如此:echo “sh 111.sh > log” | at 14:55
一个任务含多条定时命令:echo –e “sh 111.sh > log1\n sh 111.sh > log2\n sh 11.sh > log3” | at 14.55 (此处的命令依次执行)
stq 或者 at –l :查看未执行的定时任务 |
at –c 任务序号:预览任务与设置环境 |
atrm 序号:删除任务 |
11、cron命令:常见长期可循环的计划任务
crontab –e [-u 用户名] : 创建、编辑计划任务 | |
crontab –l [-u 用户名] : 查看计划任务 | |
crontab –r [-u 用户名] : 删除计划任务 | |
分钟 | 0-59 |
小时 | 0-23 |
日期 | 1-31 |
月份 | 1-12 |
星期 | 0-7(0和7均为周日) |
命令 | 要执行的命令或程序脚本 |
如:每周1、3、5的凌晨2点35分执行命令:sh 111.sh
35 2 * * 1,3,5 sh 111.sh
12、df命令
-a 显示出所有的文件系统 | --total 展示出总体使用量 |
-h 更易读的容量格式 | -i 展示出Inode的信息 |
-T 显示出文件系统的类型(ext3、ext4等) |
|
13、du命令
-a 评估每个文件而非目录整体占用量 | -h 更易读的容量格式 |
-c 评估每个文件并计算出总占用量总和 | -s 仅显示占用量总和 |
14、ln命令
创建硬链接:ln 文件名 连接名
创建软链接:ln –s 文件名 连接名