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

【Linux系列】【基础版】第三章 Shell基础知识

[复制链接]

尚未签到

发表于 2018-8-26 10:59:23 | 显示全部楼层 |阅读模式
3. Shell基础知识  
    3.1 Shell的由来
  
        3.1.1 Bourne Agin Shell
  
        3.1.2 其他的shell, 有 zsh, ksh等
  
    3.2 查看有没有shell
  
        3.2.1 yum list | grep zsh
  
        3.2.2 ls /root/.bash_history
  
        3.2.3 echo $HISTSIZE -> vi /etc/profile 修改HISTSIZE的值 -> source /etc/profile
  
        3.2.4 history -c //清空命令历史(内存中的)
  
        3.2.5 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
  
        3.2.6 vi /etc/profile
  
        3.2.7 chattr +a ~/.bash_history  //只能被追加,不会被删除
  
        3.2.8 !!  //最后一条命令;  !n  //     !words //
  
    3.3 安装参数补全源
  
        3.3.1 yum install -y bash-completion //安装参数补全源后需要重启电脑(reboot)才生效
  
        3.3.2 systemctl restart network.service //重启网络服务
  
        3.3.3 rpm -qa bash-completion
  
    3.4 alias 配置文件
  
        3.4.1 vi .bashre //alias的配置文件(一部分)
  
        3.4.2 cd /etc/profile.d/  //alias其他的一部分配置文件
  
        3.4.3 Tab键:
  
            3.4.3.1 按一下匹配命令和参数
  
            3.4.3.2 按两下显示匹配信息供选择
  
    3.5 通配符
  
        3.5.1 * 匹配所有字符 ls *.txt
  
        3.5.2 ? 匹配一个字符 ls ?.txt
  
        3.5.3 ls [0-9].txt
  
        3.5.4 ls {1,2}.txt
  
        3.5.5 重定向 cat 1.txt > 2.txt
  
        3.5.6 追加重定向 cat 1.txt >> 2.txt
  
        3.5.7 错误重定向 lsaaa 2> a.txt
  
        3.5.8 追加错误重定向 lsaaa 2>> a.txt
  
        3.5.9 wc -l < 1.txt //输入重定向,wc -l查看文本行数;左边需要是命令
  
        3.5.10 ls [12].txt aaa.txt &> a.txt  //&> 为正确错误重定向
  
        3.5.11 ls [12].txt aaa.txt >1.txt 2>a.txt  //将正确的和错误的区分开
  
    3.6 管道符和作业控制
  
        3.6.1 cat 1.txt | wc -l
  
        3.6.2 cat 1.txt | grep 'aaa'
  
        3.6.3 ctrl + z //暂停一个任务
  
        3.6.4 df -h //查看磁盘使用量
  
        3.6.5 fg //前台frontGround
  
            3.6.5.1 fg IDNumber
  
        3.6.6 jobs //查看后台或已停止的任务
  
        3.6.7 bg //后台background
  
            3.6.7.1 bg IDNumber
  
        3.6.8 vmstate 1  //动态的显示系统状态
  
        3.6.9 sleep 100 //暂停100秒
  
            3.6.9.1 sleep 100 & //把命令放到后台运行
  
            3.6.9.2 ps aux| grep sleep   //查看进程
  

  
    3.7 shell变量
  
        3.7.1 env //查看系统的环境变量
  
        3.7.2 set 命令
  
            3.7.2.1 set |grep 111  //查找111
  
            3.7.2.2 set 命令包含了很多变量,并且包含用户自定义的变量
  
            3.7.2.3 a=111  //自定义变量
  
            3.7.2.4 set 用来显示本地变量,env 用来显示环境变量, export 用来显示和设置环境变量
  
        3.7.3 export 全局变量
  
            3.7.3.1 export aming=linux
  
            3.7.3.2 echo $aming
  
            3.7.3.3 bash  //进入子bash
  
            3.7.3.4 echo $aming
  
            3.7.3.5 unset aming //取消环境变量
  

  
    3.8 环境变量的配置文件
  
        3.8.1 系统层次的
  
            3.8.1.1 /etc/profile  用户环境变量,交互,登录时才执行
  
            3.8.1.2 /etc/bashrc  用户不用登录,执行shell就失效
  
        3.8.2 系统层次的
  
            3.8.2.1 ~/.bashrc
  
            3.8.2.2 ~/.bash_profile
  
            3.8.2.3 ~/.bash_history
  
            3.8.2.4 ~/.bash_logout
  
        3.8.3 PS1变量
  
            3.8.3.1 PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$'
  
            3.8.3.2 a='a$bc'
  
            3.8.3.3 a=a"$b"c
  
            3.8.3.4 . .bash_profile  和  source .bash_profile,  此处.和source都是加载使生效的作用
  
            3.8.3.5 [登录的用户@主机名-所在的目录(最后的层级)]
  
            3.8.3.6 PS1='' //修改PS1
  
            3.8.3.7 echo $PS1  //打印PS1的值
  
       3.8.4 登录的用户@主机名-所在的目录(最后的层级)
  
       3.8.5 特殊字符
  
           3.8.5.1 *  //任意个任意字符
  
           3.8.5.2 ? //任意一个字符
  
           3.8.5.3 #  //注释
  
           3.8.5.4 \  //脱义字符   e.g.  c=\$a\$b  ehco c
  
           3.8.5.5 |  //管道字符
  

  
    3.9 cut 和 sort命令
  
        3.9.1 cat /etc/passwd |head -2 |cut -d ":" -f 1-3  //-d表示分割;-f表示段
  
        3.9.2 cut -d//分隔符; -f//指定段号; -c//指定第几个字符
  
        3.9.3 sort -n//以数字排序(字母认为是0); -r//反序; -t//分隔符 -kn1/-kn1,n2
  

  
    3.10 wc ,uniq, split 和 tee 命令
  
        3.10.1 wc -l //统计行数; wc -m//统计字符数; wc -w//统计词
  
        3.10.2 cat -A 1.txt  //输出行中假设为123$, 其中$代表换行符
  
        3.10.3 uniq 去重(需要先排序) uniq -c//统计行数
  
            3.10.3.1 sort 1.txt |uniq -c
  
        3.10.4 split -b//按字节为单位进行切割   split -l//按行数进行切割
  
        3.10.5 LC_ALL=C  //为了去除所有本地化的设置,让命令正确的执行
  
        3.10.6 tee 重定向,并把之前的结果打印在屏幕上
  
            3.10.6.1 sort 1.txt |uniq -c |tee a.txt
  
            3.10.6.2 tee -a //表示追加
  
            3.10.6.3 >a.txt  //清空a.txt
  
        3.10.7 tr替换字符
  
            3.10.7.1 echo "aminglinux" |tr '[al]' '[AL]'
  
        3.11 一些特殊字符
  
            3.11.1 $ 变量前缀   !$ 表示取前一次执行的命令
  
            3.11.2 ;多条命令写到一行,用分号分割
  
            3.11.3 ~ 用户家目录,正则中表示匹配符
  
            3.11.4 &放到命令后面,会把命令丢到后台
  
            3.11.5 >重定向   >>追加重定向   2>错误重定向   2>>追加错误重定向   &>将错误的和正确的全部重定向到一个文件中
  
            3.11.6 [] 指定一个字符中的一个
  
            3.11.7 || 或者  && 并且
  
            3.11.8 [-d aminglinux] || mkdir aminglinux    //-d判断是否是一个目录且是否存在



运维网声明 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.iyunv.com/thread-556749-1-1.html 上篇帖子: 跟老男孩学shell -- 初步入门 下篇帖子: hadoop shell命令字典详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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