數據倉庫002 - 復習Linux shell命令 - echo bash_profile bashrc which命令的理解 alias history


 

 


1.echo 打印 。

echo 的作用是在屏幕上打印輸出內容,與文件和持久化可以理解為沒有絲毫關聯。如:在屏幕上打印“ echo 的作用是打印文字! ”

    

   實例1:輸出系統的環境變量名稱 $PATH

[root@localhost ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# 

 

 實例2:查看命令所屬的路徑在哪,首先先去$PATH找,如果找到第一個就返回結果並顯示

[root@localhost ~]# which ls
alias ls='ls --color=tty'
        /bin/ls
[root@localhost ~]#

 

 實例3:PATH='' 只清空當前session 會話的變量 $PATH ,並沒有全局生效。

[root@localhost ~]# PATH=''
[root@localhost ~]# echo $PATH

[root@localhost ~]# which ls
alias ls='ls --color=tty'
[root@localhost ~]# ls
-bash: ls: 沒有那個文件或目錄
[root@localhost ~]# 

  恢復當前session 會話的變量 $PATH:

[root@localhost ~]#  PATH='/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin'
[root@localhost ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# which ls
alias ls='ls --color=tty'
        /bin/ls
[root@localhost ~]# ls
anaconda-ks.cfg  install.log.syslog  password.txt
install.log      ntuser.pol          student.txt
[root@localhost ~]# 

 

 

2.環境變量。

  全局: /etc/profile     系統級環境的變量,提供所有用戶使用
  個人:   ~/.bash_profile       用戶級別不共享的環境變量,但是在使用SecureCRT等工具連接登錄系統后,該文件內所配置的變量值,部分命令不會默認加載
       ~/.bashrc                 用戶級別共享的環境變量,在使用SecureCRT等工具連接登錄系統后,該文件內所配置的變量值,依然有效

  

  生效文件: source xxxx
       . ~/.bashrc

 

3.which命令的理解。

  which命令的作用是,在PATH變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。

  也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。 

  命令參數:

    -n  指定文件名長度,指定的長度必須大於或等於所有文件中最長的文件名。

    -p  與-n參數相同,但此處的包括了文件的路徑。

    -w  指定輸出時欄位的寬度。

    -V  顯示版本信息

 

4.別名。

  可將別名以vi的方式寫到.bash_profile、 .bashrc或者/etc/profile文件中,這樣別名的定義就具有了持久性,但是要注意,根據寫入的文件不同也會具有不一樣效果,具體參照2.環境變量中的文件說明。

[root@localhost ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost ~]# alias l='cd /home/linux'
[root@localhost ~]# l
[root@localhost linux]# 

 

 

5.刪除

[root@localhost linux]# touch xxx.log
[root@localhost linux]# ll
總計 28
drwxr-xr-x 2 linux linux 4096 10-16 06:02 Desktop
-rw-rw-r-- 1 linux linux    0 10-16 07:04 file1.txt
-rw-rw-r-- 1 linux linux    0 10-16 07:07 file2.txt
drwxrwxr-x 2 linux linux 4096 10-16 07:10 ml
-rw-r--r-- 1 root  root     0 11-22 01:01 xxx.log
[root@localhost linux]# rm -f xxx.log 
[root@localhost linux]# ll
總計 24
drwxr-xr-x 2 linux linux 4096 10-16 06:02 Desktop
-rw-rw-r-- 1 linux linux    0 10-16 07:04 file1.txt
-rw-rw-r-- 1 linux linux    0 10-16 07:07 file2.txt
drwxrwxr-x 2 linux linux 4096 10-16 07:10 ml
[root@localhost linux]# cat /dev/null > xxx.log
[root@localhost linux]# ll
總計 28
drwxr-xr-x 2 linux linux 4096 10-16 06:02 Desktop
-rw-rw-r-- 1 linux linux    0 10-16 07:04 file1.txt
-rw-rw-r-- 1 linux linux    0 10-16 07:07 file2.txt
drwxrwxr-x 2 linux linux 4096 10-16 07:10 ml
-rw-r--r-- 1 root  root     0 11-22 01:02 xxx.log
[root@localhost linux]# rm -f xxx.log 
[root@localhost linux]# ll
總計 24
drwxr-xr-x 2 linux linux 4096 10-16 06:02 Desktop
-rw-rw-r-- 1 linux linux    0 10-16 07:04 file1.txt
-rw-rw-r-- 1 linux linux    0 10-16 07:07 file2.txt
drwxrwxr-x 2 linux linux 4096 10-16 07:10 ml
[root@localhost linux]# mkdir 1111
[root@localhost linux]# ll
總計 32
drwxr-xr-x 2 root  root  4096 11-22 01:02 1111
drwxr-xr-x 2 linux linux 4096 10-16 06:02 Desktop
-rw-rw-r-- 1 linux linux    0 10-16 07:04 file1.txt
-rw-rw-r-- 1 linux linux    0 10-16 07:07 file2.txt
drwxrwxr-x 2 linux linux 4096 10-16 07:10 ml
[root@localhost linux]# rm -rf 1111/
[root@localhost linux]# ll
總計 24
drwxr-xr-x 2 linux linux 4096 10-16 06:02 Desktop
-rw-rw-r-- 1 linux linux    0 10-16 07:04 file1.txt
-rw-rw-r-- 1 linux linux    0 10-16 07:07 file2.txt
drwxrwxr-x 2 linux linux 4096 10-16 07:10 ml
[root@localhost linux]# 

  其中,文件: touch xxx.log 

        cat /dev/null > xxx.log             vi命令 也會生成新文件

     文件夾: mkdir

   rm -f rz.log11 直接刪除文件
   rm -rf 1 直接刪除文件夾

 

6.history

[root@localhost linux]# history
    1  history
    2   echo "echo 的作用是打印文字!"
    3  ping www.baidu.com
    4  history
[root@localhost linux]# !2
 echo "echo 的作用是打印文字!"
echo 的作用是打印文字!
[root@localhost linux]# 

  !2 表示:執行歷史指定的第2條命令,由於Linux沒有回收站,所以當發生高危命令風險: rm -rf /  ,結果是很嚴重很嚴重的,但是這條指令往往會被我們不經意間使用,下面是一個典型的shell腳本案例:  

K='/home/jepson'
K=''
判斷 $K命令是否存在
rm -rf $K/*

  

  那么,一旦發生了這樣的后果怎么辦呢? 答案當然是刪除history的記錄了,使用history -c 命令進行清空history,但是這種情況只針對使用SecureCRT等工具直接連接 ,或者跳板機的時候使用,對於堡壘機而言還是會記錄你的操作命令。

[root@localhost linux]# history
    1  history
    2   echo "echo 的作用是打印文字!"
    3  ping www.baidu.com
    4  history
[root@localhost linux]# !2
 echo "echo 的作用是打印文字!"
echo 的作用是打印文字!
[root@localhost linux]# history -c 
[root@localhost linux]# history
    1  history

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM