Linux 基础操作、常用shell命令、vi常用命令、man帮助手册
?
Linux 基礎操作、常用shell命令、vi常用命令、man幫助手冊
一、簡述
? ? ? ? 記錄簡單的Linux 基礎操作、常用shell命令、vi編輯器常用命令、man幫助手冊的使用。
二、Linux 基礎操作
????1、按 Ctrl+Alt+t 快捷鍵或者雙擊桌面的“Terminal”調(diào)出偽終端(命令行窗口)。
? ? ? ? ? ?超級終端:
? ? ? ? ? ?Ctrl+Alt+F6: ? ? ? ? ?tty6
? ? ? ? Ctrl+Alt+F5? ? ? tty5
? ? ? ? Ctrl+Alt+F4? ? ? 主機與虛擬機的共享路徑
? ? ? ??
? ? ? ??Ctrl+Alt+F3 ? ? ?tty3
? ? ? ? Ctrl+Alt+F1 ? ? 返回正常使用的界面
? ? 2、Liang@ubuntu:~$ ls ? ? ? ??
????????????Liang:用戶名;
????????????ubuntu:主機名;
????????? ? ~:家目錄(當前登錄用戶的主目錄),/home/Liang
????????? ? $:命令提示符(一個標志)
????????? ? ls:以列表方式羅列出當前目錄的文件
? ? 3、使虛擬機獲取鼠標:Ctrl+G;使宿主計算機獲取鼠標:Ctrl+Alt
? ? 4、列出當前目錄的所有文件信息 ls -la 。-l 選項是以詳細的列表方式羅列;-a選項是表示所有文件(all),即包括隱藏文件。
5、在終端窗口,按Ctrl+C?強行停止當前正在執(zhí)行的命令或程序。
6、關機命令:在終端窗口,輸入命令:poweroff
三、shell命令介紹
常用文件操作:1、編輯文件 ???vi 文件名 ? ? ? (或者說是新建文件并用vi編輯)2、復制文件 ? ? cp a文件 b文件 (將a文件復制一份,b就是復制文件(副本)。(兩個文件都在當前路徑,可以分別指定路徑)3、復制文件目錄? cp a目錄 b目錄 -r 將a目錄(包含里面的全部文件)內(nèi)容 復制到b目錄下,(-r 遞歸復制)4、新建文件 ? ? touch 文件名 (文件不存在就新建,存在就更新新建的最新修改時間)5、移動文件 ? ? mv a文件 b目錄 ? ?(將a文件移動到b目錄下)6、重命名文件? ?mv a文件 b文件???(將a文件命名為b文件,注:都是在當前路徑下)7、刪除文件 ? ? rm a文件 ? (刪除a文件)8、刪除文件目錄 ?rm a目錄 -r ? (刪除a目錄,包括里面的文件)| 命令 | 功能 | 示例 | 備注 |
| alias | 給命令起別名 | alias?c=’clear’ | 取?clear?的別名為?c |
| cat | 顯示文本內(nèi)容 | cat?file | 顯示?file?的內(nèi)容 |
| cd | 改變當前路徑 | cd?/etc | 轉(zhuǎn)到/etc?中去 |
| chmod | 修改文件訪問權(quán)限 | chmod 644?file | 改?file?的權(quán)限為?644 |
| chown | 修改文件所有者 | chown foo?file | 改?file?的所有者為?foo |
| clear | 清屏 | clear | 清屏 |
| ? cp | 拷貝文件 | 1: cp file1?file2 2: cp dir1.0/ dir2.0/?-r | 1: 拷貝 file1 為?file2 2: 拷貝 dir1.0/為?dir2.0/ |
| df | 查看文件系統(tǒng)信息 | df -h | 顯示文件系統(tǒng)信息 |
| ? diff | 比較兩文件的異同 | 1: diff file1 file2?-uN?2: diff dir1/ dir2/?-urN | 1: 比較 file1 和?file2 2: 比較 dir1/和?dir2/ |
| dpkg | 手工安裝軟件包 | dpkg -i?example.deb | 安裝?example.deb |
| echo | 顯示字符串 | echo?“hello!” | 顯示“hello!” |
| find | 查找文件 | find / -name?“*.c” | 找出/下的所有.c?文件 |
| grep | 查找字符串 | grep “abc” ./*?-rwHn | ./*中找字符串?“abc” |
| ifconfig | 查看或修改網(wǎng)絡 | ifconfig?eth0 | 查看?eth0?的網(wǎng)絡信息 |
| kill | 發(fā)送信號 | kill -s SIGKILL?1234 | 給進程?1234?發(fā)送信號?SIGKILL |
| ? ln | 創(chuàng)建鏈接文件 | 1: ln apple?a 2: ln apple a?-s | 1: 取 apple 別名為?a 2:?創(chuàng)建一個符號鏈接?a?指向?apple |
| ls | 列出文件信息 | ls? | 列出(當前目錄)文件信息 |
| man | 查找?guī)椭畔?/p> | man?ls | 查找關于?ls 命令的幫助 |
| mount | 掛載或卸載分區(qū) | mount /dev/x?/mnt | 將/dev/x 掛接到/mnt?下 |
| more | 分屏顯示信息 | ps -ef |?more | 分屏顯示?ps?-ef?的信息 |
| less | 與more類似 | less a.txt | 顯示a.txt文件內(nèi)容 |
| head | 顯示文件的 開頭若干行 | more a.txt | 顯示a.txt的前10行內(nèi)容 |
| tail | 顯示文件的末尾若干行 | tail a.txt | 顯示a.txt的最后10行內(nèi)容 |
| mkdir | 創(chuàng)建目錄 | mkdir?dir/ | 創(chuàng)建新目錄?dir/ |
| ? mv | 移動或重命名文件 | 1: mv file1?file2?2: mv file?dir/ | 1: 改 file1 名字為?file2 2: 將 file 移動到?dir/去 |
| pwd | 顯示當前路徑 | pwd | 顯示當前路徑 |
| ps | 查看系統(tǒng)進程信息 | ps -ef ?或者 ps?ajx | 查看系統(tǒng)進程信息 |
| ? rm | 刪除文件 | 1: rm?file 2: rm dir/?-r | 1: ?刪除?file 2: ?遞歸地刪除?dir/ |
| sort | 排序 | sort?file | 對?file?排序后打印到屏幕 |
| ? tar | 歸檔或釋放?壓縮或解壓 | 1: tar cjf a.tar.bz2 * 2: tar xjf a.tar.bz2? 3: tar czf a.tar.gz?* 4: tar xzf?a.tar.gz | 1:?將所有文件壓縮為.bz2 2: ?解壓.bz2?文件 3:?將所有文件壓縮為.gz 4: ?解壓.gz?文件 |
| uniq | 去掉相鄰重復的行 | uniq?file | 去除?file?中相鄰的重復行 |
| wc | 計數(shù)器 | wc?a | 計算?a?的行、單詞和字符 |
| which | 查找所在路徑 | which?ls | 顯示命令?ls?所在路徑 |
| touch | 修改文件的時間戳,或創(chuàng)建文件 | touch a.txt | a.txt存在就修改其時間戳,不存在就創(chuàng)建 |
補充說明:
(1)ls命令:ls 羅列當前目錄的所有文件 ? 可直接指定目錄(路徑) ls 路徑
????????ls -l ?以更加詳細的方式羅列當前目錄的所有文件 ?可直接指定目錄(路徑)?ls -l?路徑
(2)clear命令:實際上clear命令只是上拉屏幕,并沒有清屏。自己實現(xiàn)一個類似windos的清屏命令:cls
????在/usr/bin/目錄下。使用root用戶,新建一個名為cls的文件,加上執(zhí)行權(quán)限,寫入如入內(nèi)容:
#/bin/bash printf "\033c"注:普通用戶切換到root用戶,輸入命令 sudo -s,然后回車,輸入密碼(密碼不回顯)。然后直接 vi cls,編輯內(nèi)容,保存退出。添加權(quán)限命令:chmod 777 cls 。退出root狀態(tài),返回之前用戶狀態(tài),輸入命令:exit。然后就可以使用cls作為清屏命令了。
(3)tree 命令,羅列目錄的文件結(jié)構(gòu),后面可以跟一個目錄(路徑),默認是當前目錄路徑。
如果目錄文件太多,可帶參數(shù)執(zhí)行,比如說根目錄有非常多的文件,可使用命令?tree / -d -L 1 ? ? (-d ? ? List directories only。
?-L level,Max display depth of the directory tree。數(shù)字1表示只列出一級目錄),可以使用 man tree查詢詳細用法。
?? ? ? ? ? ? ?
(4)mount命令。掛載硬盤、U盤,或遠程共享目錄等。
? ? ? ? 舉例掛載U盤:
? ? ? ? ?a)查找剛識別出的U盤分區(qū):sudo fdisk -l ?(這是查看當前系統(tǒng)已識別的分區(qū),比如說識別到的U盤分區(qū)為:/dev/sdb?)
? ? ? ? ?b)將U盤分區(qū)掛載到/mnt目錄下:sudo mount /dev/sdb /mnt ? ? ?(之前的/mnt文件會被掩蓋,直到卸載U盤分區(qū))
? ? ? ? ?c)卸載U盤分區(qū):sudo umount /mnt
? ? ? ? 查看設備掛在路徑信息:df -h
(5)more命令:分屏(分頁)顯示信息,比如需要查看的一個文件內(nèi)容比較大,而又不想打開時,可使用命令more test.txt進行分頁瀏覽。按空格或者回車向下翻頁,按b向上翻,按q退出。
(6)<、>重定向:比如命令ps -ef >1.txt?,將命令ps -efd的輸出內(nèi)容輸出到1.txt文件(不存在的話會創(chuàng)建,已存在則覆蓋);
使用>>:ps -ef >>1.txt ? (將命令ps -efd的輸出內(nèi)容追加到1.txt文件)。清空1.txt文件可以使用:> 1.txt 命令。< 重定向輸入。
? (7)mkdir命令,如果需要創(chuàng)建多級目錄,添加-p選項。比如創(chuàng)建 a/b/c 這種連續(xù)空目錄,使用命令:mkdir a/b/c -p
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
(8) tar命令,壓縮文件。
a)壓縮為.tar文件tar -cxf test.tar a.txt b.txt ? ? ? ?(將a.txt和b.txt壓縮為test.tar)b)解壓.tar格式的壓縮包tar xvf test.tar ? ? ? ? ? ? ? ? (解壓test.tar文件到當前路徑)c)解壓.tar格式的壓縮包到指定路徑tar xvf test.tar -C /tmp? ? ? ? ?(解壓test.tar文件到/tmp)?命令選項:
? ?-c ? ?創(chuàng)建壓縮文件
? ?-x ? ? 釋放壓縮文件(解壓縮)
? ?-f ? ? 指定要壓縮后解壓縮的文件名
? ?-v ? ? 顯示命令執(zhí)行的過程 (比如當前壓縮到哪個文件等等信息)
? ?-z ? ? 使用gzip壓縮工具進行壓縮、解壓縮,文件后綴是.gz
? ?-j ? ? 使用bzip2壓縮工具進行壓縮、解壓縮,文件后綴是.bz2
a)壓縮成.gz格式的壓縮包tar -czvf test.tar.gz a.txt b.txt (將a.txt和b.txt壓縮為test.tar.gz)b)解壓.gz格式的壓縮包tar -xzvf test.tar.gz (將test.tar.gz壓縮包解壓到當前路徑)tar -xzvf test.tar.gz -C /tmp (將test.tar.gz壓縮包解壓到/tmp)c)壓縮成.bz2格式的壓縮包tar -cjvf test.tar.bz2 a.txt b.txt (將a.txt和b.txt壓縮為test.tar.bz2)d)解壓.bz2格式的壓縮包tar -xjvf test.tar.bz2 (將test.tar.bz2壓縮包解壓到當前路徑)tar -xjvf test.tar.bz2 -C /tmp (將test.tar.bz2壓縮包解壓到/tmp)(9)wc命令,計算文件的行數(shù)(l)、單詞數(shù)(w)、字符數(shù)(c)。
? ? ? ? ???
(10)which命令 ,例如which ls,表示查看ls命令所在路徑,其實ls命令就是一個可執(zhí)行文件。
?(11)diff命令:比較兩個文件的異同。例如:diff file1 file2,比較file1與file2的異同并輸出??梢允褂么嗣町a(chǎn)生補丁
? ? ? ? ? ?例如:diff dir1/?dir2/ > -urNB dir.patch ? ? ? ?(比較dir1目錄的所有文件與dir2的異同并輸出為dir.patch補丁)
? ? ? ? ? ? 打補丁使用命令:patch -p1 < 補丁文件的路徑 ? ? ? (需要進入到要打補丁的路徑,比如 patch -p1< ../dir.patch 需要進入到dir1目錄,打完補丁之后,dir1的內(nèi)容就與dir2的內(nèi)容相同。)
(12)find命令,find 命令會遞歸地查找你所執(zhí)行的目錄下的所有子目錄。find?命令除了可以按照文件的名字來查找,還可以按文件的權(quán)限、文件的類型、文件的索?引節(jié)點編號等等來查找。
? ? ? ? ? ?比如按名字找,find 路徑 -name "文件名" 。例如要在./Desktop/code/中查找所有以.c?結(jié)尾的文件。
? ? ? ? ? ?
(13)grep命令,用來在文件中查找字符串。命令格式:grep ? 尋找的內(nèi)容 ?尋找的路徑 -參數(shù)
例如要在?hello.c?中查找字符串”hello”
? ? ? ? ? ? ? ? ??
?grep?常用的選項:
-r:如果有子目錄,則遞歸地查找。
-w:嚴格匹配指定的單詞(比如指定查找”apple”,”appletree”將被剔除)
-n:打印行號
-H:打印文件名
例如,遞歸地在/project/src 下查找所有包含單詞”hello”的.c?文件,并打印出含有該單詞的?文件名稱和該單詞在文件中的行號,命令是:Liang@ubuntu:~$ grep “hello”?/project/src/*.c -rwnH
查找某一類文件,再在這些文件中查找我們需要的字符串或者單詞,可以將?find?和?grep?命令通過管道‘|’連接起來一起用,實現(xiàn)更加強大的功能,比如:?要在/project/src?的所有普通文件中查找單詞”hello”,要求剔除像”helloworld”這樣的單詞:
Liang@ubuntu:~$ find /project/src -type f | xargs grep “hello”?-wnH
xargs?代表?find?的輸出作為?grep?的參數(shù)(否則?grep?只會在?find?找出來的文件列表名稱?中查找”hello”,而不會進入文件內(nèi)部查找)。
?(14)date命令,不帶參數(shù)顯示當前日期/時間。?設置時間日期/時間(需要超級權(quán)限) ? ? ? ?
? ? ? ? ? ? ?設置時間命令:sudo date -s "20180723 19:00" (設置時間為2018年7月23日19:00時)
? ? ? ? ? ? ?
? ? ? ? ? ? 格式化輸出:date "+%Y-%m-%d %H:%M:%S" ? ? ? ? ? ? ? ?(年月日時分秒)
? ? ? ? ? ? ?
(15)cal命令,顯示日歷
? ? ? ? ? ? ?
? (16)head命令,顯示文件前幾行內(nèi)容
? ? ? ? ? ?
? ? (17) tail命令,顯示文件最后幾行
? ? ? ? ? ?
? ? ? ? ? 注:可以使用tail -f??xxx.log 來查看log文件的新內(nèi)容?(當xxx.log日志有新的數(shù)據(jù)時,tail會顯示新的數(shù)據(jù))
四、vi常用命令
????? ? vi編輯器的鍵盤輸入分成兩種情況,一種情況下你的輸入就是你編輯的文 檔,另一種情況下你的輸入是你要編輯器幫你完成的動作。簡而言之,vim 需要兩個操作模 式:一個模式下鍵入的信息,作為文本本身的內(nèi)容,稱之為編輯模式. 一個模式下鍵入的信息,作為執(zhí)行的動作,稱之為命令模式。剛一啟動的 vim 編輯器自動進入命令模式,此模式下鍵入一個命令對應 vim 一個動作, 比如進入編輯模式、保存文本、復制黏貼、查找替換等等;在命令模式下再按下i按鍵,進入編輯模式。再編輯模式下,按Esc按鍵退出編輯模式,進入命令模式。
| vim?命令 | 含義 |
| :w | 保存當前文件 |
| ? :w?filename | 保存當前文件(如果進入 vim?的時候沒有指定要編輯的文件名,需要 在保存文件的時候加上文件名?filename,如果進入?vim?的時候指定了?文件名,那么該用法相當于“另存為”) |
| :q | 退出當前正在編輯的文件 |
| :q! | 強制退出當前正在編輯的文件并放棄最近一次保存到現(xiàn)在的所有操作 |
| :wq | 保存文件并退出 |
| u | 撤銷最近一次操作。(按?Ctrl+r?恢復撤銷掉的操作) |
| i | 在光標所在的位置前面插入字符 |
| a | 在光標所在的位置后面插入字符 |
| o | 在光標所在行的下一行插入新的一行 |
| O | 在光標所在行的上一行插入新的一行 |
| x | 剪切光標處所在的字符。(x?前可先按一個數(shù)字,則剪切若干個字符) |
| dd | 剪切光標處所在的一行。(dd?前可先按一個數(shù)字,則剪切若干行) |
| yy | 復制光標處所在的一行。(yy?前可先按一個數(shù)字,則復制若干行) |
| :數(shù)字 ? | 跳轉(zhuǎn)到指定行(:18表示跳轉(zhuǎn)到18行) |
| p | 將剪切板中的資料粘貼到光標所在處 |
| ? r | 修改光標所在的字符,r?之后接跟你要修正的字符(比如你要把?fox?中?的?o?改成?i,只需將光標停在?o?上,接著連續(xù)按下?r?和?i) |
| h | 將光標向前移動一個字符 |
| j | 將光標向下移動一個字符 |
| k | 將光標向上移動一個字符 |
| l(小寫的?L) | 將光標向后移動一個字符 |
| gg | 跳到文本的最初一行 |
| G | 跳到文本的最末一行 |
| Ctrl +?u | 向上(up)翻頁 |
| Ctrl +?d | 向下(down)翻頁 |
| :%s/old/new | 將文件中所有的?old?字符串替換成?new |
| ? /string | 從光標處往下查找字符串?string,注意在輸完你要查找的字符串?string 之后要按回車鍵。如果你要找的字符串?string?有多個,你可以按?n?將?光標跳到下一個位置,按?N?將光標跳到上一個位置 |
| ?string | 跟上面的</string>是一樣的,區(qū)別是它從光標處往上查找 |
補充:
(1)【命令行模式】設置vi顯示行號、自動縮進等,命令行模式下:set option (選項前加no 等于禁止)
? ? ?選項:
? ? ? ? ? ? ? ?number?顯示行號
? ? ? ? ? ? ? ?ruler?屏幕底部顯示光標所在行、列的位置
? ? ? ? ? ? ? ?autoindent 自動縮進
? ? ? ? ? ? ? ?all 列出所有選項
比如set number 設置側(cè)邊顯示行號。set nonumber 設置為不顯示行號
上面的設置方法僅僅在當前編輯的文檔生效。全局生效需要設置vi的配置文件。所有用戶的vim配置文件/etc/vim/vimrc,對某個用戶的vim配置文件/home/用戶名/.vimrc。
例如設置當前用戶的配置文件,(若是還沒有的話就創(chuàng)建)
? ? ? ? ? ? ? ? ?? ? ?
? ? ? ?set backspace=2 ? ? ? ? ?可隨時用退格鍵進行刪除
? ? ? ?set mouse=a ? ? ? ? ? ? ? ? 允許鼠標移動光標” ?(我們習慣鼠標點到哪,哪就可以編輯的,但是有vi默認光標是通過方向鍵移動的)
? ? ? ?syntax on ? ? ? ? ? ? ? ? ? ? ?語法檢驗,關鍵字著色?
? ? ? ?set tabstop=4 ? ? ? ? ? ? ? ?設置tab鍵的寬度
? ? ? 配置所有用戶則需要修改文件/etc/vim/vimsrc ? ? ? ?(需要超級權(quán)限) 例如默認顯示行號、自動縮進、允許鼠標移動光標
? ? ? ?
?(2)【命令行模式】Ctrl+v 方形選擇,(類似與notepad++上的按著Shift+Alt鍵進行鼠標選擇)
? ? ? ? ??
(3)【編輯模式】Ctrl+n ? ? ? 自動補全 ? ? ? ?例如鍵入pri,然后按Ctrl+n,就會補上ntf。
五、man幫助手冊
1、man 命令幫助我們查找需要的信息,而這些信息被歸類為以下幾大類別(詳細的信息 可以用 man 命令查詢自己):
實際上有 9 冊 man 幫助文檔來分別管理這些信息,但可能系統(tǒng)默認只安裝了第 1 冊(即查找 Shell 命令的 man 手冊),其他的 man 手冊需要手動安裝。
2、有了完整 man 手冊之后就可以查找想要的信息了,比如想要找關于 read 的用法和說明 的信息。
查找那本手冊有read這個函數(shù):
其中,read (1posix)提供的是 Shell 命令幫助信息,read (2)提供的是系統(tǒng)調(diào)用,read (3posix)提供的是庫函數(shù)等等,假如你想要的是庫函數(shù) read 的幫助信息,輸入命令:man 3posix read(或者簡寫為man 3 read)
?
總結(jié)
以上是生活随笔為你收集整理的Linux 基础操作、常用shell命令、vi常用命令、man帮助手册的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从明源动力到创新工场这一路走来
- 下一篇: c语言驻波,C版:基于声学驻波的液位检测