shell是一个命令解析器,提供用户和机器之间的交互,相似于DOS下的command.com和后来的cmd.exe。它接收用户命令,而后调用相应的应用程序。 支持特定语法,好比逻辑判断,循环等。CentOS 默认的shell是bash ,若是有须要使用zsh,ksh能够使用yum install zsh/ksh 安装shell
[root@localhost ~]# echo $HISTSIZE 1000 [root@localhost ~]# vim /etc/profile HOSTNAME=`/usr/bin/hostname 2>/dev/null` HISTSIZE=5000 if [ "$HISTCONTROL" = "ignorespace" ] ; then export HISTCONTROL=ignoreboth else export HISTCONTROL=ignoredups fi export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
[root@localhost ~]# vim /etc/profile [root@localhost ~]# !echo echo $HISTSIZE 1000 [root@localhost ~]# source /etc/profile [root@localhost ~]# !echo echo $HISTSIZE 5000
[root@localhost ~]# history 1 2018/06/29 02:03:21ifconfig\ 2 2018/06/29 02:03:21ifconfig 3 2018/06/29 02:03:21yum install -y tree 4 2018/06/29 02:03:21tree 5 2018/06/29 02:03:21clear 6 2018/06/29 02:03:21cd 7 2018/06/29 02:03:21cd 8 2018/06/29 02:03:21pwd 9 2018/06/29 02:03:21cd /etc/sysconfig
显示的内容就是如上所示的了。vim
###别名 alias 命令能够查看系统中全部的作过别名的命令bash
[root@localhost ~]# alias alias 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-tilde'
也能够使用这个命令作别名,举个例子,重启网络服务systemctl restart network.service ,能够给他作一个简单的别名 ,alias restartnet='systemctl restart network.service'网络
[root@localhost ~]# alias restartnet='systemctl restart network.service' [root@localhost ~]# alias restartnet alias restartnet='systemctl restart network.service'
tab键 ,在咱们使用命令或者敲路径的时候用tab键会有两种状况出现:spa
以前咱们使用过命令#ls *.txt#来列出当前目录下以.txt结尾的全部的文件,其中的星号就是通配符。rest
*.txt 表示全部的以.txt结尾的文件code
txt.*表示全部的以txt.开头的文件内存
*.txt*
表示全部的中间带有.txt的文件cmd
?.txt 中的问好也是通配符,表示1个任意的字符(仅仅是一个)io
[0-3].txt 这个[]也是通配符,表示符合0-3这四个字符的文件(也能够表示成[0123]),例如:1.txt就符合,5.txt就不符合。[]中的内容能够使0-9,a-z ,A-Z 之间的阈值。
{1,2}.txt其中{}也是通配符,跟[]相似,可是它们的数字之间有,间隔。这个也比较严谨。
cat 1.txt >2.txt
这个用法会把原先2.txt文件的内容删除,并把1.txt的内容写入到2.txt中。cat 1.txt >2.txt
这个用法不会删除2.txt的内容,只会把1.txt的内容追加到2.txt中[root@localhost tmp]# vi 1.txt [root@localhost tmp]# vi 2.txt [root@localhost tmp]# cat 1.txt lilililililili [root@localhost tmp]# cat 2.txt chaochaochaochaochaochaochao [root@localhost tmp]# cat 1.txt >2.txt [root@localhost tmp]# cat 2.txt lilililililili [root@localhost tmp]# cat 1.txt >>2.txt [root@localhost tmp]# cat 2.txt lilililililili lilililililili
[root@localhost tmp]# cat 3.txt cat: 3.txt: 没有那个文件或目录 [root@localhost tmp]# cat 3.txt 2>1.txt [root@localhost ` tmp]# cat 1.txt cat: 3.txt: 没有那个文件或目录 [root@localhost tmp]# cat 4.txt 2>>1.txt [root@localhost tmp]# cat 1.txt cat: 3.txt: 没有那个文件或目录 cat: 4.txt: 没有那个文件或目录
上面代码显示,当咱们cat不存在的3.txt时会提示错误,但咱们在命令中加上了2>1.txt错误输出重定向符号,发现,错误信息把1.txt文件中原先的内容替换掉了。而后咱们在cat不存在的4.txt时加上了2>>1.txt参数,发现新的报错信息被追加到了1.txt中。
cat 2.txt 3.txt &>1.txt
[root@localhost tmp]# cat 2.txt 3.txt &>1.txt [root@localhost tmp]# cat 1.txt lilililililili lilililililili cat: 3.txt: 没有那个文件或目录 [root@localhost tmp]# cat 2.txt 3.txt &>>1.txt [root@localhost tmp]# cat 1.txt lilililililili lilililililili cat: 3.txt: 没有那个文件或目录 lilililililili lilililililili cat: 3.txt: 没有那个文件或目录
[root@localhost tmp]# cat 1.txt 4.txt>3.txt 2>2.txt [root@localhost tmp]# cat 3.txt lilililililili lilililililili cat: 3.txt: 没有那个文件或目录 lilililililili lilililililili cat: 3.txt: 没有那个文件或目录 这些内容是1.txt中的内容不要搞迷糊了 [root@localhost tmp]# cat 2.txt cat: 4.txt: 没有那个文件或目录 这个是错误信息输出到了2.txt中
追加跟上面用法同样,不过是把>换成了>>
这个符号不经常使用 是把后面的内容输出给前面的命令来执行,了解一下就好