命令提示符linux
man——命令手冊git
(須要查看具體參數的使用時,輸入/-r便可查看-r的做用,查找下一處:n,退出:q)正則表達式
顯示:文件/目錄+權限+文件大小+建立人+全部人+實際佔的大小+建立時間+名字(google確認)shell
——豎着排列,經過列舉的文件信息能夠知道哪些是文件哪些是目錄數據庫
最右邊是目錄或文件的名字,最左邊以d開頭的都是目錄,以-開頭的都是文件,後邊的是權限。ubuntu
—cd - 回到原來的那個路徑vim
—cd ./** 當前路徑(也可使用cd **,結果同樣)windows
—cd ../.. 回到上兩層路徑bash
Tab命令——一次敲擊自動補齊,兩次敲擊查看備選項app
顯示當前路徑
建立一個目錄
區分:touch指令做用是建立文本,不是建立文件夾。
刪除目錄
注意:刪除目錄的指令爲rmdir,刪除文件的指令爲rm。
注意:
刪除的時候要在當前目錄的上一層刪除,而且只能刪除爲空的文件,不然報錯。
實際當中,咱們用的刪除指令爲:
rm -r(r/R是指recursive,遞歸迭代的意思,即遞歸刪除,這樣就能刪除文件內的全部內容了):
這樣作一般會讓你屢次確認是否刪除文件,比較麻煩,能夠採用下面的作法:
(rm -tf,force強制刪除):
這也是最經常使用的方法,除了可刪除目錄外還能夠刪除文件。
注:touch建立文件 mkdir建立目錄
(在ls列舉出文件詳細信息時,-開頭的表示文件,d開頭表示目錄)
-r表示遞歸的意思,應用很普遍
注意:
文件和目錄的複製操做是不同的:能夠直接進行文件的cp操做,可是若是執行目錄cp則會報錯「略過目錄d1」,可使用遞歸的方法對目錄下的文件進行復制,既能夠經過cp -r執行目錄的複製。
注:上述操做的意思是將當前目錄下的dd1移動到目的絕對路徑或相對路徑之中。
在執行move指令時必須進入須要操做的目錄才能夠,不然會報錯。
(原來的狀態)
注意:若是這裏不進入d2目錄中就會沒法完成move操做,只有進入具體的目錄以後才能夠。
vi操做
(即文本編輯器,比windows下的notepad好用,vim與其用法相似。很重要)
注:若是文件有直接進入編輯,若是沒有則會建立。
命令模式(進入後默認的模式),編輯模式(能夠敲擊a-append,添加;i-insert,插入等)
2.Vi退出
esc—:qw(w-存盤,q-退出,q!-不存盤退出)
more test.txt
——dd 刪除一行
——dw 刪除一個單詞
——o 在下面插入一行
——O 在上面插入一行
注:正序與逆序
指令more是指查看某一文件的所有內容
注:取前面3行(恰好把數據截取掉)
Tell取倒數第幾行。
若是對於log等較大的文件進行操做,想讀取最後的一些數據時,可使用head或tell操做,而不該該用more指令全盤列舉。
注:清屏 ——clear
能夠按照文件的名稱、日期、大小等查找。
dos環境下:cmd——echo %path% 或 echo %classpath%
Linux:echo $PATH(要大寫)
注:Windows中的分隔符與Linux不一樣,這裏是:(冒號),而不是;(分號)。
注:這裏是硬連接(默認)。
連接與複製是不一樣的,源文件修改後連接內容會隨着改變,而複製的則不會。
驗證方法:vi打開已經建立連接的文件——修改源文件——查看複製的文件和連接的文件內容是否改變。
軟鏈接至關於windows中的快捷方式,硬連接至關於複製之後再創建連接。
能夠經過刪除源文件驗證軟連接與硬連接二者區別:
注:紅顏色表示連接消失,前面的小寫字母l表示連接
注:軟鏈接在刪除源文件後出錯,硬連接因爲複製了一份源文件,因此不會報錯。
注:home目錄:不一樣用戶在這裏都有一個主目錄(每添加一個用戶就會多一個主目錄)
注:輸入密碼的時候不出現*,這與windows中不同,退格鍵也是一個字符,所以敲錯了必須從新敲。
注:這裏存儲的不是密碼,而是全部的用戶,文件的最後一行是咱們新添加的用戶。
注:test——新添加的用戶名,1001——用戶組,1000——用戶id號,/home/test——用戶的主目錄,/bin/bash——用戶所用到的shell是bash
用戶組的信息:more group
注:當添加的用戶不知道屬於哪一個用戶組的時候,默認的用戶組是與用戶名相同的。
打包壓縮
解壓縮——unzip **
壓縮——zip ** 文件名 目錄
在自由軟件基金會網站下載wget源碼會碰見**.tra.gz/**.tar.gz2,具體操做:
解壓(.gz)——tar zxvf 包名
壓縮——tar zcvf 包名 目錄
(x-解壓縮,c-壓縮comprise)
重定向——拐彎
輸出保存到文件中——data >output.txt -- cat output.txt(這時輸出沒有打印到屏幕,而是輸出到文件中)
若是:
data shit>output.txt
(這時會報錯,由於shit文件不存在)
系統中有三個文件是一直打開的,系統爲其分配了3個文件描述符。
0——stdin 1——stdout 2——stderr
注:默認狀況下,輸出信息不會寫到磁盤,而是在屏幕顯示。
輸出重定向
好比在file1:hello,file2:world。須要輸出hello world:
cat file1 >file
cat file2 >file
Cat file
這時並不會輸出hello world,而是world,由於重定向符在定向以前會清空原來內容。
Ca file1>>file
這時會自動追加內容
Cat file1 file2
Cat file1 file2 >file
這樣也能夠。
重定向標準錯誤輸出
一樣,對於一個不存在的文件執行這樣的操做,也會報錯。
Ls shit 2 >out.txt
Cat out.txt
注:列舉shit文件不存在,會報錯,這時經過文件描述符2控制輸出。
標準輸入重定向
** < out.txt
從剛纔的文件輸入,用的很少,由於實際中咱們有管道:能夠將前面輸出做爲後面的輸入。
管道線
Cat file.txt | uniq
注:在file中有重複的,這樣就能夠不顯示重複內容。
Cat file.txt | uniq | grep txt
注:只顯示txt文件
Cat file.txt | uniq | grep txt | sort
注:排序
用戶和文件權限
用戶在本身主目錄有寫權限,其他地方沒有該權限。
能夠用sudo 指令,化做超級用戶操做。
apt-get 必須使用sudo
權限:讀、寫、可執行
根據權限劃分:owner,group,world
注:1表示硬連接的數目。第一個peter—owner,第二個peter——group,0——文件大小,後面是最後修改時間。
對於目錄:
讀權限——可以查看目錄,不然不能查看。
寫權限——對裏面的文件有建立刪除重命名
執行權限——能夠進入該目錄(其實默認的時候就能夠進入目錄)。
對於文件:
讀權限——對於文件相似。
寫權限——重命名、建立和刪除操做與這個無關(有寫權限,不必定可以進行重命名或刪除操做,由於目錄的權限可能不具有寫權限)
執行權限——對於普通文件添加可執行權限沒有什麼實際意義。咱們利用vi新建一個腳本:
Vi a.sh(稍後敲小寫i進入插入模式)
Echo hello!
存盤退出
試圖執行: ./a.sh
權限被拒絕,須要增長權限。
Ls -l a.sh
查看權限
利用chmod +x a.sh能夠成功執行。
總結:對於一個文件有執行權限能夠運行。
利用八進制數的形式修改
如何在終端複製粘貼?
雙擊對象——ctrl+shift+C複製——ctrl+shift+V粘貼
打開程序
Firefox+Alt+Tab在各個進程之間切換——firefox此時佔據了shell,咱們是沒法執行其餘操做的——比較好的方法是在shell中鍵入firefox &而不是firefox,這樣程序後臺運行——如今可使用Ctrl+Z使firefox暫停——程序沒有響應——bg(即後臺,firefox &效果同樣)——fg回到前臺——ctrl+c結束
程序不正常運行時,可使用kill -9 PID,正常運行時可使用kill -15 PID
還有一種狀況,程序佔用資源過多,桌面系統被拖死,咱們沒法輸入任何內容—ctrl+ALt+F1殺死進程,這樣能夠進入第一個控制檯(linux中能夠同時啓動7個控制檯)。
查找
locate——系統全局範圍(ubuntu中支持正則表達式)
注:新建一個文件並不能直接經過該指令搜到,locate運行原理是在數據庫中查找而不是遍歷整個文件系統,updatedb會把文件系統更新到數據庫中,可是updatedb天天才更新一次。咱們手動運行如下便可(須要超級用戶權限)——sudo updatedb 文件
find——在一個目錄中,若是輸入.,則會查看當前目錄下的全部文件,若是輸入. |grep .txt則會輸出txt文件。若是隻看文件:find . -type f,只看目錄:find . -type d。
還能夠添加可執行的操做:
find . -type f -exec ls -l ‘{}’ ‘;’
在列舉出的文本中添加內容
echo hello >a.txt
echo Hello >b.txt
字符串查找:
find . -type f -exec grep hello ‘{}’ ‘;’
輸出:hello
打印匹配項所在的文件:
find . -type f -exec grep hello ‘{}’ ‘;’ -print
打印具體的行號:
find . -type f -exec grep -n hello ‘{}’ ‘;’ -print
忽略大小寫:
find . -type f -exec grep -ni hello ‘{}’ ‘;’ -print
happygrep(能夠在git上下載)
安裝依賴的庫——make獲得二進制代碼——ls顯示happrgrep——爲了使其成爲系統能夠找到的命令,能夠將其轉移到主目錄的bin目錄中——mv happygrep ~/bin——這樣在命令行任意位置敲happygrep均可以實現對應功能(好比補齊)——若是以爲名字太長,能夠實現連接——ln -s happygrep XXX——這樣敲擊XXX就啓動了這個程序