011_shell命令 - llj2kh/studynote GitHub Wiki

shell 命令

  • echo -e "abc\ndef"
    支持转义字符

  • printf "%-5s %-5s" ab cd
    支持格式化输出,-靠左

  • let c=a+b

  • let c++

  • let c+=3
    let可直接执行基本的计算,变量名之前不需要添加$

  • c=$((a+b))
    此格式前要加$

  • c=`expr $a + $b`

  • c=$(expr $a + $b)
    此格式也可进行计算,建议用let 或 (())

  • echo "abc" >aa 2>&1

  • echo "abc" &> aa
    两种方法都可以将错误输出重定向到标准输出

  • cat -n
    输出前加行号

  • cat file | tee file2
    tee将标准输入,显示在屏幕的同时写入file2,tee默认覆盖,-a选项 追加写入。

  • exec 3>>file.md

  • echo test >&3

  • exec 4<file
    用exec创建一个文件的文件描述符,进行文件操作。用于读取的文件描述符只能使用一次。

  • declare -A var

  • var=([apple]=red [orange]=orange)
    declare 声明一个关联数组,及赋值格式。

  • mkdir -p /home/aa/bb/cc/dd
    创建目录,忽略以存在的目录,同时创建缺失的部分。

  • split -b 10k file
    将文件分割成10k大小的一系列文件。

  • $RANDOM
    生成随机数

  • tempfile
    生成随机文件,返回路径

  • gpg -c file
    用gpg采用交互方式读取口令,对文件file进行加密,生成file.gpg

  • gpg file.gpg
    读取口令,然后对文件进行解密

  • base64 是一组类似的编码方案,它通过将ASCII字符转换成以64为基数的形式来用ASCII字符串描述二进制数据。

  • base64 file > outfile
    将文件编码成Base64格式

  • base64 -d file > outfile
    解码Base64格式的数据

  • md5sum 与 sha1sum sha256sum 都是单向散列算法,均无法逆推出原始数据。他们通常用于验证数据完整性或为特定数据生成唯一的密钥。

  • md5sum file

  • sha1sum file

  • sha256sum file

  • wait
    使脚本只有在所有的子进程或后台进程全部终止或完成之后才能结束

  • scp filename user@remotehost:/home/path
    scp(secure copy)是通过ssh加密通道进行传输文件的命令。

  • scp -r 对文件夹进行递归复制

  • scp -p 在复制文件的同时保留文件的权限和模式

  • ssh user@localhost -p 4422
    -p 指定ssh服务器端口

  • du -k | sort -nrk 1 |head
    找出指定目录中最大的10个文件或目录
    -k 以k为单位;sort -nrk 1 对第一列依数值逆序排序;

  • find . -type f -exec du -k {} \; | sort -nrk 1 | head
    仅找出10个最大的文件

  • time command
    计算命令执行时间

  • sed -i "s/ *$/ /g" 文件名(支持通配符)
    该命令在每一行行尾添加两个空格,如果原来有多个则更改为两个。用以处理github在生成markdown网页时,页面不理想。
    也可以编辑别名加入 /etc/bash.bashrc 以方便使用。
    alias kg="sed -i 's/ *$/ /g' $1"

  • sed -i 's/^M$//g' 文件名(支持通配符)
    该命令是解决,win下的文档上传到linux,每行的结尾都会出现一个^M,(^M是ctrl+v,ctrl+m),该命令删除此。
    同样也可以编辑命令别名以方便使用。