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

[经验分享] Linux作业

[复制链接]

尚未签到

发表于 2018-5-18 12:53:53 | 显示全部楼层 |阅读模式
  1、  bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
  一、bash特性:
  1、命令别名
  :取当前用户可用的别名的定义
  2、命令历史:
  shell进程会保存其会话中用户曾经执行过的命令;命令通过其“历史文件”来持久保存此前执行过的命令;每个用户都有其自己专用的历史文件;
  HISTSIZEshell进程的缓冲区保留的历史命令的条数;
  HISTFILESIZE:命令历史文件可保存的历史命令的条数;
  history -c:清空命令历史;
  history  -d  OFFSET:删除指定的条目;
  3、快捷键
  Ctrl+a:跳至命令行首;
  Ctrl+e:跳至命令行尾;
  Ctrl+k:删除光标所在处至尾部的内容;
  Ctrl+u:删除行首至光标所在处的内容;
  4、命令补全和路径补全
  命令补全:
  shell程序在接收到用户执行命令的请求且分析完成之后,最左侧字符串将被当作命令去查找;
  查找机制:
  (1) 查找内部命令;
  (2) 查找外部命令:
  1、去$PATH变量所指定的各路径下,自左而右逐个搜索各目录下的文件名
  2、给定的打头的字符串如果能惟一标识某命令程序文件的文件名,则直接补全;
  3、不能惟一标识,再击tab可给列表;
  4、错误:没有任何命令可被此打头字符串标识;
  路径补全:
  在给定的起始路径的上级目录下,以对应路径下的打头字符串来逐一匹配上级目标下的每个文件:
  惟一标识:tab补全;
  不能惟一标识:tab,tab给出列表;
  错误路径:没有响应;
  5、命令行展开
  把命令行的给定的特殊符号自动替换为相应字符串的机制;
  ~: 自动替换为用户家目录;
  ~USERNAME:自动替换为指定用户的家目录;
  {}:可承载一个以逗号分隔的路径列表,能够将其展开为多个独立路径;
  6、命令的执行状态结果
  命令的正常输出结果:命令的返回值;
  通过引用来保存下来或直接调用——"命令引用"
  7、变量
  程序:指令+数据
  数据:文件、变量;
  变量:内存空间,有名称,名称即为变量名,对应的内存空间中的数据即为变量的值;
  变量赋值:左边=右边(把右边存储到左边指向的内存空间)
  二、命令执行状态返回值
   $? 取出最后一个带返回值的函数调用.
  如果你确定某个命令或函数有返回值,就可以在调用这条命令后用 $?
  取出返回值并处理.bash中习惯用返回值0代表一切正常.
  比如最常用的 ls 命令,有三个返回值:
  0 : 一切正常
  1: 小问题 (比如无法访问某个子目录)
  2: 大麻烦 (比如找不到命令所需参数)
  在终端执行了 ls 命令后,就可以用 echo $? 来查看返回值.
  注意 $? 取出的是最后一个返回值,意思是如果某个命令没有返回值,那么 $? 会返回最后一个有返回值的命令的返回值.
  请使用命令行展开功能来完成以下练习:
  (1)、创建/tmp目录下的:a_c,a_d, b_c, b_d
  [root@localhost tmp]# mkdir -v {a,b}_{c,d}
  mkdir: 已创建目录 "a_c"
  mkdir: 已创建目录 "a_d"
  mkdir: 已创建目录 "b_c"
  mkdir: 已创建目录 "b_d"
  (2)、创建/tmp/mylinux目录下的:
  mylinux/
  ├── bin
  ├── boot
  │   └── grub
  ├── dev
  ├── etc
  │   ├── rc.d
  │   │   └── init.d
  │   └── sysconfig
  │       └──network-scripts
  ├── lib
  │   └── modules
  ├── lib64
  ├── proc
  ├── sbin
  ├── sys
  ├── tmp
  ├── usr
  │   └── local
  │       ├── bin
  │       └── sbin
  └── var
  ├── lock
  ├── log
  └── run
  [root@localhost tmp]# mkdir -vp mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local{bin,sbin},var,lock,lock,log,run}
  mkdir: 已创建目录 "mylinux/bin"
  mkdir: 已创建目录 "mylinux/boot"
  mkdir: 已创建目录 "mylinux/boot/grub"
  mkdir: 已创建目录 "mylinux/dev"
  mkdir: 已创建目录 "mylinux/etc"
  mkdir: 已创建目录 "mylinux/etc/rc.d"
  mkdir: 已创建目录 "mylinux/etc/rc.d/init.d"
  mkdir: 已创建目录 "mylinux/etc/sysconfig"
  mkdir: 已创建目录 "mylinux/etc/sysconfig/network-scripts"
  mkdir: 已创建目录 "mylinux/lib"
  mkdir: 已创建目录 "mylinux/lib/modules"
  mkdir: 已创建目录 "mylinux/lib64"
  mkdir: 已创建目录 "mylinux/proc"
  mkdir: 已创建目录 "mylinux/sbin"
  mkdir: 已创建目录 "mylinux/sys"
  mkdir: 已创建目录 "mylinux/tmp"
  mkdir: 已创建目录 "mylinux/usr"
  mkdir: 已创建目录 "mylinux/usr/localbin"
  mkdir: 已创建目录 "mylinux/usr/localsbin"
  mkdir: 已创建目录 "mylinux/var"
  mkdir: 已创建目录 "mylinux/lock"
  mkdir: 已创建目录 "mylinux/log"
  mkdir: 已创建目录 "mylinux/run"
  [root@localhost tmp]# tree mylinux/
  mylinux/
  ├── bin
  ├── boot
    └── grub
  ├── dev
  ├── etc
    ├── rc.d
       └── init.d
    └── sysconfig
         └── network-scripts
  ├── lib
    └── modules
  ├── lib64
  ├── lock
  ├── log
  ├── proc
  ├── run
  ├── sbin
  ├── sys
  ├── tmp
  ├── usr
    ├── localbin
    └── localsbin
  └── var
  
  23 directories, 0 files
  
  2、  显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
  # ls -d /varl[0-9][a-z]
  3、  显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
  # ls -d /etc/[0-9]*[^0-9]
  4、  显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
  # ls -d /etc/[^[:alpha:]][:alpha:]*
  5、  在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-09-20-09-32-22。
  [root@localhost/]# touch /tmp/tifile-$(date +%Y-%m-%d-%H-%M-%s)
  [root@localhost/]# tree tmp/
  tmp/
  ├── a_c
  ├── a_d
  ├── b_c
  ├── b_d
  ├── hogsuspend
  ├── hsperfdata_root
  ├── ks-script-NLcIuI
  ├── mylinux
  │   ├── bin
  │   ├── boot
  │   │  └── grub
  │   ├── dev
  │   ├── etc
  │   │  ├── rc.d
  │   │  │   └── init.d
  │   │  └── sysconfig
  │   │       └── network-scripts
  │   ├── lib
  │   │  └── modules
  │   ├── lib64
  │   ├── lock
  │   ├── log
  │   ├── proc
  │   ├── run
  │   ├── sbin
  │   ├── sys
  │   ├── tmp
  │   ├── usr
  │   │  ├── localbin
  │   │  └── localsbin
  │   └── var
  ├── rum}
  ├── ssh-BDYivi6ssnZb
  │   └──agent.9212
  ├──systemd-private-8cd552a6d9714a318bd446f3db041a62-colord.service-SoabcN
  │   └── tmp
  ├──systemd-private-8cd552a6d9714a318bd446f3db041a62-cups.service-jDUnI5
  │   └── tmp
  ├──systemd-private-8cd552a6d9714a318bd446f3db041a62-vmtoolsd.service-Ai9zY1
  │   └── tmp
  │       └── vmware-root
  ├── test
  ├── tifile-2016-12-11-22-13-1481465608
  ├──tracker-extract-files.0
  ├── yum.log
  └──yum_save_tx.2016-12-11.16-26.gZug1a.yumtx
40 directories, 6 files
  6、  复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
  [root@localhost etc]# mkdir -vp/tmp/mytest2
  mkdir: 已创建目录"/tmp/mytest2"
  [root@localhost etc]# cp -vr /etc/*.d/tmp/mytest2
  7、  复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
  [root@localhost etc]# mkdir -vp/tmp/mytest3
  mkdir: 已创建目录"/tmp/mytest3"
  [root@localhost etc]# cp -a/etc/[l,m,n]*.conf /tmp/mytest3
  [root@localhost etc]# cd ..
  [root@localhost /]# cd tmp
  [root@localhost tmp]# tree mytest3/
  mytest3/
  ├── ld.so.conf
  ├── libaudit.conf
  ├── libuser.conf
  ├── locale.conf
  ├── logrotate.conf
  ├── man_db.conf
  ├── mke2fs.conf
  ├── mtools.conf
  ├── nfsmount.conf
  ├── nsswitch.conf
  ├── ntp.conf
  └── numad.conf
  0 directories, 12 files
  

运维网声明 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-461732-1-1.html 上篇帖子: Linux命令:openssl 下篇帖子: linux mysql 备份导入
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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