1. 程式人生 > >學習筆記第七節課

學習筆記第七節課

作業

環境變量PATH
  • which可以查看到命令所在的路徑,包括別名。
  • 之前還有一個find命令(查找文件的起始目錄)可以把所有文件從頭到位變量了一遍。
  • 但是which不會,它速度很快,實際是從以下目錄裏面去找的,命令如果在目錄裏,去敲命令時就不用去敲絕對路徑。
  • 技術分享圖片

  • 真正用一個命令,應該使用絕對路徑。命令其實也是一個文件,你想使用這個命令,就要先找到這個命令在哪裏。
  • 我們可以把ls命令做一個特殊處理,改個名字,使用cp (也就是拷貝) 再使用/tmp/ls2 和ls的命令一個效果, 但是直接使用ls2 卻找不到這個命令,因為它不在usr/local/sbin的目錄裏面。 想直接用 就要改一下環境變量。
  • 技術分享圖片

  • ls2在tmp下面,是可以加入到/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    裏面的, 輸入PATH=$PATH:/tmp/ 再查看,你會發現路徑下,多了一個tmp 再用 which ls2 就發現有了 這個就是環境變量。
    技術分享圖片

  • 再打開一個終端,輸入ls2發現沒有了,文件目錄下也沒有tmp(說明只是暫時生效,從新啟動系統後又消失。) 想要每次都生效,需要把環境變量改為永久的。
  • 技術分享圖片

  • 變為永久的方法就是 輸入vi /etc/profile 編寫 在最後一行加上PATH=$PATH:/tmp/ 然後:wq 退出
  • 技術分享圖片
  • 技術分享圖片
  • 然後用cat /etc/profile 查看發現已經加入了最後一行,再打開一個終端, 輸入echo ¥PATH 查看發現已經有了 tmp ls2也生效了。
  • 技術分享圖片

  • 如果不想它生效了 就可以把它刪掉,輸入PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
  • 或者使用vi /etc/profile 再編輯一下,把PATH=$PATH:/tmp/ 給刪除掉,這裏可以使用dd 快速刪除。

cp命令

  • cp就是 copy 拷貝的意思, 就是拷貝原文件成目標文件。做個實驗, cp一個 txt文件 和cp一個目錄 (這裏和rm 一樣 加-r )用tree查看,發現都是一樣的。
  • 技術分享圖片

  • 這裏有個問題,在拷貝原文件的時候,加了斜杠,拷貝的目標沒有加斜杠。
  • 拷貝目錄的時候有點特殊,拷貝文件無所謂,文件本身沒有斜杠, linux系統裏目錄是有斜杠的。一個目錄相當於windows的文件夾,裏面是有東西的。
  • 比如ls / ls /tmp/都是帶斜杠,用tab補全的時候也會自動帶上斜杠。 不加也沒事, 但是我們要統一化的約定。因為後面的課程有一個命令 加不加斜杠是有區別的。 不管這個目錄存不存在,都最好加上斜杠。(養成一個習慣)
  • 技術分享圖片

  • 這裏又用到一個命令 !$ 這個表示上一條命令的最後一個參數,正常應該是(tree /tmp/yingxinlinux1)
  • 技術分享圖片

  • 我們使用which cp查看, 發現 有-i rm 也有-i cp其實也是一個別名, -i的意思就是一個安全參數 選項,會詢問。
  • 技術分享圖片

  • 我們也可以讓它不詢問,直接使用/usr/bin/cp /etc/passwd /tmp/1.txt

  • 技術分享圖片

-繼續做實驗, 正常拷貝文件的時候 會詢問是否覆蓋,但是拷貝目錄的時候是不會詢問的,它會在原目錄下創建一個新的目錄,就是剛才拷貝的目錄。
這說明當目標目錄已經存在的時候,它會把原目錄放在目標目錄下面去, 如果目標目錄不存在,會把原目錄拷貝過來,改個名字。
技術分享圖片


