美文网首页
Linux_shell_小命令.md

Linux_shell_小命令.md

作者: DafuCoding | 来源:发表于2017-03-23 20:06 被阅读0次

一. 路径篇

cd 变换路径

# 返回上一次访问的路径,反复修改文件必备
cd -

pwd 当前路径

pwd -P # 输出当前no-link路径

readlink 查找软链接地址

二. 字符串篇

grep 字符串查找神技

# 查找文件中的包含某字符串的行
grep -n 'finding-string' finding-path
# 找文件夹中所有cpp文件包含某字符串的行
grep -nr --include='*.cpp' 'find-string' your-path

find 文件搜索引擎

find path -option "keyword" [-print][-exec -ok command]{} ;

# 利用文件名模糊查询当前目录
find ./ -name '*.hpp' # 或者 find ./ -name \*.hpp 
# 查找类型仅为文件
find . -type f -name '*'

sed 文件流中大牛,字符串/文件读写就靠它(行优先)

# 1.匹配的时候用双反斜线"/.../"
# 2.功能符[放在最后面]:d(删除行),p(输出行),a(追加行),c(替换行),g(全局替换)
# 3.Options:-i(在原文件上修改),-n(只输出符合条件行)
# 4.搜索范围为闭区间

# 每行的最后面添加"01"
sed 's/$/01/g'  
# 替换字符串(str2替换str1)
sed 's/str1/str2/g' file
# 替换字符,在包含ABC的行将A替换成a 
sed '/ABC/{s/A/a/}' 

awk 高级模式匹配查找神技(列优先)

# 分割字符串 -F后面直接跟分隔符
echo "1:2:3" | awk -F: '{print $1 $2 $3}' # 123

正则表达式


cut 噶啦



实用习题

1.把某个文件夹中的所有后缀为.jpg的文件名输入到fileName.txt中

# 先递归找到所有后缀为.jpg 的文件列表,再把"./"去除,最后输入到fileName文件中
find . -name '*.jpg' | cut -c 3- > fileName.txt

参数传递

  1. argc 和 argv表示
# 参数个数,表示不算shell自己的其他参数个数. 如:./script.sh 1.txt 2.txt 参数个数为2.
$#
# 参数值,利用"$"符号来取值,后面数字表示第几个参数,
# 多余参数没有作用
$1 $2 $N
# 获取全部参数值
$* 或 $@

小细节

1) ' ' 和 " " 区别
' ': 任何都是字符串. 我们不希望把变量转换为值的时候用
" ": 变量替换. 会计算所有变量的值,最后使用${}加上大括号
2)$(( )) 与 $( ) 还有${ }的区别
$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的
嵌套反引号需要进行转义,故简单命令用反引号,否则用$()
${ } 用来作变量替换
$(( )) 用来做整数运算

$ a=2;b=4;c=2
$ echo $((a+b*c))

相关文章

网友评论

      本文标题:Linux_shell_小命令.md

      本文链接:https://www.haomeiwen.com/subject/xamtottx.html