shell常用命令

2021-08-21 14:25:34 字數 4435 閱讀 3401

一、shell常用命令

下面命令應用中,雙引號可以不加;

<1>alias  給乙個已經存放的檔案取乙個別名  (臨時有效)

alias  別名="源命令的名稱"

alias  dir_list='ls -l'  (空格不能要)

unalias  取消乙個別名

unalias  dir_list;

在home/ubuntu/.bashrc中修改,重啟乙個終端,別名永遠有效;

<2>環境變數:作業系統給我們提供的全域性變數。(在任何乙個終端,任何乙個目錄都是全域性可見)

(1)path環境變數:若是我們需要執行預設命令的時候,系統缺省會到path環境變數中路徑找我們的書寫命令。path環境變數

存放的是一些路徑。

shell中系統提供的變數特點:

a.常常大寫。

b.沒有資料型別,可以直接使用。

(2)檢視path環境變數的內容:

echo $path

(3)把自己當前的路徑到系統提供的環境變數中的方法:

$path  引用原來系統已經存在的環境變數的值

export path=$path:路徑1:路徑2:路徑3

a.例如:

export path=$path:/home/ubuntu/work

只在當前終端有效,同時加在/etc/profile或/home/ubuntu/.bashrc中,才能在其他終端中有效;

原理:當我們執行乙個命令的時候,系統缺省會在path環境變數中找我們的輸入的命令的原始檔。

/home/ubuntu/.bashrc  shell的乙個配置,當我們每次開啟乙個終端的時候時候,都會執行一遍,是用來初始化shell執行的環境。

<3>linux常見的命令

(1)pwd 

(2)cd 

(3)ls

(4)cp  複製檔案/資料夾到另乙個路徑下

例如: cp hello.c  /home/ubuntu   把hello.c 複製到/home/ubuntu目錄下

cp dir_list /home/ubuntu -a  把dir_list資料夾複製到/home/ubuntu目錄下

(5)mv  移動檔案/資料夾到另乙個路徑下

例如:mv hello.c  /home/ubuntu   把hello.c 複製到/home/ubuntu目錄下

mv dir_list /home/ubuntu  把dir_list資料夾複製到/home/ubuntu目錄下

mv hello.c world.c  把當前目錄下的hello.c重新命名為world.c 

(6)cat 顯示檔案的內容

例如:cat hello.c 顯示hello.c檔案的內容

cat -n hello.c  帶行號顯示hello.c檔案的內容

(7)rm  刪除檔案

引數:-r  刪除資料夾

-f  強制執行

常用:rm hello.c 刪除hello.c這個檔案

rm -rf dir_list 刪除dir_list這個資料夾

<4>linx高階命令

(1)grep  從檔案中搜尋字串

格式:grep  "搜尋的字串"  檔名

例如: 在/etc/passwd中查詢「xt」

grep "xt" /etc/passwd

常用引數:

a.搜尋file檔案中,以"string"開頭的行

例如:    grep "^string" file 

b.搜尋file檔案中,以"string"結尾的行

例如: grep "string$" file 

c.搜尋file檔案中,只包含「string」的行

例如:grep "^string$" file     

d.在搜尋檔案的時候,同時顯示行號

例如:grep "xt" -n /etc/passwd

習慣的用法:

e.在當前目錄下所有的檔案中搜尋"main"(包括子目錄)

grep "main" * -nr

(2)find :在指定路徑下搜尋檔案

常用:find 路徑 -name  檔名

例如:find /home/chw -name test.c  

(3)管道鏈結符"|" ->將乙個命令的輸出當作另乙個命令的輸入

(理解:後乙個命令的操作,在前乙個名來的基礎上進行的。)

例如:cat /etc/passwd | grep "chw" 

ls  /usr/include | grep "stdio.h"

ls  /home/ubuntu | grep "test.c"

(4)wc :統計 行數 單詞的個數 位元組數

引數:-l   顯示乙個檔案的行數

-w   顯示乙個檔案的單詞個數

-c   顯示乙個檔案的位元組數

(5)head 顯示檔案頭n行的內容

head  -行數 檔名 

例如:head -10  /etc/passwd 

(6)tail  顯示檔案最後n行的內容

tail -行數  檔名

例如:tail -1 /etc/passwd 顯示最後一行的內容

tail -2 /etc/passwd 顯示倒數兩行的內容

