Linux shell基础知识、命令历史、命令补全和别名、通配符、输入输出重定向
2018-03-07 15:58
405 查看
一、 shell介绍1. Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。2. 实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。3. Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。4. Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。5. CentOS的shell默认的shell为bash,还有其它类型的shell,比如zsh、ksh、等等
二、命令历史1. 命令历史的存放地址,这个文件最多可以存放1000条/root/.bash_history 2.环境变量HISTSIZE ,可以查看能够存放命令的条数[root@localhost ~]# echo $HISTSIZE 1000 3. histtory -c 清空当前内存中的命令历史,不能清空配置文件里的 当退出终端的时候,命令才会保存到配置文件里,4. 修改环境变量HISTSIZE的值,更改命令保存的条数 vim /etc/profile #打开配置文件
HISTSIZE=1000 #在配置文件里面找到这一行,将数值1000更改为你想要修改的值
source /etc/profile #当更改profile文件后,需要source下或者重启终端才会生效5. HISTTIMEFORMAT 自定义History输出格式,可以加上时间1. [root@localhost ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " #设置格式2. [root@localhost ~]# echo $HISTTIMEFORMAT %Y/%m/%d %H:%M:%S3. [root@localhost ~]# history #可以看到history已经设置格式为年/月/日/.......,加上了时间信息 1 2018/01/10 06:36:43 vim /etc/profile 2 2018/01/10 06:40:54 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " 3 2018/01/10 06:41:05 history
如果想要这个环境变量永久生效,那么需要添加到配置文件里vim /etc/profile #编辑配置文件HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " #将这段添加到配置文件,和HISTSIZE=1000放在一起source /etc/profile #编辑完成后重启配置文件生效6. 给命令历史文件加上a权限,那么只能追加,不能删除,这样可以永久保存命令 但是如果不正常退出终端,那么命令历史不会正常保存chattr +a /root/.bash_history 7. !! 表示命令历史里最后一条命令 !n n表示数字,输入后可以在运行历史记录里相对应id号的命令 !echo 运行命令历史echo开头的最近的一条命令
三、命令补全和别名1.当输入命令的时候按Table可以自动补全命令或参数yum install -y bash-completion #安装命令补全的包,安装完成后需要重启系统2. alias 列出系统所有的别名,包括自定义的[root@localhost ~]# aliasalias cp='cp -i'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias grep='grep --color=auto'alias l.='ls -d .* --color=auto'alias ll='ls -l --color=auto'alias ls='ls --color=auto'alias mv='mv -i'alias rm='rm -i'alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-ti3. alias 存放的地址.bashrc #用户的家目录文件下面存放了几条
[root@localhost ~]# cd /etc/profile.d[root@localhost profile.d]# ls #在/etc/profile.d这个目录下也放了几个配置文件,这些配置文件里面也存放了别名256term.csh colorgrep.csh colorls.sh less.csh vim.sh256term.sh colorgrep.sh lang.csh less.sh which2.cshbash_completion.sh colorls.csh lang.sh vim.csh which2.sh4. 自定义别名和取消别名 alias 与 unalias [root@localhost profile.d]# alias lspro='ls -l /etc/profile.d' #给'ls -l /etc/profile.d'这条命令设置别名lspro[root@localhost profile.d]# lspro #可以直接使用lspro总用量 60 -rw-r--r--. 1 root root 771 8月 4 07:57 256term.csh-rw-r--r--. 1 root root 841 8月 4 07:57 256term.sh-rw-r--r--. 1 root root 660 6月 10 2014 bash_completion.sh-rw-r--r--. 1 root root 196 3月 25 2017 colorgrep.csh[root@localhost profile.d]# unalias lspro #使用unalias取消自定义别名[root@localhost profile.d]# lspro #再使用的时候提示未找到命令-bash: lspro: 未找到命令
四、通配符1. * 通配符,可以代表任何字,[root@localhost ~]# ls *.txt #列出所有以”.txt“结尾的文件或目录11_hard.txt 11.txt 555.txt[root@localhost ~]# ls 1* #列出所有的以"1"开头的文件,不管是目录还是文件都会列出来11_hard.txt 11.txt2. ? 表示一个任意的字符[root@localhost ~]# ls ?.txt #”?“表示任意的一个字符,所以只列出一个字符开头的文件2.txt c.txt3. [0-9] [a-z] 可以写数字或字母,表示0到9或者a-z任意一个 {1,2,3} {a,b,c}作用和[]类似,不过中间要有逗号分隔[root@localhost ~]# ls [0-3].txt #列出0到3开头的文件1.txt 2.txt 3.txt[root@localhost ~]# ls [123].txt #列出1、2、3开头的文件1.txt 2.txt 3.txt[root@localhost ~]# ls [13].txt #列出1和31.txt 3.txt[root@localhost ~]# ls [23].txt #列出2和32.txt 3.txt
五、输入输出重定向1. > 重定向,将一个命令的结果输出,原文件会删除 >> 追加重定向,原来的文件不会删除2. 2> 错误重定向,将错误的信息输出 2>> 错误追加重定向,将错误的信息输出[root@localhost ~]# fgdddd 2> xx.txt 运行一个错误的命令,将错误的信息重定向到xx.txt文件里面去[root@localhost ~]# cat xx.txt-bash: fgdddd: 未找到命令3. &> 将错误和正确的信息都输出,重定向 &>> 将错误和正确的信息都输出,追加重定向[root@localhost ~]# ls [123].txt sss.txt &>xx.txt #ls 1、2、3.txt以及sss.txt,将错误和正确的结果都重定向到xx.txt[root@localhost ~]# cat xx.txt ls: 无法访问sss.txt: 没有那个文件或目录1.txt2.txt3.txt4. 将错误和正确的信息分别写在不同文件里[root@localhost ~]# ls [123].txt sss.txt > bb.txt 2>cc.txt #将正确的信息写在bb.txt 错误的信息写在cc.txt[root@localhost ~]# cat bb.txt1.txt2.txt3.txt[root@localhost ~]# cat cc.txtls: 无法访问sss.txt: 没有那个文件或目录5. < 输入重定向[root@localhost ~]# wc -l <1.txt 4
二、命令历史1. 命令历史的存放地址,这个文件最多可以存放1000条/root/.bash_history 2.环境变量HISTSIZE ,可以查看能够存放命令的条数[root@localhost ~]# echo $HISTSIZE 1000 3. histtory -c 清空当前内存中的命令历史,不能清空配置文件里的 当退出终端的时候,命令才会保存到配置文件里,4. 修改环境变量HISTSIZE的值,更改命令保存的条数 vim /etc/profile #打开配置文件
HISTSIZE=1000 #在配置文件里面找到这一行,将数值1000更改为你想要修改的值
source /etc/profile #当更改profile文件后,需要source下或者重启终端才会生效5. HISTTIMEFORMAT 自定义History输出格式,可以加上时间1. [root@localhost ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " #设置格式2. [root@localhost ~]# echo $HISTTIMEFORMAT %Y/%m/%d %H:%M:%S3. [root@localhost ~]# history #可以看到history已经设置格式为年/月/日/.......,加上了时间信息 1 2018/01/10 06:36:43 vim /etc/profile 2 2018/01/10 06:40:54 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " 3 2018/01/10 06:41:05 history
如果想要这个环境变量永久生效,那么需要添加到配置文件里vim /etc/profile #编辑配置文件HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " #将这段添加到配置文件,和HISTSIZE=1000放在一起source /etc/profile #编辑完成后重启配置文件生效6. 给命令历史文件加上a权限,那么只能追加,不能删除,这样可以永久保存命令 但是如果不正常退出终端,那么命令历史不会正常保存chattr +a /root/.bash_history 7. !! 表示命令历史里最后一条命令 !n n表示数字,输入后可以在运行历史记录里相对应id号的命令 !echo 运行命令历史echo开头的最近的一条命令
三、命令补全和别名1.当输入命令的时候按Table可以自动补全命令或参数yum install -y bash-completion #安装命令补全的包,安装完成后需要重启系统2. alias 列出系统所有的别名,包括自定义的[root@localhost ~]# aliasalias cp='cp -i'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias grep='grep --color=auto'alias l.='ls -d .* --color=auto'alias ll='ls -l --color=auto'alias ls='ls --color=auto'alias mv='mv -i'alias rm='rm -i'alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-ti3. alias 存放的地址.bashrc #用户的家目录文件下面存放了几条
[root@localhost ~]# cd /etc/profile.d[root@localhost profile.d]# ls #在/etc/profile.d这个目录下也放了几个配置文件,这些配置文件里面也存放了别名256term.csh colorgrep.csh colorls.sh less.csh vim.sh256term.sh colorgrep.sh lang.csh less.sh which2.cshbash_completion.sh colorls.csh lang.sh vim.csh which2.sh4. 自定义别名和取消别名 alias 与 unalias [root@localhost profile.d]# alias lspro='ls -l /etc/profile.d' #给'ls -l /etc/profile.d'这条命令设置别名lspro[root@localhost profile.d]# lspro #可以直接使用lspro总用量 60 -rw-r--r--. 1 root root 771 8月 4 07:57 256term.csh-rw-r--r--. 1 root root 841 8月 4 07:57 256term.sh-rw-r--r--. 1 root root 660 6月 10 2014 bash_completion.sh-rw-r--r--. 1 root root 196 3月 25 2017 colorgrep.csh[root@localhost profile.d]# unalias lspro #使用unalias取消自定义别名[root@localhost profile.d]# lspro #再使用的时候提示未找到命令-bash: lspro: 未找到命令
四、通配符1. * 通配符,可以代表任何字,[root@localhost ~]# ls *.txt #列出所有以”.txt“结尾的文件或目录11_hard.txt 11.txt 555.txt[root@localhost ~]# ls 1* #列出所有的以"1"开头的文件,不管是目录还是文件都会列出来11_hard.txt 11.txt2. ? 表示一个任意的字符[root@localhost ~]# ls ?.txt #”?“表示任意的一个字符,所以只列出一个字符开头的文件2.txt c.txt3. [0-9] [a-z] 可以写数字或字母,表示0到9或者a-z任意一个 {1,2,3} {a,b,c}作用和[]类似,不过中间要有逗号分隔[root@localhost ~]# ls [0-3].txt #列出0到3开头的文件1.txt 2.txt 3.txt[root@localhost ~]# ls [123].txt #列出1、2、3开头的文件1.txt 2.txt 3.txt[root@localhost ~]# ls [13].txt #列出1和31.txt 3.txt[root@localhost ~]# ls [23].txt #列出2和32.txt 3.txt
五、输入输出重定向1. > 重定向,将一个命令的结果输出,原文件会删除 >> 追加重定向,原来的文件不会删除2. 2> 错误重定向,将错误的信息输出 2>> 错误追加重定向,将错误的信息输出[root@localhost ~]# fgdddd 2> xx.txt 运行一个错误的命令,将错误的信息重定向到xx.txt文件里面去[root@localhost ~]# cat xx.txt-bash: fgdddd: 未找到命令3. &> 将错误和正确的信息都输出,重定向 &>> 将错误和正确的信息都输出,追加重定向[root@localhost ~]# ls [123].txt sss.txt &>xx.txt #ls 1、2、3.txt以及sss.txt,将错误和正确的结果都重定向到xx.txt[root@localhost ~]# cat xx.txt ls: 无法访问sss.txt: 没有那个文件或目录1.txt2.txt3.txt4. 将错误和正确的信息分别写在不同文件里[root@localhost ~]# ls [123].txt sss.txt > bb.txt 2>cc.txt #将正确的信息写在bb.txt 错误的信息写在cc.txt[root@localhost ~]# cat bb.txt1.txt2.txt3.txt[root@localhost ~]# cat cc.txtls: 无法访问sss.txt: 没有那个文件或目录5. < 输入重定向[root@localhost ~]# wc -l <1.txt 4
相关文章推荐
- Linux shell基础知识、命令历史、命令补全和别名、通配符、输入输出重定向
- shell介绍、命令历史、 命令补全和别名 、通配符 、输入输出重定向
- 记录历史命令,history,命令补全和别名、通配符、输入输出重定向
- linux学习第二十三篇:shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向
- shell介绍、命令历史、命令补全和别名、通配符、输入输出重定向
- shell介绍、历史命令、命令补全和别名、通配符、输入输出重定向
- shell介绍 、命令历史、命令补全和别名 、 通配符、输入输出重定向
- shell介绍,命令历史,命令补全和别名,通配符 ,输入输出重定向
- 5周第3次课 shell介绍 命令历史 命令补全和别名 通配符 输入输出重定向
- 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向
- shell介绍,命令历史,命令补全和别名 ,通配符, 输入输出重定向
- 五周第三次课 2017.11.15 shell介绍、命令历史、命令补全和别名、通配符、输入输出重定向
- shell介绍、命令历史、命令补全和别名、通配符、输入输出重定向
- Linux笔记(shell基础,历史命令,命令补全/别名,通配符,输出重定向)
- 五周第三次课(11月15日) 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向
- 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向
- shell介绍、历史命令、命令补全和别名、通配符、输入输出重定向
- shell基础,命令历史,别名,通配符,输入输出重定向
- 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向
- shell介绍、命令历史、命令补全和别名、通配符和输入输出重定向