1. 程式人生 > >Linux shell基礎知識

Linux shell基礎知識

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基礎知識