mv命令

  • mv move 把文件挪動地方,在同一個位置下,它是改名字。
  • 比如我們把文件改名字,如下操作。
  • 技術分享圖片
  • 也可以把一個文件放在另一個文件下面,然後修改名字。
  • 技術分享圖片
  • 實驗操作,把ls2放在yingxin目錄下面
  • 技術分享圖片

  • 我們再創建touch ls2 再去挪動,它會出現提示是否覆蓋, 因為在yingxin下面已經有了一個ls2 這和rm cp 一樣,都有-i選項,不想讓提示 還是使用絕對路徑,就直接覆蓋了。
  • 技術分享圖片

  • 有時候會有特殊用法。比如我們把一個目錄放到一個不存在的目錄,那麽會發現還是生效了,它其實就是改名字了。
  • 技術分享圖片
  • 如果目標目錄存在,它就會把原目錄放在目標目錄下面,和cp的一樣。
  • 技術分享圖片

文檔查看cat_more_less_head_tail

  • 之前講到一個cat 命令 是查看文件內容的。沒什麽特殊的用法
  • 有一個和他對應的是tac ,可以倒敘查看。
  • 技術分享圖片
  • 可以man 查看一下。有時候可能用一下-A 顯示有所字符,在windows和linux下編輯一個文件是不一樣的。
  • 技術分享圖片
  • 可以cat -A /etc/passwd,會發現後面有$符號,這個表示文件的這一行的行尾結束符。
  • 還有-n 也可能用到, 會顯示出行號。
  • 技術分享圖片
  • 技術分享圖片

  • 還有一個more 就i是多的意思,它也是查看文件內容的,不會像cat全部顯示, 然後使用空格鍵就可以往下看沒顯示到的文件。
  • 技術分享圖片
  • wc命令 可以查看一個文件的行數。
  • 實驗一下,手動給文件的內容增加一些東西。 cat /etc/passwd >> anaconda-ks.cfg.1 anaconda-ks.cfg.1 這個文件是系統自帶的 是可以改的,這個文件是自動裝系統的,平時用不到,不用管他。
  • 它的作用是,把cat /etc/passwd 追加到anaconda-ks.cfg.1,每運行一次都會追加。
  • 技術分享圖片
  • 追加後,再去看效果就明顯了。空格鍵,一屏一屏往下走。按Ctrl+B往上看。還有個對應的 Ctrl+F 往下看。
  • 技術分享圖片
  • 技術分享圖片

  • 除了more 還有個類似的命令,是less 也可以空格鍵往下看,但是它也支持用方向鍵往上查看。但是並不像more一樣直接退出來,需要按一個q鍵。
  • 技術分享圖片

  • less還有個功能,可以搜索,先按一個/ 然後輸入想搜索的東西,它會高亮顯示。(演示的是cdrom)
  • 技術分享圖片
  • 想看還有沒有其他地方有 可以按n鍵 提示沒有存在了。
  • 技術分享圖片
  • 做個實驗,搜索root 按n 往後看,有很多, 也可以往前n(第一張圖是n,第二張是shift n)
  • 技術分享圖片
  • 技術分享圖片

  • /是從前往後搜, 也可以從後往前搜。就是? 問號的操作和/的操作恰恰相反,n是往前看,shift n是往後。

  • 現在想看後面的文件要按空格 這樣太慢,可以用shift+G 往後看定位到行尾, g的話就可以定位到行首。
  • less可以使用more所有的功能,就用less就可以了。有時候文件很多,用less方便。

  • 我們還常用 head 和tail (head 頭的意思,tail尾的意思),可以查看頭十行和尾十行。
  • 技術分享圖片
  • head 和tail 是可以指定數字的(不是非得十行)
  • 技術分享圖片

  • tail 經常用來查看一個動態的文件,比如一個文件經常寫內容,可以用 tail -f 來查看,但是會發現並沒有退出命令。
  • 技術分享圖片

  • 我們從新復制個,然後輸入命令 再回來,發現文件有所增加。(紅色框之後的) 這個就是動態顯示,看日誌的時候會用到。
  • 技術分享圖片
  • 技術分享圖片

學習筆記第七節課