- 3.Shell基础知识
- 3.1Shell的由来
- 3.1.1BourneAginShell
- 3.1.2其他的shell,有zsh,ksh等
- 3.2查看有没有shell
- 3.2.1yumlist|grepzsh
- 3.2.2ls/root/.bash_history
- 3.2.3echo$HISTSIZE->vi/etc/profile修改HISTSIZE的值->source/etc/profile
- 3.2.4history-c//清空命令历史(内存中的)
- 3.2.5HISTTIMEFORMAT="%Y/%m/%d%H:%M:%S"
- 3.2.6vi/etc/profile
- 3.2.7chattr+a~/.bash_history//只能被追加,不会被删除
- 3.2.8!!//最后一条命令;!n//!words//
- 3.3安装参数补全源
- 3.3.1yuminstall-ybash-completion//安装参数补全源后需要重启电脑(reboot)才生效
- 3.3.2systemctlrestartnetwork.service//重启网络服务
- 3.3.3rpm-qabash-completion
- 3.4alias配置文件
- 3.4.1vi.bashre//alias的配置文件(一部分)
- 3.4.2cd/etc/profile.d///alias其他的一部分配置文件
- 3.4.3Tab键:
- 3.4.3.1按一下匹配命令和参数
- 3.4.3.2按两下显示匹配信息供选择
- 3.5通配符
- 3.5.1*匹配所有字符ls*.txt
- 3.5.2?匹配一个字符ls?.txt
- 3.5.3ls[0-9].txt
- 3.5.4ls{1,2}.txt
- 3.5.5重定向cat1.txt>2.txt
- 3.5.6追加重定向cat1.txt>>2.txt
- 3.5.7错误重定向lsaaa2>a.txt
- 3.5.8追加错误重定向lsaaa2>>a.txt
- 3.5.9wc-l<1.txt//输入重定向,wc-l查看文本行数;左边需要是命令
- 3.5.10ls[12].txtaaa.txt&>a.txt//&>为正确错误重定向
- 3.5.11ls[12].txtaaa.txt>1.txt2>a.txt//将正确的和错误的区分开
- 3.6管道符和作业控制
- 3.6.1cat1.txt|wc-l
- 3.6.2cat1.txt|grep'aaa'
- 3.6.3ctrl+z//暂停一个任务
- 3.6.4df-h//查看磁盘使用量
- 3.6.5fg//前台frontGround
- 3.6.5.1fgIDNumber
- 3.6.6jobs//查看后台或已停止的任务
- 3.6.7bg//后台background
- 3.6.7.1bgIDNumber
- 3.6.8vmstate1//动态的显示系统状态
- 3.6.9sleep100//暂停100秒
- 3.6.9.1sleep100&//把命令放到后台运行
- 3.6.9.2psaux|grepsleep//查看进程
- 3.7shell变量
- 3.7.1env//查看系统的环境变量
- 3.7.2set命令
- 3.7.2.1set|grep111//查找111
- 3.7.2.2set命令包含了很多变量,并且包含用户自定义的变量
- 3.7.2.3a=111//自定义变量
- 3.7.2.4set用来显示本地变量,env用来显示环境变量,export用来显示和设置环境变量
- 3.7.3export全局变量
- 3.7.3.1exportaming=linux
- 3.7.3.2echo$aming
- 3.7.3.3bash//进入子bash
- 3.7.3.4echo$aming
- 3.7.3.5unsetaming//取消环境变量
- 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.3PS1变量
- 3.8.3.1PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$'
- 3.8.3.2a='a$bc'
- 3.8.3.3a=a"$b"c
- 3.8.3.4..bash_profile和source.bash_profile,此处.和source都是加载使生效的作用
- 3.8.3.5[登录的用户@主机名-所在的目录(最后的层级)]
- 3.8.3.6PS1=''//修改PS1
- 3.8.3.7echo$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\$behcoc
- 3.8.5.5|//管道字符
- 3.9cut和sort命令
- 3.9.1cat/etc/passwd|head-2|cut-d":"-f1-3//-d表示分割;-f表示段
- 3.9.2cut-d//分隔符;-f//指定段号;-c//指定第几个字符
- 3.9.3sort-n//以数字排序(字母认为是0);-r//反序;-t//分隔符-kn1/-kn1,n2
- 3.10wc,uniq,split和tee命令
- 3.10.1wc-l//统计行数;wc-m//统计字符数;wc-w//统计词
- 3.10.2cat-A1.txt//输出行中假设为123$,其中$代表换行符
- 3.10.3uniq去重(需要先排序)uniq-c//统计行数
- 3.10.3.1sort1.txt|uniq-c
- 3.10.4split-b//按字节为单位进行切割split-l//按行数进行切割
- 3.10.5LC_ALL=C//为了去除所有本地化的设置,让命令正确的执行
- 3.10.6tee重定向,并把之前的结果打印在屏幕上
- 3.10.6.1sort1.txt|uniq-c|teea.txt
- 3.10.6.2tee-a//表示追加
- 3.10.6.3>a.txt//清空a.txt
- 3.10.7tr替换字符
- 3.10.7.1echo"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[-daminglinux]||mkdiraminglinux//-d判断是否是一个目录且是否存在