标签:颜色显示 http 技术 aec 第八章 单引号 分享 ado glin
8.1 Shell 介绍
linux的shell简单说就是一个命令行和用户交互的一个进程。 你打命令它会出结果。 类似windows里面的cmd窗口。
8.2 Shell 命令历史
所有敲过的命令都存在 <ls /root/.bash_history> ,这个文件最大可以存1000条
<history> 可以查看敲过的命令
<echo $HISTORY> 查看环境变量最大可以存多少条

<history -c>清内存命令历史,不能清空命令存储的文件。
退出终端时才会将刚刚敲过的命令存储。
<vi  /etc/profile> 修改 HISTSIZE的值,要使新修改的值生效,需要 <source /etc/profile>才能生效。
或者退出命令行再进入时生效。
<HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S">设置查看历史命令运行的时间,也是临时在内存中的,若需使生效也需要编辑<vi  /etc/profile> 修改 配置文件,并source一下,再重新打开一下xshell。


<chattr +a  ~/.bash_history>  设置隐藏权限只能追加不能删除,运行的所有命令都会保存下来。
命令行不正常退出,保存的命令不会不全。
<!!>执行上一条命令
<!n>  n为数字,第几条命令  
<!echo> 再命令历史中倒序找第一个echo开头的命令并执行。

8.3 Tab命令补全和别名

<yum install -y bash-completion> 安装参数补全包,需要重启系统才会生效。
<alias  restartnet=‘systemctl restart network.service‘>  起别名  ,存在内存中,重启后失效

别名存放在   ~/.bashrc和  /etc/profile.d/下
<vim  ~/.bashrc>

<cd /etc/profile.d/> 进入别名存放区

8.4 通配符

<ls *txt>    通配所有字符
<ls ?.txt> ?表示一个任意的字符
<ls [0-5].txt>  列出0-5中的字符
<ls [23].txt>   2或3的通配
<ls [0-9a-z]> 0-9,a-z的通配
<ls {1,2,3}.txt>1,2,3或的通配
8.5 输入输出的重定向
输出重定向:
<cat 1.txt>2.txt>    把前者输出到后者中,相当于重写
<cat 1.txt>>2.txt > 把前者追加到后者后面去,相当于追加
<ls aaa.txt  2>err > 将错误信息输出到aaa.txt中
<ls aaa.txt  2>>err > 将错误信息追加到aaa.txt后面相当于追加
<ls [12].txt aaa.txt &>a.txt>> aaa.txt不存在,1.txt,2.txt存在,会将正确和错误信息输出到a.txt
<ls [12].txt aaa.txt  >1.txt  2>a.txt>>将正确信息输出到1.txt,错误信息输出到a.txt 
输入重定向:
<wc - l<1.txt>  将1.txt信息输入到wc指令中。左侧必须为命令
8.6 管道符和作业控制
管道符:将前者的内容输出后交给后面。
<ls |wc -l > 统计ls列出了多少个文件
<find ./ -type  f |wc -l> 统计所有文件数
<vmstat 1>  一个持续更新的程序
ctrl +z 暂停当前任务将它调到后台
fg   暂停当前的任务 ,将任务放到前台
bg 将当前任务调到后台去
jobs 当前的所有的任务



sleep 200 休眠200s

sleep 4000 & 创建休眠任务并丢到后台去
8.7 shell变量 (上)
8.8 shell变量 (下)

env   命令可以查看系统的变量
set   很多变量,并包含用户自定义的变量;

单引号‘ ‘在拓义时用,有特殊符号时用单引号‘ ‘
多个变量相互叠加起来输出时用多个双引号" "连起来;
为什么a="a$bc"会输出a?,实际只识别了a,后面的都未识别

w                         查看所有登陆的用户信息
echo $SSH_TTY  查看当前所属的终端TTY;

实际上面定义的变量只在当前终端下当前bash生效。

pstree   查看当前的shell路径;
通过export定义的全局变量向下有效,且必须是同一sshd下。
exit    退到上一级的shell路径;
bash  创建一层shell
sshd  登陆一个终端创建一个sshd;
unset a 取消定义的名字为a的变量
8.9环境变量配置文件

/etc/ 下是系统的环境变量
~/  下是 用户自己家目录下的环境变量
PS1  定义在  /etc/bashrc中 < vim     /etc/bashrc>
PPT中PS1指令,带颜色显示

8.10 shell 特殊字符_cut命令
8.11 Sort_wc_uniq 命令
8.12 tee_tr_spit  命

< cat /etc/passwd  |head  -2  |cut -d ":" -f 1-5  >  取前两行的以:为分割的1-5个段
< cat /etc/passwd  |head  -2  |cut -c   4  >  取第4个字符


<sort /etc/passwd>   排序显示,默认按ascii排序
<sort -n 2.txt>  按数字大小排序,字符和符号都会被当为0
<wc -l  2.txt> 统计行数
<wc -m 2.txt>统计字符数,文件默认其实每一行都有一个$符号,这个不要漏掉。
<wc -w 2.txt>  统计词,以特殊字符区分比如空格,逗号,都算。
<uniq 2.txt>  去重,将相邻的相同符号去掉。所以先排序在去重。
sort uniq head cat 命令只会对文件进行一些操作并输出,并不会更改文件内内容;
《 tee 》   相当于 重定向指令‘>‘,但会在屏幕上输出
< >a.txt  > 清空文件a.txt的内容
<sort 2.txt |uniq -c >  将文件2.txt的内容去重排序。
<sort 2.txt |uniq -c  > a.txt>   将2.txt的内容重定向输出,但不会在屏幕上打印出来
<sort 2.txt |uniq -c |tee a.txt>   将2.txt的内容重定向输出,并在屏幕上打印出来
<sort 2.txt |uniq -c |tee -a a.txt>   将2.txt的内容追加输出,并在屏幕上打印出来追加的内容
《 tr 》  替换字符
< echo "aminglinux"  |tr ‘[al]‘ ‘[AL]‘ > 将其中的小写a和l变成大写A和L    [ ]代表任选
< echo "aminglinux"  |tr ‘a‘  ‘A‘ >     将其中的小写a变成大写A
< echo "aminglinux"  |tr ‘[a-z]‘ ‘[A-Z]‘ > 所有字母改成大写
<echo "aminglinux"  |tr ‘[a-z]‘ ‘1‘  >   所有字母改成 1

<split>  切割
<split  -b  100M  a.txt>
<find /etc/ -type f -name "*conf" -exec cat {} >> b.txt  \;> 将/etc/下所有conf文件列出来并追加到b.txt

<split -b 10000 a.txt> 默认是字节

<split -l 1000 a.txt> 切割成1000行

8.13 shell 特殊字符 (下)

;   多条命令写一行

正确重定向> 追加重定向
2> 错误重定向
2>>错误追加重定向
&> 错误和正确重定向
|| 或者 前面命令执行成功就不再执行后面命令
&& 和 前面执行成功才执行后面的命令
[ -d aminglingx] || mkdir aminglinux 若目录存在将不再创建目录

标签:颜色显示 http 技术 aec 第八章 单引号 分享 ado glin
原文地址:http://blog.51cto.com/iammalt/2060914