思考:如何顯示第10行的內容?(只顯示第10行的內容)

head -10 /etc/passwd | tail -1

(7)cut : 字串裁剪命令

注:改命令一般與管道一起使用。

格式:cut -d "分割字元" -f 字段

引數:-d    指定我們的分割字元

-f    指定我們顯示的區域

例如:cat /etc/passwd | grep "ubuntu" | cut -d ":" -f 1,2,3 

得到結果:ubuntu:x:1001

(8)echo  先螢幕上輸出資訊

等價於puts("hello wold");

echo "hello world"  想螢幕上輸出「hello world」

(9)su  切換使用者

格式: sudo  su  使用者名稱   切換到其他使用者

<5>shell中的萬用字元講解

(1)含義:shell通用的匹配符號,我們叫做萬用字元。

(2)常用符號:

*        匹配任意長度的字串  例如:ls file_*.c

?       匹配乙個字元              例如: ls  file_?.c 

[..]    匹配輸入其中指定的乙個字元,全部列出來選擇乙個使用 例如: file_[abc].c

[起始-終止]  匹配乙個字元範圍   例如: file_[a-z].c file[1-9].c

[^..]   匹配除了指定字元意外的單個字元  例如: file[^abc].c

<6>輸入/輸出重定向

預設輸入:鍵盤

預設輸出:顯示器

含義:改變預設的輸入和輸出方式,把本來應該輸入到螢幕的上的內容,該輸出到其他的位置。(檔案) 

(1)輸出重定向(>)

含義:改變預設輸出方式。把本來應該輸出到螢幕的上的正確的內容,該輸出到其他的位置。

格式: 輸出到螢幕上的資訊 >  新的檔名

例如:echo "hello world" > log [重定向之前,會先把檔案的內容給清除掉]

echo "welcome to handsom" >> log [以追加的方式在下一行中寫入資料]

ls > log 

pwd  > log 

grep "ubuntu" /etc/passwd  > log

(2)輸入重定向(<)

含義:改變預設輸入方式。把本來應該從鍵盤獲取的資訊,該輸出到其他的位置。(檔案) 

wall  給當前所有的使用者傳送廣播訊息    ,當輸入完成後,按下回車表示輸入結束按下ctrl + d,給所有的使用者傳送訊息

wall < log  把檔案中的內容傳送給其他使用者      

練習:1. 通過echo 命令把「good good study,day day up」寫到 log.txt檔案中

2. 開啟乙個新的終端,利用su命令切換乙個新的使用者

3. 通過wall命令把log.txt檔案的內容傳送給其他使用者

(3)出錯重定向(2>)

含義:改變預設輸出方式。把本來應該輸出到螢幕的上的錯誤的內容,該輸出到其他的位置。

格式: 輸出到螢幕上的錯誤資訊2>  新的檔名

例如:ls  dasfadsf****dsf.txt  > log  (該檔案不存在,系統會提示錯誤,把錯誤的訊息輸出到檔案中)

<7>命令置換

含義: 將乙個命令的輸出當作另外乙個命令的引數。

格式:command1 `command2`

注:這裡的符號不是單引號,而是反撇號,esc下面那個鍵。

例如:find `pwd` -name "hello.c"

ls `pwd`

shell 常用命令

shell 程式設計中使用到得if語句內判斷引數 b 當file存在並且是塊檔案時返回真 c 當file存在並且是字元檔案時返回真 d 當pathname存在並且是乙個目錄時返回真 e 當pathname指定的檔案或目錄存在時返回真 f 當file存在並且是正規檔案時返回真 g 當由pathname...

shell常用命令

1.echo echo 用於輸出,相當於c語言中的printf 用echo輸出變數的值,需要在變數前面加 輸出a的值 a 1echo a shell中變數不需要定義,直接賦值 要用到變數時,需要加 2.管道 命令之間的輸入。將乙個命令的輸出作為另乙個命令的輸入。管道相當於一種過濾功能。3.grep ...

Shell常用命令

shell常用命令總結 1 ls命令 列出檔案 ls la 列出當前目錄下的所有檔案和資料夾 ls a 列出當前目錄下所有以 a字母開頭的檔案 ls l txt 列出當前目錄下所有字尾名為 txt的檔案 2 cp命令 複製 cp a.txt b.txt 把檔案 a的內容複製到b檔案 cp a.txt...