Linux經常使用指令

 

命令提示符linux

 

man——命令手冊git

(須要查看具體參數的使用時,輸入/-r便可查看-r的做用,查找下一處:n,退出:q)正則表達式

指令—ls(list)

一、 ls -l (豎着排列)

顯示:文件/目錄+權限+文件大小+建立人+全部人+實際佔的大小+建立時間+名字(google確認)shell

——豎着排列,經過列舉的文件信息能夠知道哪些是文件哪些是目錄數據庫

最右邊是目錄或文件的名字,最左邊以d開頭的都是目錄,以-開頭的都是文件,後邊的是權限。ubuntu

二、ls -a(列舉隱藏文件)

 

指令—cd

cd /dev——絕對路徑  de / + cd dev ——相對路徑

 

cd - 回到原來的那個路徑vim

cd ./** 當前路徑(也可使用cd **,結果同樣)windows

—cd ../.. 回到上兩層路徑bash

Tab命令——一次敲擊自動補齊,兩次敲擊查看備選項app

 

指令—pwd

顯示當前路徑

指令—mkdir

建立一個目錄

區分:touch指令做用是建立文本,不是建立文件夾。

指令—rmdir

刪除目錄

注意:刪除目錄的指令爲rmdir,刪除文件的指令爲rm。

注意:

刪除的時候要在當前目錄的上一層刪除,而且只能刪除爲空的文件,不然報錯。

實際當中,咱們用的刪除指令爲:

rm -r(r/R是指recursive,遞歸迭代的意思,即遞歸刪除,這樣就能刪除文件內的全部內容了):

這樣作一般會讓你屢次確認是否刪除文件,比較麻煩,能夠採用下面的作法:

(rm -tf,force強制刪除):

這也是最經常使用的方法,除了可刪除目錄外還能夠刪除文件。

注:touch建立文件  mkdir建立目錄

(在ls列舉出文件詳細信息時,-開頭的表示文件,d開頭表示目錄)

-r表示遞歸的意思,應用很普遍

複製操做

注意:

文件和目錄的複製操做是不同的:能夠直接進行文件的cp操做,可是若是執行目錄cp則會報錯「略過目錄d1」,可使用遞歸的方法對目錄下的文件進行復制,既能夠經過cp -r執行目錄的複製。

move操做

注:上述操做的意思是將當前目錄下的dd1移動到目的絕對路徑或相對路徑之中。

在執行move指令時必須進入須要操做的目錄才能夠,不然會報錯。

(原來的狀態)

注意:若是這裏不進入d2目錄中就會沒法完成move操做,只有進入具體的目錄以後才能夠。

vi操做

(即文本編輯器,比windows下的notepad好用,vim與其用法相似。很重要)

注:若是文件有直接進入編輯,若是沒有則會建立。

1. Vi兩種模式

命令模式(進入後默認的模式),編輯模式(能夠敲擊a-append,添加;i-insert,插入等)

2.Vi退出

esc—:qw(w-存盤,q-退出,q!-不存盤退出)

3.查看文件內容

more test.txt

4.刪除

——dd 刪除一行

——dw 刪除一個單詞

5.插入

——o  在下面插入一行

——O  在上面插入一行

cat與tac指令

注:正序與逆序

指令more是指查看某一文件的所有內容

head指令(能夠帶參數)

注:取前面3行(恰好把數據截取掉)

tell操做(能夠附加參數)

Tell取倒數第幾行。

若是對於log等較大的文件進行操做,想讀取最後的一些數據時,可使用head或tell操做,而不該該用more指令全盤列舉。

注:清屏 ——clear

find操做(功能極其強大)

能夠按照文件的名稱、日期、大小等查找。

whereis操做

其後通常跟指令,好比 whereis ls(列舉出命令的位置以及幫助文檔)

環境變量

dos環境下:cmd——echo %path% 或 echo %classpath%

Linux:echo $PATH(要大寫)

注:Windows中的分隔符與Linux不一樣,這裏是:(冒號),而不是;(分號)。

ln連接指令

注:這裏是硬連接(默認)。

連接與複製是不一樣的,源文件修改後連接內容會隨着改變,而複製的則不會。

驗證方法:vi打開已經建立連接的文件——修改源文件——查看複製的文件和連接的文件內容是否改變。

軟鏈接

軟鏈接至關於windows中的快捷方式,硬連接至關於複製之後再創建連接。

能夠經過刪除源文件驗證軟連接與硬連接二者區別:

注:紅顏色表示連接消失,前面的小寫字母l表示連接

注:軟鏈接在刪除源文件後出錯,硬連接因爲複製了一份源文件,因此不會報錯。

添加用戶

1. 指令:adduser或useradd

注:home目錄:不一樣用戶在這裏都有一個主目錄(每添加一個用戶就會多一個主目錄)

2. 密碼:passwd 用戶名(test)

注:輸入密碼的時候不出現*,這與windows中不同,退格鍵也是一個字符,所以敲錯了必須從新敲。

 

3. /etc目錄

注:這裏存儲的不是密碼,而是全部的用戶,文件的最後一行是咱們新添加的用戶。

注: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就啓動了這個程序