shell笔记

1.ls -F(区分文件和目录) -a(显示所有) -R(递归目录) -l( 显示文件信息) -i(查看inode编号,用于判断是否同意文件)
2.touch 创建文件
3.cp 复制 -i(询问是否覆盖已有文件) -R(递归复制整个目录)
4.ln 链接文件
5.mv 移动 -i(询问是否覆盖已有文件)
6.rm -i(同上)
7.mkdir 创建文件夹 -P(参数可以创建缺失的父目录)
8.rmdir 删除空目录
9.file 查看文件类型
10.cat 查看文件 -n(加上行号) -b(只给文件加上行号)
11.more 分页查看文件
12.less 查看文件
13.tail 会默认显示最后10条数据 -n(显示行号) -f; head默认显示头部数据
14.ps 显示进程 -e显示所有进程 -f显示完整格式输出 -l显示长列表
15.kill
16.df -h 查看磁盘空间
17.du 显示某个特定目录的磁盘使用情况 -c显示所有列出的文件总的大小 -h -s(显示每个输出参数的总计)
18.sleep 时间 = 睡眠 时间 ; & =》后台运行
19.jobs 显示后台模式中所有进程
20.协程 coproc name {sleep 10 ; } 跟 &一样
21 history 跟踪使用过的命令,文件在.base_history
22.alias 别名
23.env或printenv 查看环境变量, 显示个别环境变量用printenv __ 或者echo NAME 24.export 设置全局变量 unset删除环境变量,自定义环境变量最好放在/etc/profile.d/里面 25.变量 key=value 数组变量key=(1 2 3) echo{{key[*]} 显示整个数据变量, 修改数组某个值 {key[1]}
26.useradd 新建用户 userdel 删除用户 usermod 修改用户信息 passwd 修改用户密码
27.chmod 修改文件权限
28.readline -f 查看关键的最后一个
29.which
30.命令替换 `` 或者$() / date +%Y-%n-%d = 2019-12-26
31.wc 命令对数据中的文件进行计数

  1. 输出重定向 >> 追加 < 输入重定向 << 内联输入重定向
    33.expr 运算 比较多 expr --help查看
    34.运算 [ 1 + (1 + 2) ] 只支持整数运算,浮点型运行用bc
    35.$? 查看退出码.可以用于判断命令是否成功被执行.
    36.exit 命令 exit 10 =》指定退出码

  2. if commands; then command fi; 如果commands退出码为0(正确执行)那么commad就会执行 ,grep __ 找到的话,也会返回0退出码
    if grep hello ./
    then
    echo "找到"
    else
    echo "找不到 "
    fi
    38.if command ; then command1 elif command2 fi;
    39.test 命令 1.数值比较 2.字符串比较 3.文件比较
    40.if [ ] ; then command fi;
    40.1.数值比较 : -eq = 等于 ; -ne = 不等于 ; -gt = 大于; -ge = 大于等于; -lt = 小于; -le=小于等于
    40.2. 字符串比较: = ; !=; <>(需要转义符\协助) ; -n 检查文件是否非空 ; -z 检查文件是否为空
    40.3 文件比较: -e 判断file是否存在 -d 判断是否是一个文件夹 -f 判断是否是一个文件 -r 判断是否可读 -w判断是否可写 -x判断是否可运行 -O检查file是否存在并属于当前用户 -G 判断file是否存在并且默认组与当前用户相通 ; file1 -nt file2 判断file1的创建时间是否早于file2 ; file1 -ot file2 判断file1的创建时间是否晚于file2
  3. if then 复合条件测试 [] &&[] []||[]
    42.case
    eq: case cariable in
    pattern1| pattern2 ) command1 ;;
    pattern3 ) command 2;;
    * ) command3;;
    esac;
  4. for var in list ; do command1 ; done ;其中list是以空格分隔开,可以用“”双引号或者' 转移, 也可以使用IFS=# 指定#号或者其他分隔符;
    eq:
    list1=(1 2 3 4 5)
    for filename in ${list1[*]}
    do
    echo filename;
    done;

44.while command ; do command1; done;
eq: while [ -n "1;
shift;
done;
44.2 which可多个条件时候,条件须分行列出;
while echo $num
( [] || [] )
do
command;
done;

  1. 跳出循环 break; continue;
  2. 参数9 超过10需要加上{}
    45 * 把所有参数当前一个参数显示 ; $@ 显示参数列表,可用作遍历
    46.移动变量shift 可用于不知参数是多小个的情况;shift n 前移n个参数
  3. getopts 参考这篇文章https://www.jianshu.com/p/baf6e5b7e70a
    48.read ; read--help 获取用户输入; -p 提示符 eq: read -p "输入账号和密码" username password ; echo password ; -t 超时; -n 检测输入字符数量,读取字符数量 ;-s 不显示终端输入 ,重点-u 读取通道; read读取文件eq:
    cat a.txt | while read line ; do echo $line
    48.标准文件描述符
    0 STDIN 标准输入
    1 STDOUT 标准输出
    2 STDERR 标准错误
    cat file 2> err.log => 把file文件内容输出到2通道的标准错误
    cat file 1> ok.log => 把file文件内容输出到1通道到ok.log 可合并使用
    1和2合并使用 &>
  4. 临时重定向 >&1 ; eq: echo "hello world" >&2 ; 输出的hello world会输出到2(标准错误)里面
    50.永久重定向 exec 3> file;或者追加 exec 3>> file;
  5. 重定向输入 exec 4< file; 然后读取文件内容eq: while read -u4 line; do echo #-;
    53.dev/null ; 重定向到该位置的数据会被清除掉
    54.tee 将标准输入复制到每个指定文件, tee -a 追加到文件
    55.trap "message" EXIT/SIGINT....(linux信号) ; trap 捕获信号。(让信号失效 )
    linux信号
    SIGHUP 挂起进程
    SIGINT 终止进程 ==> ctrl+c
    SIGQUIT 停止进程
    删除、去除捕获信号 trap -- SIGINT(linux信号)
    trap 命令后使用-或者--恢复信号的默认行为
    56.后台运行 &;当后台运行时,它仍然会使用终端显示器来显示STDOUT和STDERR信息,不想显示,可以把信息重定向到文件。 &>
    nohup 会自动把STDINT和STDERR信息重定向到一个名为nohup.log文件
    57.jobs 命令查看shell当前正在处理的作业。 -l列出进程的pid 已经作业号, -p列出作业的pid
    58.cron定时任务 crontab -e 配置定时任务 -l列出定时任务 -r删除定时任务 ,也可以ls -alF | grep cron 查看,里面有分别时 天...等定时任务文件夹,可以把脚本放进去。
          • .sh => 分 时 日 月 星期 任务
            59.创建函数方法 1. function name {} ; 2.function name() {} ; 3 name() {} ;
            59.1 函数运行后加 $? 查看退出码, 可判断函数是否运行成功, 也可以使用return修改退出码 0-255 (一定要在函数运行后第一时间捕获)
  1. 获取函数输出 eq:
    function name() { echo hello world }; result=result;
    61.变量 。 不管在函数内还是函数外,定义的参数均为全局变量,在函数内定义的局部变量需要加上local ; eq : local name=jinquan。
    62.函数参数是数组,传参,先把数组转换为字符串: @
    63.函数库 把公共函数放在一个文件中,如果变量在函数外,那么引用比函数库的脚本可读取,如果函数内不可读取,应用函数库文件 source file

你可能感兴趣的:(shell笔记)