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[1]}{key[*]} 显示整个数据变量, 修改数组某个值 {key[1]} = 10; 删除数组某个值(但下标还存在 )unset{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" ] ; do echo1;
shift;
done;
44.2 which可多个条件时候,条件须分行列出;
while echo $num
( [] || [] )
do
command;
done;

  1. 跳出循环 break; continue;
  2. 参数1 -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 usernamepassword ; -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 #line ; done; 52.关闭重定向 &- ; eq : exec 4>-;
    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=(name); echo result:result;
    61.变量 。 不管在函数内还是函数外,定义的参数均为全局变量,在函数内定义的局部变量需要加上local ; eq : local name=jinquan。
    62.函数参数是数组,传参,先把数组转换为字符串: {name[*]},然后在函数内部再把字符串转为数组 local list=@
    63.函数库 把公共函数放在一个文件中,如果变量在函数外,那么引用比函数库的脚本可读取,如果函数内不可读取,应用函数库文件 source file
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,039评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,223评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,916评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,009评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,030评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,011评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,934评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,754评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,202评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,433评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,590评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,321评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,917评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,568评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,738评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,583评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,482评论 2 352

推荐阅读更多精彩内容

  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,717评论 0 11
  • 此篇文章内容是我很久以前在印象笔记中的一个知识总结,大概122个Linux指令。如今,写出来就当再回顾一遍了。若有...
    StephenZhang01阅读 1,063评论 0 5
  • ls -F可以轻松区分文件和目录 ls -F -R -R为递归选项,它会列出当前目录 ?表示一个字符 *代表0或多...
    王诗翔阅读 9,366评论 0 45
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,380评论 0 5
  • grep grep的基本用法 grep命令是支持正则表达式的一个多用途文本搜索工具,一般格式为 grep 选项 模...
    王诗翔阅读 3,012评论 2 34