大家好,因為項目需求,我需要使用Ubuntu,但是自己基本沒有Linux使用經(jīng)驗,命令語句更是沒記得幾句,所以,今天先補補,先掌握點基礎(chǔ)操作命令語句,如果有類似需求的同學(xué),希望以下內(nèi)容對您也有所幫助哈。開始!
Unix簡介
Unix操作系統(tǒng)有很多版本,最著名的包括:Sun Solaris, GNU/Linux, and MacOS X。Unix操作系統(tǒng)由三部分組成:
1)the kernel(內(nèi)核):內(nèi)核是操作系統(tǒng)的核心,他負(fù)責(zé):為程序分配時間和內(nèi)存,處理文檔存儲以及系統(tǒng)響應(yīng)等。
2) the shell(外殼) :外殼是用戶和內(nèi)核之間的橋梁(接口),是一個命令行解釋器(a command line interpreter (CLI))。
3)the programs(程序):Unix里面全部內(nèi)容非文件即進(jìn)程(Everything in UNIX is either a file or a process.)
一、關(guān)于文件、目錄處理的部分指令介紹
1、ls(list)->列出當(dāng)前工作目錄下的文件,但不包括以‘.’開頭的文件。以‘.’開頭的文件通常為隱藏文件,如果需要列出所有文件(包括要從隱藏文件),則需要使用指令:ls -a
2、mkdir(make directory)->在當(dāng)前目錄下建立一個子目錄,如mkdir xxx
3、cd(change directory)->從當(dāng)前工作目錄到新的指定的工作目錄,如cd xxx
4、. 和 ..對比->‘.’表示當(dāng)前目錄,比如:cd . 表示繼續(xù)待在當(dāng)前目錄下;cd ..表示返回上級父目錄
5、pwd(print working directory)->顯示當(dāng)前工作目錄的絕對路徑
6、cp(copy)->復(fù)制文件。如:cp file1 file2 表示復(fù)制當(dāng)前工作目錄下的文件file1,且命名為file2
7、mv(move)->移動文件(如果在同一工作目錄下則為重命名): mv file1 file2(move file1 to file2)
8、rm(remove file),rmdir(remove directory)->刪除file或者工作目錄(在刪除工作目錄的時候,需要確保這個工作目錄下內(nèi)容是空的) rm temp.txt
9、clear(clear screen)->清除當(dāng)前終端窗口已經(jīng)有的命令語句,是的終端簡潔;處女座福音哈
10、cat(concatenate)->在屏幕上展示文件內(nèi)容 cat demo.txt
11、less->less demo.txt逐步展示文件(尤其是當(dāng)文件的內(nèi)容很多是)的內(nèi)容,首先展示第一頁,然后點擊空白鍵(space-bar)會繼續(xù)展示下一頁,以此類推,當(dāng)出入q時,退出;而上面提到的cat命令會一次性展示文件的內(nèi)容
12、head->head demo.txt 展示文件前10行內(nèi)容(write the first ten lines of a file to the screen)
13、tail->tail demo.txt 展示文件后10行內(nèi)容(write the last ten lines of a file to the screen)
14、grep->搜索詞或者正則匹配(search files for specified words or pattern) 比如:
grep demo demo.txt(終端會把文件顯示出來,且將里面的demo詞標(biāo)紅)
備注:grep對檢索詞的大小寫敏感,如果要忽略大小寫,可以加一個-i,比如grep -i demo demo.txt,檢索詞組時,用單引號包裹詞組。grep -i 'top three' demo.txt
grep -v x demo.txt ? ? --->顯示不匹配的行的內(nèi)容
grep -n x demo.txt? ? --->顯示匹配的行的行號
grep -c x demo.txt? ? --->顯示匹配的行數(shù)
grep -ivc x demo.txt? ? --->顯示不匹配的行的行數(shù)
15、wc(word count)->計算字符數(shù)
wc -w demo.txt ? --->計算字?jǐn)?shù) ? ? ? ? ? ? ? ? ? ? ? ?wc -l demo.txt ? ?--->計算行數(shù)
16、cat->在鍵盤輸入cat后,在終端輸入語句,點擊return后會在終端打出剛輸入的語句。然后輸入ctrl+d可以退出
cat demo1.txt demo2.txt > demo.txt ? -->復(fù)制demo1和demo2的內(nèi)容,全部寫入demo.txt(如果該文件不存在,系統(tǒng)會自動新建)
17、通配符(* wildcard)->
?ouse will match files like house and mouse, but not grouse
ls list* ->列出所有以list開頭的詞語;ls *list-> 列出所有以list結(jié)尾的詞語
18、man->man x 查詢命令x的功能
19、gzip->壓縮文件 gzip demo.txt
20、gunzip->解壓縮文件 gunzip demo.txt.gz
21、zcat->他可以讀取壓縮文件的內(nèi)容(不需要解壓縮)比如:zcat demo.txt.gz
22、file->可以查看文件的各種信息,比如編碼、大小、文件類型等
23、diff->比較文件差異 diff file1 file2
24、find->通過給定名字、時間、大小或者其他屬性來查找文件(This searches through the directories for files and directories with a given name, date, size, or any other attribute you care to specify.)
find . -name "*.txt" -print ? ? --->在當(dāng)前路徑下(.)查找文件格式為txt的文件,并且打印出來
find . -size +1M -ls? -->在當(dāng)前路徑下(.)查找文件大小超過1M的文件,并且打印結(jié)果
25、history->顯示先前輸入的命令 history(show command history list)
26、chmod->修改文件權(quán)限:chmod [who] [+ | - | =] [mode] 文件?
說明:+表示增加某個權(quán)限;-表示取消某個權(quán)限;= 表示給定權(quán)限并取消其他所有權(quán)限(如果有的話)。設(shè)置mode所表示的權(quán)限可用下述字母的任意組合:r 可讀;w 可寫;x 可執(zhí)行(只有目標(biāo)文件對某些用戶是可執(zhí)行的或該目標(biāo)文件是目錄時才追加x 屬性);s 在文件執(zhí)行時把進(jìn)程的屬主或組ID置為該文件的文件屬主;方式“u+s”設(shè)置文件的用戶ID位,“g+s”設(shè)置組ID位;t 保存程序的文本到交換設(shè)備上;u 與文件屬主擁有一樣的權(quán)限;g 與和文件屬主同組的用戶擁有一樣的權(quán)限;o 與其他用戶擁有一樣的權(quán)限。文件名:以空格分開的要改變權(quán)限的文件列表,支持通配符。例如:
chmod +x talker.py? ? 執(zhí)行talker.py
二、關(guān)于進(jìn)程處理的指令
1、ps(process)->顯示進(jìn)程
ps -a --->列出包括其他user的進(jìn)程狀況
ps -u --->顯示面向用戶的進(jìn)程狀況(比-a更加詳細(xì))
ps -x --->顯示包括沒有終端控制的進(jìn)程狀況
ps -w --->使用較寬的顯示模式來顯示進(jìn)程狀況
2、kill->kill 指令的用途是送一個signal給某一個進(jìn)程。因為大部份送的都是用來殺掉進(jìn)程的SIGKILL 或 SIGHUP,因此稱為 kill。kill 的用法為:
kill [-SIGNAL] pid…
kill -l(此處是list的l,不是1)
SIGNAL 為一個 singal 的數(shù)字,從 0 到 31,其中 9 是 SIGKILL,也就是一般用來殺掉一些無法正常 terminate 的訊號。其余訊號的用途可參考 sigvec(2)中對 signal 的說明。你也可以用 kill -l 來察看可代替 signal 號碼的數(shù)目字。

