设为首页 收藏本站
查看: 896|回复: 0

第 十 二 天 : shell 入 门 和 简 单 的 命 令

[复制链接]

尚未签到

发表于 2018-8-29 06:29:21 | 显示全部楼层 |阅读模式
  小Q:不知不觉,总以为我们很年轻,在年龄栏选择自己的出生日期时,却发现,那个熟悉的年份已经
  跑得这么远。
  ------------------------------------------------------------------------------------------------
  今天开始了shell了,心情挺激动的,即将半个月的时间里,每天从早上到晚上不停歇的坚持,现在终于可以摸到了实战的大招了,真好。基本上今天的内容是shell的特性 变量 特殊符号 配置文件 一些简单的命令和扩展的文档。
  shell的特性:
  shell 它是一种程序设计语言,是一个命令解释器,就是解释我们输入的命令为内核。
  他又分为两种,图形界面的 shell ,命令行下的 shell。命令行下又有两种:交互式模式就是shell等待你的输入,并且执行你提交的命令;非交互式模式,不与你进行交互,而是读取存放在文件中的令,并且执行它们。
  unix下的shell 有: / bash / sh / ksh / csh;我们遇到的就是这些吧。
  类型:Bourne shell (包括 sh,ksh,and bash)  C shell ( csh)   Korn shell ( ksh) Bourne shell ( sh)
  历史命令:history             存放在各自家目录下的  .bash_history下
  查看命令条数:echo  $HISTORYSIZE        (默认存1000条)
  执行上一条命令:!!                       运行历史第100命令:!100
  补全文件名:tab 一下                       查看:tab  两下
  清除历史命令:history   -c   /bash_history
  shell变量:
  查看系统变量:env             查看系统变量 + 自定义变量 :set
  自定义变量:a = 1234               查看: echo   $a
  含有特殊字符的变量:如空格的话需要加单引号, b = ‘我是 sadc’
  显示命令结果的变量:需要加反引号 ,      c = ' which  vim '
  显示两个变量结合的:需要加双引号 ,      d = “$a”34     或者  e = “$a”“$b”   查看 echo  $e
  当我们在 shell 中定义变量之后,然后进入一个子 shell 比如 bash ,会发现变量不存在;
  如果我们想让 shell 中的变量在任何子 shell 中都存在,我们需要为变量声明 成一个全局变量              export   a = 3456  在进入子 shell 中,就可以找到了。
  而删除环境变量: unset    a
  附加文档:
  关于shell全局变量,局部变量 :  env   set   export  的关系的文档
  http://http://blog.sina.com.cn/s/blog_6842ee7f0100tx3x.html
  http://blog.csdn.net/hdutigerkin/article/details/6682871
  http://www.cnblogs.com/dongzhiquan/archive/2012/01/10/2317641.html
  环境变量配置文件:
  如    PATH     HOME      PS1    bash   等环境变量
  root用户:   /etc/profile
  根据文件中的说明,若想新建变量最好新建个文件到 /etc/profile.d/path.sh 下添加之后,重置生效,
  重置变量 : source  /etc/profile
  查看方式 : echo  $PATH
  /etc/bashrc   同样,想自定义最好新建文件,后重置。
  PS1 是调整最左侧起始符的,可查看格式: echo $PS1
  比如加空格 或 -t  或-W 变为 -w , 自定义时加单引号  也可以在新建文件中改umask多查看文档,理解程序和意思
  普通用户 :其配置文件就在各自家目录下,文件名相同
  附加文档
  关于配置文档http://www.apelearn.com/bbs/thread-7719-1-1.html
  shell中特殊符号:
  字符:  *  ?  通配多个  一个字符                    #   注释
  \      脱义字符                                   |    管道符
  $     使用变量                                    !$   执行上一条命令
  &     后台运行(sleep  10)                ;  多个命令分隔符             【】   结合式
  重定向: >   覆盖源文件内容     >>  增加内容到源文件
  <  反向重定向        2 > 错误重定向        2 >>  错误信息追加
  休眠  : sleep   数字      ctrl  +  z    暂停进程    ctrl  +   c  取消进程

  fg    调到前台运行      bg  调到后台暂停     可加>  举例  : touch  【1-4】.txt       会建立 1.txt  2.txt  3.txt   4.txt
  举例  : ls  #1.txt 只执行 ls ;ls  \#1.txt  就能执行查找#1.txt了
  附加命令: ls  1.txt  |  xrags  rm    查找 1.txt并删除    xrags   把管道前命令的输出作为输入
  cut 命令:
  cut 分段显示:
  -d:指定分隔符     需要和某组字节 列表配合,比如 -f
  -f:指定段         cut  -d:-f3,4,5   /etc/passwd 打印文件下的345段
  -c:截取字符      cut  -c   3-7  /etc/passwd      截取每行3 到 7 的字符
  sort 命令:
  sort 排序显示:
  -t : 以:为分隔符                                -k2,5   查看2到5行
  -n     按数字排序         -nr  反向排序        -u    去重排序
  wc 命令:
  wc   :查看行数  单词  和字符 数
  选项: -c    --bytes 输出字节数统计              -m    --chars 输出字符数统计
  -l     --lines 输 出 行 数 统 计
  uniq 命令:
  去重复 :uniq    文件名
  选项 : -c  直观的看去掉多少重复的                    -d   只输出重复的
  只不过这个选项只能去掉临行重复,所以要先排序  sort 文件 |uniq  -c  文件
  关于重定向:echo  "1231231"   >  1.txt     +  cat   1.txt
  =    echo  "1231231"  |  tee  1,txt
  tee  把正确输出信息定向到一个文件中,并且在当前屏幕显示
  tr 和 split 命令:
  替换:tr    'a-z'   'A-Z'              =              tr ‘[a-z]’ ‘[A-Z]’
  tr    "a-z"   "A-Z"              =              tr    a-z    A-Z
  例如:ls   *.txt  |  tr  ' abDgF'     'ACdGf
  分割文件 :spilt   -b  10m   1.txt    以10m为单位分给文件
  spilt   -l    10     1.txt  new_    以十行为单位分割 1.txt并分割后的文件new_开头
  shell 连接符:
  && :左边命令执行成功,才回去执行右边命令;
  ||  :左边命令执行不成功,才回去执行右边命令;
  ; :不管左边成不成功,都会执行右边命令;
  问题:
DSC0000.jpg DSC0001.jpg

DSC0002.jpg

DSC0003.jpg

DSC0004.jpg

DSC0005.jpg

  


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-557864-1-1.html 上篇帖子: bash shell基础之三字符串测试及for循环 下篇帖子: 查看linux server网络I/0流量的shell脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表