Linux shell基礎知識
阿新 • • 發佈:2017-12-29
nali 安裝 sha true 配置 史記 圖片 配置文件 目錄
1.shell(Bourne Agin shell)是一個命令解析器,提供用戶和機器之間的交互,還有zsh、ksh
2.我們敲過的命令在什麽地方存的呢?在家目錄下的.bash_history文件中,最多可以保存1000條命令,可以用戶history命令查看。
[root@bogon ~]# ls /root/.bash_history /root/.bash_history [root@bogon ~]#
3.1000條的個數是有環境變量$HISTSIZE 控制的
[root@bogon ~]# echo $HISTSIZE 1000 [root@bogon ~]#
4.清空當前的命令歷史記錄,不能清空配置文件中的命令
[root@bogon ~]# history -c [root@bogon ~]#
[root@bogon ~]# history 1 history [root@bogon ~]#
5.剛敲得命令不是直接保存到文件中,先保存到內存中,當我們退出終端才保存到文件中。
6.HISTSIZE環境變量控制命令保存條數配置文件在etc/profile中
7.我們將這個值改成5000變量值並不會立即生效,必須source下才生效
[root@bogon ~]# echo $HISTSIZE 1000 [root@bogon ~]# source /etc/profile [root@bogon ~]# echo $HISTSIZE 5000 [root@bogon ~]#
8.想要查看命令是什麽時間執行的可以在當前終端定義環境變量
[root@bogon ~]# HISTTIMEFORMAT="%Y%m/%d %H:%M:%S " [root@bogon ~]#
9.再執行history發現可以看到時間了
[root@bogon ~]# history 1 201712/29 16:15:32 history 2 201712/29 16:19:51 vim /etc/profile 3 201712/29 16:22:32 echo $HISTSIZE 4 201712/29 16:23:10 source /etc/profile 5 201712/29 16:23:20 echo $HISTSIZE 6 201712/29 16:24:49 history 7 201712/29 16:28:56 HISTTIMEFORMAT="%Y%m/%d %H:%M:%S " 8 201712/29 16:29:19 history [root@bogon ~]#
10.如果想永久生效需要將環境變量添加到/etc/profile文件中,然後保存推出source一下/etc/profile文件
11.永久生效了
[root@bogon ~]# echo $HISTTIMEFORMAT %Y%m/%d %H:%M:%S [root@bogon ~]#
12.永久保存命令文件,執行了命令以後用戶運行的所有命令都會已追加的形式被保存下來(直接關閉終端不會記錄剛敲的命令)
[root@bogon ~]# chattr +a ~/.bash_history [root@bogon ~]#
13.!!就是上一條命令
14.!n 就是運行多少條命令,n指的是多少條
15.!word 是從下往上找以單詞word開頭的執行過的命令執行
命令補全和別名
1.默認不支持命令產生補全,需要安裝bash-completion包,按完之後重啟系統
[root@bogon ~]# yum install -y bash-completion
2.如果命令太長可以給命令起別名,然後直接執行restartnet就行了
[root@bogon ~]# alias restartnet=‘systemctl restart network.service‘ [root@bogon ~]#
3.查看所有的alias別名命令
[root@bogon ~]# 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 restartnet=‘systemctl restart network.service‘ alias rm=‘rm -i‘ alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘ [root@bogon ~]#
4.用戶家目錄下的.bashrc文件中有系統配置的alias
[root@bogon ~]# vim .bashrc
5.其他的alias配置在/etc/profile.d/下
[root@bogon profile.d]# cd /etc/profile.d/ [root@bogon profile.d]# ls 256term.csh colorls.csh PackageKit.sh vim.sh 256term.sh colorls.sh qt.csh vte.sh abrt-console-notification.sh lang.csh qt-graphicssystem.csh which2.csh bash_completion.sh lang.sh qt-graphicssystem.sh which2.sh colorgrep.csh less.csh qt.sh colorgrep.sh less.sh vim.csh [root@bogon profile.d]#
6.取消自定義的別名
[root@bogon profile.d]# unalias restartnet [root@bogon profile.d]#
Linux shell基礎知識