Universal USB Installer
Category Archives: Linux
Reply
Shell编程
一. 命令历史history与!
1. 上一条命令 !! 2. 命令历史上一条命令的最后一个参数 !$ 3. 运行历史命令的555行 !555 4. 命令历史自底向上运行以vi开头的命令 !vi
二. alias别名
1. 设置别名 alias lx='ls' 2. 取消别名 unalias lx
三. 通配符号
1. 零个或多个 * 2. 选其中一个 [12] 3. 一个任意的字符 ?
四. 重定向
1. 清空filename文件 > filename 2. 写"111"到filename echo "111" > filename 3. "111"追加到filename echo "111" >> filename 4. 反向重定向,把1.txt的内容反向重定向到cat cat < 1.txt 5. lishiming文件不存在,把错误信息输出到error.log日志 ls lishiming 2> error.log ls lishiming 2>> error.log 6. sss.sh脚本的正确运行结果输出到1.log,错误信息输出到1.log sh sss.sh > 1.log 2>1.log sh sss.sh > 1.log 2>>&1
五. 管道
前一个命令的输出作为后一个命令的参数
1. 把当前目录内容输出成一行 ls | xargs
六. 作业控制ctrl+z,jobs, fg, bg
1. 休息100s sleep 100 2. 休息200s sleep 200 3. 查询Jobs,列出上述两个任务 jobs 4. 进入任务1 fg 1 5. 进入任务2 fg 2
[1]-
[2]+
[2]后面的”+”表示优先级高
七. 变量
1. env ,查找环境变量中以a开头的环境变量
env | grep '^a'
2. set, 列出用户自定义的变量
3. 变量只能有数字,字母, 下划线组成,不能以数字开头
4. 反引号
#反引号,为了引用which vim命令的结果 rpm -qf `which vim`
5. 单引号、双引号、反引号
a="hello world" b='echo $a' c="echo $a" d=`echo $a` echo $b #打印结果为echo $a echo $c #打印结果为echo hello world echo $d #打印结果为hello world
单引号最严格
双引号将命令的结果作为变量打印
反引号,输出命令执行结果
八.环境变量
/etc/profile /etc/bashrc ~/.bashrc ~./bash_profile
九.特殊符号
& && > >> []
十.命令
1. cut分隔
#以冒号为分隔符,打印第一段 cut -d ':' -f 1 /etc/passwd #以冒号为分隔符,打印第一到三段 cut -d ':' -f 1-3 /etc/passwd #第2到10列 cut -c 2-10 /etc/passwd
2. sort排序
#以第三段为基准排序,默认按ascii码排序 sort -t ':' -k3 /etc/passwd #以第三段为基准排序,数字大小排序 sort -t ':' -k3 -n /etc/passwd #以第三段为基准排序,数字大小排序,最后只要第三段 sort -t ':' -k3 -n /etc/passwd | cut -d ':' -f 3 #截取文件第3列,以数字大小逆向排序 cut -d ':' -f 3 /etc/passwd | sort -nr #截取文件第3列,以数字大小逆向排序,去掉重复项,然后统计频次 cut -d ':' -f 3 /etc/passwd | sort -nr|uniq -c
3. wc 单词统计
# 69指行数,408指单词数,3469指字符数 wc npm-debug.log 69 408 3469 npm-debug.log #打印npm-debug.log文件的行数 wc -l npm-debug.log #如果npm-debug.log文件行数小于3行,打印no line=`wc -l npm-debug.log|cut -d ' ' -f1`; echo $line if [ $line -lt "3" ]; then echo "no"; fi
4. uniq
5. tee 重定向。重定向的同时,还把结果输出到屏幕上。
6. tr替换
#把文件名中的小写字母替换为大写字母 ls |tr 'a-z' 'A-Z'
7. split切割
# 将passwd文件内容写一万次到1.txt,然后用split命令分割成一万份 for i in `seq 1 10000`; do cat /etc/passwd >> 1.txt ; done split -l 10000 1.txt #分割后的文件以a开头 split -l 10000 1.txt a #把a开头的文件,在文件名后加上.txt ls a* |xargs -i mv {} {}.txt
8. xargs -i 加-i 参数直接用{}就能代替管道之前的标准输出的内容
9. du查看文件大小
#查看1.txt文件的大小 cp /etc/passwd 1.txt du -sh 1.txt
10. grep/egrep
# -c 打印符合要求的行数 grep -c 'mysql' 1.txt # -n 在输出符合要求的行的同时连同行号一起输出 grep -n ':x' 1.txt # -v 打印不符合要求的行 grep -v 'root' 1.txt # -A2 打印符合要求的行以及下面两行(A表示after) grep -A2 -n 'root' 1.txt # -B2 打印符合要求的行以及上面两行 grep -B2 -n 'root' 1.txt # -C2 表示打印符合要求的行以及上下各两行 grep -C2 -n 'root' 1.txt # -r 把目录下面所有的文件全部遍历 grep -r 'root' /etc/ # 过滤出所有包含数字的行 grep '[0-9]' 1.txt # 过滤出所有不包含数字的行 grep -v '[0-9]' 1.txt # 去除所有以'#'开头的行 grep -v '^#' 1.txt # 去除所有空行和以'#'开头的行 '^$'表示空行 grep -v '^$' 1.txt | grep -v '^#' # '[^a-z]'中^表示非,过滤掉a-z开头的行 grep '^[^a-z]' 1.txt
十一.正则表达式
* . ? + {} \
ls *.txt # *,匹配零个或多个o grep 'ro*t' 1.txt # .,匹配1个或多个o grep 'ro.t' 1.txt # -E让?变得可用,也可用egrep,?表示匹配零个或一个字符 grep -E 'ro?t' 1.txt # +,匹配1个或多个o egrep 'ro+t' 1.txt # * 0个或多个*前面的字符 # . 任意一个字符 # ? 0个或1个?前面的字符 # + 1个或多个+前面的字符 # .* 零个或多个字符 贪婪匹配
wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容)
Ubuntu下的抓包工具tcpdump(命令行)
解决securecrt 登录后方向键,backspace,delete键为乱码
云服务器Ubuntu挂载数据盘
emacs
命名惯例
C
表示按下Ctrl键,M
表示按下Alt键M-x my-command
表示同时按下Alt和X, 输入”my-command”,然后回车