三、網(wǎng)絡(luò)指令
1、rlogin(remotelogin)->rlogin host[-l username] 選項-l username 是當(dāng)你在遠(yuǎn)方的機(jī)器上的 username 和 localhost 不同的時後,必須輸入的選項,否則 rlogin 將會假設(shè)你在那邊的 username 與 localhost 相同,然後在第一次 login 時必然會發(fā)生錯誤
2、rsh->rsh host [-l username][command]在遠(yuǎn)方的機(jī)器上執(zhí)行某些指令,而把結(jié)果傳回localhost
3、telnet->telnet [hostname| ip -address][port] 是一個提供 user 經(jīng)由網(wǎng)路連到 remotehost。
4、ftp(file transfer program)->ftp [hostname| ip-address]? 網(wǎng)絡(luò)文件傳輸格式。利用 ftp,可以在不同的機(jī)器上將所需要的資料做轉(zhuǎn)移,某些特別的機(jī)器可以存放大量的資料以供各地人抓取
ftp 常用命令:
ascii 將傳輸模式設(shè)為 ascii 模式。通常用於傳送文字檔。
binary 將傳輸模式設(shè)為 binary 模式,通常用於傳送執(zhí)行檔,壓縮檔與影像檔等。
cd remote-directory 將 remotehost 上的工作目錄改變。
lcd [directory]更改 localhost 的工作目錄。
ls [remote-directory][local-file]列出 remotehost 上的文件。
get remote-file[local-file]取得遠(yuǎn)方的文件。
mget remote-files 可使用通用字元一次取得多個文件。
put local-file[remote-file]將 localhost 的文件送到 remotehost。
mput local-files 可使用通用字元一次將多個文件放到 remotehost 上。
help[command]線上輔助指令。
mkdir directory-name 在 remotehost 造一個目錄。
prompt 更改交談模式,若為 on 則在 mput 與 mget 時每作一個文件之傳輸時均會詢問。
quit/bye 離開 ftp。
5、wget是linux最常用的下載命令, 一般的使用方法是: wget + 空格 + 要下載文件的url路徑
例如(下載到某一文件夾): # wget?linuxsense.org/xxxx/xxx.tar.gz">http://www.linuxsense.org/xxxx/xxx.tar.gz
已經(jīng)在目標(biāo)文件夾,下載網(wǎng)絡(luò)資源:$ wget https://raw.github.com/ros/ros_tutorials/kinetic-devel/rospy_tutorials/001_talker_listener/talker.py
簡單說一下-c參數(shù), 這個也非常常見, 可以斷點續(xù)傳, 如果不小心終止了, 可以繼續(xù)使用命令接著下載
例如: # wget -c?http://www.linuxsense.org/xxxx/xxx.tar.gz
可能基礎(chǔ)的、常用的命令就是這些,以后項目中遇到再不斷豐富內(nèi)容。希望對大家也有所幫助哈~~