摘要:如果有需要重復(fù)輸入的命令就不用輸?shù)诙瘟恕T撁铑愃朴谙碌拿睢?duì)于每個(gè)目錄,該命令將列出其中的所有子目錄與文件。第一組表示文件屬主的權(quán)限,第二組表示同組用戶的權(quán)限,第三組表示其他用戶的權(quán)限。每一組的三個(gè)字符分別表示對(duì)文件的讀寫和執(zhí)行權(quán)限。
精彩內(nèi)容推薦
一套java架構(gòu)師學(xué)習(xí)資源,等你拿
java實(shí)戰(zhàn)練習(xí)項(xiàng)目教程
你所需要的大數(shù)據(jù)視頻教程
java全套學(xué)習(xí)視頻教程及源碼
微服務(wù)資源springboot、springcloud、docker、dubbo項(xiàng)目實(shí)戰(zhàn)等傾心分享
shell簡介 1.1 shell家族shell:命令解釋器,根據(jù)輸入的命令執(zhí)行相應(yīng)命令。
察看當(dāng)前系統(tǒng)下有哪些shell:
cat /etc/shells
察看當(dāng)前系統(tǒng)正在使用的shell
echo $SHELL
常見shell:
/bin/sh (已經(jīng)被 /bin/bash 所取代) /bin/bash (就是 Linux 默認(rèn)的 shell) /bin/ksh (Kornshell 由 AT&T Bell lab. 發(fā)展出來的,兼容于 bash) /bin/tcsh (整合 C Shell ,提供更多的功能) /bin/csh (已經(jīng)被 /bin/tcsh 所取代) /bin/zsh (基于 ksh 發(fā)展出來的,功能更強(qiáng)大的 shell)1.2 bash
bash 是一個(gè)為GNU計(jì)劃編寫的Unix shell。它的名字是一系列縮寫:Bourne-Again SHell — 這是關(guān)于Bourne shell(sh)的一個(gè)雙關(guān)語(Bourne again / born again)
bash 是 許 多 Linux 平 臺(tái) 的 內(nèi) 定 Shell, 事 實(shí) 上, 還 有 許 多 傳 統(tǒng) UNIX 上 用 的 Shell, 像 tcsh、csh、ash、bsh、ksh等等,Shell Script大致都類同,當(dāng)您學(xué)會(huì)一種Shell以后,其 它的Shell會(huì)很快就上手,大多數(shù)的時(shí)候,一個(gè)Shell Script通常可以在很多種Shell上使用。
bash是大多數(shù)Linux系統(tǒng)以及Mac OS X v10.4默認(rèn)的shell,它能運(yùn)行于大多數(shù)Unix風(fēng)格 的操作系統(tǒng)之上,甚至被移植到了Microsoft Windows上的Cygwin系統(tǒng)中,以實(shí)現(xiàn)windows的POSIX虛擬接口。此外,它也被DJGPP項(xiàng)目移植到了MS-DOS上。
1.3 命令和路徑補(bǔ)齊在bash下敲命令時(shí),Tab鍵可以補(bǔ)全已經(jīng)敲了一部分的文件名和目錄名。如果是Ubuntu 系統(tǒng),系統(tǒng)默認(rèn)啟用了bash completion,還可以補(bǔ)全命令的某些參數(shù)、Makefile目標(biāo)等 等。如果是Debian系統(tǒng),可以用以下命令啟用bash completion:
$ source /etc/bash_completion
建議將這一行加入~/.bashrc啟動(dòng)腳本中。比如使用sudo后面接命令,如果沒有bash completion則只有sudo可以補(bǔ)全,后面的命令不能補(bǔ)全。如果啟用了bash completion,則 后面的命令,包括命令的某些參數(shù)(比如aptitude命令的install)都可以補(bǔ)全了。
比如在主目錄下要列出桌面目錄的內(nèi)容,輸入(不回車)
$ ls De
然后敲Tab鍵,如果以De開頭的文件或文件夾只有Desktop一個(gè),就自動(dòng)補(bǔ)全為
$ ls Desktop
否則,再敲一次Tab鍵,將會(huì)把所有以De開頭的文件或文件夾列在下面供你選擇(在這里 我們手動(dòng)創(chuàng)建另外一個(gè)以De開頭的文件)
$ touch Death $ ls De Death Desktop/
你可以再補(bǔ)敲一個(gè)s再Tab,這次Desktop就會(huì)補(bǔ)全到命令后面了。有 的 人 是 從 DOS 時(shí) 代 過 來 的, 留 下 一 個(gè) 很 不 好 的 習(xí) 慣 就 是 在 找 一 個(gè) 文 件 時(shí) 反 復(fù) 地cd、ls、cd、ls等找到了要找的文件時(shí)再想回到先前的目錄,已經(jīng)不記得先前是 從哪個(gè)目錄轉(zhuǎn)到這里來的了。
我們從上面可以看出,Tab補(bǔ)全本身就具備了ls的功能,上面的Tab補(bǔ)全相當(dāng)于ls -Fd De*命令。所以我們完全不必反復(fù)地cd到別的目錄然后ls去找文件,多按幾次Tab就可以一條 命令完成了,這樣的好處是我們的當(dāng)前目錄不用變,不需要找完了文件再cd回來,同時(shí)省去 了大量的按鍵次數(shù)。更重要的是,自動(dòng)補(bǔ)全同時(shí)兼具了檢查拼寫錯(cuò)誤的功能,如果前面幾個(gè) 字母拼寫錯(cuò)了,就補(bǔ)全不出東西來,用戶就知道拼寫錯(cuò)了,如果前面幾個(gè)字母沒有拼寫錯(cuò), 那么由系統(tǒng)補(bǔ)全出來的文件名肯定也不會(huì)有拼寫錯(cuò)誤,避免了用戶在敲很長的文件名時(shí)易犯 的拼寫錯(cuò)誤。
1.4 歷史記錄history
歷史記錄是另外一個(gè)非常方便的功能。按上下移動(dòng)光標(biāo)鍵(或者Ctrl-p、Ctrl-n)可以 一條一條瀏覽以前輸過的命令。如果有需要重復(fù)輸入的命令就不用輸?shù)诙瘟恕H绻隳苡?住以前輸過的某條命令中的某個(gè)關(guān)鍵字,可以按Ctrl-r,然后輸入關(guān)鍵字,隨著你每輸入一 個(gè)字母,bash會(huì)做增量式(increasingly)查找,也可以反復(fù)按Ctrl-r或Ctrl-s向前向后查 找。如果找到了,按左右移動(dòng)光標(biāo)鍵或Home鍵(Ctrl-a)或End鍵(Ctrl-e)將該命令帶回提示 符下進(jìn)一步修改,或者直接按Enter鍵原封不動(dòng)地執(zhí)行該命令。
1.5 主鍵盤快捷鍵bash的快捷鍵和emacs保持一致,用慣其中之一再用另一個(gè)程序會(huì)很順手的。請記住一條原則:盡量使用主鍵盤快捷鍵而不使用移動(dòng)光標(biāo)鍵和編輯鍵。因?yàn)槭植槐仉x開主鍵盤是效 率最高的,這樣在你一生之中所節(jié)省的來回移動(dòng)手的時(shí)間絕對(duì)可以用星期來計(jì)算,是絕對(duì)值 得你花十分鐘的時(shí)間記住這些快捷鍵的。
功能 | 快捷鍵 | 助記 |
---|---|---|
上 | Ctrl-p | previous |
下 | Ctrl-n | next |
左 | Ctrl-b | backward |
右 | Ctrl-f | forward |
Del | Ctrl-d | delete光標(biāo)后面的 |
Home | Ctrl-a | the first letter |
End | Ctrl-e | end |
Backspace | Backspace | delete光標(biāo)前面的 |
ubuntu沒有盤符這個(gè)概念,只有一個(gè)根目錄/,所有文件都在它下面
/ 根目錄 bin //系統(tǒng)可執(zhí)行程序,如命令 boot //內(nèi)核和啟動(dòng)程序,所有和啟動(dòng)相關(guān)的文件都保存在這里 grub //引導(dǎo)器相關(guān)文件 dev //設(shè)備文件 etc //系統(tǒng)軟件的啟動(dòng)和配置文件,系統(tǒng)在啟動(dòng)過程中需要讀取的文件都在這個(gè)目錄。如LILO參數(shù)、用 戶賬戶和密碼。 home //用戶的主目錄。下面是自己定義的用戶名的文件夾 lib //系統(tǒng)程序庫文件,這個(gè)目錄里存放著系統(tǒng)最基本的動(dòng)態(tài)鏈接共享庫,類似于Windows下的system32 目錄,幾乎所有的應(yīng)用程序都需要用到這些共享庫。 media //掛載媒體設(shè)備,如光驅(qū)、U盤等 mnt //目錄是讓用戶臨時(shí)掛載別的文件系統(tǒng),如掛載Windows下的某個(gè)分區(qū),ubuntu默認(rèn)還是掛載在/media 目錄。 opt //可選的應(yīng)用軟件包(很少使用) proc //這個(gè)目錄是系統(tǒng)內(nèi)存的映射,我們可以直接訪問這個(gè)目錄來獲取系統(tǒng)信息。也就是說,這個(gè)目錄 的內(nèi)容不在硬盤上而是在內(nèi)存里。 sbin //管理員系統(tǒng)程序 selinux srv sys //udev用到的設(shè)備目錄樹,/sys反映你機(jī)器當(dāng)前所接的設(shè)備 tmp //臨時(shí)文件夾 usr //這是個(gè)最龐大的目錄,我們要用到的很多應(yīng)用程序和文件幾乎都存放在這個(gè)目錄下。] bin // 應(yīng)用程序 game //游戲程序 include lib //應(yīng)用程序的庫文件 lib64 local //包含用戶程序等 sbin //管理員應(yīng)用程序2.2 用戶目錄
位于/home/user,稱之為用戶工作目錄或家目錄,表示方式:
/home/user ~
絕對(duì)路徑
從/目錄開始描述的路徑為絕對(duì)路徑,如:
cd /home ls /usr
相對(duì)路徑
從當(dāng)前位置開始描述的路徑為相對(duì)路徑,如:
cd ../../ ls abc/def
.和..
每個(gè)目錄下都有.和..
. 表示當(dāng)前目錄
.. 表示上一級(jí)目錄,即父目錄 根目錄下的.和..都表示當(dāng)前目錄
ls [OPTION]… [FILE]…
ls是英文單詞list的簡寫,其功能為列出目錄的內(nèi)容。這是用戶最常用的一個(gè)命令,因 為用戶需要不時(shí)地查看某個(gè)目錄的內(nèi)容。該命令類似于DOS下的dir命令。 對(duì)于每個(gè)目錄, 該命令將列出其中的所有子目錄與文件。對(duì)于每個(gè)文件,ls將輸出其文件名以及所要求的其 他信息。默認(rèn)情況下,輸出條目按字母順序排序。當(dāng)未給出目錄名或是文件名時(shí),就顯示當(dāng) 前目錄的信息。
主要的OPTION有:
-a 列出隱藏文件,文件中以“.”開頭的均為隱藏文件,如:~/.bashrc -l 列出文件的詳細(xì)信息 -R 連同子目錄中的內(nèi)容一起列出
用ls -l命令顯示的信息中,開頭是由10個(gè)字符構(gòu)成的字符串,其中第一個(gè)字符表示文 件類型,它可以是下述類型之一:
- 普通文件 d 目錄 l 符號(hào)鏈接 b 塊設(shè)備文件 c 字符設(shè)備文件 s socket文件,網(wǎng)絡(luò)套接字 p 管道
后面的9個(gè)字符表示文件的訪問權(quán)限,分為3組,每組3位。第一組表示文件屬主的權(quán) 限,第二組表示同組用戶的權(quán)限,第三組表示其他用戶的權(quán)限。每一組的三個(gè)字符分別表示 對(duì)文件的讀、寫和執(zhí)行權(quán)限。各權(quán)限如下所示:
r 讀 w 寫 x 可執(zhí)行。對(duì)于目錄,表示進(jìn)入權(quán)限。 s 當(dāng)文件被執(zhí)行時(shí),把該文件的UID或GID賦予執(zhí)行進(jìn)程的UID(用戶ID)或GID(組 ID)。 t 設(shè)置標(biāo)志位(sticky bit)。如果是有sticky bit的目錄,在該目錄下任何用戶只要有適當(dāng)?shù)臋?quán)限即可創(chuàng)建文 件,但文件只能被超級(jí)用戶、目錄擁有者或文件屬主刪除。如果是有sticky bit的可執(zhí)行文件,在該文件執(zhí)行后, 指向其正文段的指針仍留在內(nèi)存。這樣再次執(zhí)行它時(shí),系統(tǒng)就能更快地裝入該文件。 - 沒有相應(yīng)位置的權(quán)限。
訪問權(quán)限后面的數(shù)字表示與該文件共享inode的文件總數(shù),即硬鏈接數(shù)(參見下面ln命 令)。
2.4 cdchange dir 改變當(dāng)前所在路徑
cd ~ cd dir1/dir2 cd ..2.5 which
查看指定命令所在路徑
which ls2.6 pwd
查看當(dāng)前所在路徑
pwd2.7 mkdir
mkdir [OPTION] DIRECTORY…
創(chuàng)建目錄DIRECTORY,可以一次創(chuàng)建多個(gè)。OPTION如果是-p,表示可以連同父目錄一起 創(chuàng)建。
2.8 rmdirrmdir [OPTION]… DIRECTORY…
刪除空目錄,可以一次刪除多個(gè)。OPTION如果是-p,表示可以連同空的父目錄一起刪 除。mkdir和rmdir的用法舉例:
$ mkdir a $ mkdir a/b $ ls a b $ rmdir a/b $ ls a $ rmdir a $ mkdir a/b mkdir: cannot create directory `a/b": No such file or directory $ mkdir -p a/b $ rmdir -p a/b2.9 touch
touch [OPTION]… FILE…
將每個(gè)文件的訪問及修改時(shí)間都更新為目前的時(shí)間。
如果文件不存在,則創(chuàng)建一個(gè)字節(jié)數(shù)為0的文件。
2.10 rm刪除文件:
rm file
刪除目錄:
rm dir -rf2.11 mv
重命名:
mv file1 file2
移動(dòng)文件:
mv file1 ~/2.12 cp
拷貝文件:
cp file1 file2 cp file1 dir/ cp file1 ../
拷貝目錄:
cp dir1 dir2 -r cp dir1 ~/ -r2.13 cat
查看文件里內(nèi)容,輸出到終端,如果cat時(shí)沒跟文件名,則讀標(biāo)準(zhǔn)輸入,遇到n后,輸 出到標(biāo)準(zhǔn)輸出,終端下輸入Ctrl-d表示結(jié)束
2.14 moremore [OPTION] FILE…
查看文本文件的內(nèi)容,屏幕顯示完一屏就等待用戶按下任意鍵再滾動(dòng)到下一屏,如果中 途不想繼續(xù)看下去了,可以按Ctrl+C或q終止顯示。
2.15 lessless [OPTION] FILE…
查看文本文件的內(nèi)容,屏幕顯示完一屏就等待用戶按鍵,用戶可以向上或向下查看,如 果中途不想繼續(xù)看下去了,可以按Ctrl+C或q終止顯示。
2.16 headhead [OPTION]… FILE… 顯示指定文件的前面幾行。如果沒有指定文件,將從標(biāo)準(zhǔn)輸入(鍵盤)上讀取。如果沒
有指定要顯示的行數(shù),則默認(rèn)顯示前10行。如果要顯示文件的前5行:
$ head -5 file12.17 tail
tail [OPTION]… FILE… 顯示文件的最后幾行。若沒有指定顯示的行或字符數(shù),則默認(rèn)顯示末尾10行。如果要顯
示文件末5行:
$ tail -5 file12.18 ln
鏈接有兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號(hào)鏈接(Symbolic Link)。建立硬鏈接時(shí),鏈接文件和被鏈接文件必須位于同一個(gè)文件系統(tǒng)中,并且不能建立 指向目錄的硬鏈接。而對(duì)符號(hào)鏈接,則不存在這個(gè)問題。默認(rèn)情況下,ln產(chǎn)生硬鏈接。如果 給ln命令加上-s選項(xiàng),則建立符號(hào)鏈接。舉例如下,注意ls -l列出文件的硬鏈接數(shù)和字節(jié) 數(shù):
硬鏈接:
touch hello ln hello word_h
軟鏈接:
ln -s hello word_s2.19 tree
這個(gè)命令需要下載安裝,ubuntu下
sudo apt-get install tree
按結(jié)構(gòu)樹的形狀顯示目錄和文件
2.20 wc利用 wc 指令我們可以計(jì)算文件的 Byte 數(shù)、字?jǐn)?shù)、或是列數(shù),若不指定文件名稱、或 是所給予的文件名為“-”,則 wc 指令會(huì)從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù)。
wc -l ./*
-c 或–bytes 或–chars 只顯示 Bytes 數(shù)。2.21 od
-l 或–lines 只顯示列數(shù)。
-w 或–words 只顯示字?jǐn)?shù)。
od -tcx file1
-t 指定數(shù)據(jù)的顯示格式,主要的參數(shù)有:2.22 du
c ASCII字符或反斜杠序列
d[SIZE] 有符號(hào)十進(jìn)制數(shù),每個(gè)整數(shù)SIZE字節(jié)。 f[SIZE] 浮點(diǎn)數(shù),每個(gè)整數(shù)SIZE字節(jié)。
o[SIZE] 八進(jìn)制(系統(tǒng)默認(rèn)值為02),每個(gè)整數(shù)SIZE字節(jié)。 u[SIZE] 無符號(hào)十進(jìn)制數(shù),每個(gè)整數(shù)SIZE字節(jié)。
x[SIZE] 十六進(jìn)制數(shù),每個(gè)整數(shù)SIZE字節(jié)。
查看某個(gè)目錄的大小: 以M為單位
du -hm /home/sihai/test
以B為單位
du -hb ./*
以K為單位,4k的整數(shù)倍
du -hk ./*2.23 df
df查看磁盤使用情況
df --block-size=GB df --block-size=MB文件屬性和用戶用戶組 3.1 whoami
查看當(dāng)前登陸用戶
3.2 chmod文字設(shè)定法
chmod [who] [+|-|=] [mode] 文件名
操作對(duì)象who可是下述字母中的任一個(gè)或者它們的組合:
u 表示“用戶(user)”,即文件或目錄的所有者。
g 表示“同組(group)用戶”,即與文件屬主有相同組ID的所有用戶。 o 表示“其他(others)用戶”。
a 表示“所有(all)用戶”。它是系統(tǒng)默認(rèn)值。
操作符號(hào)可以是:
+添加某個(gè)權(quán)限。
-取消某個(gè)權(quán)限。
= 賦予給定權(quán)限并取消其他所有權(quán)限(如果有的話)。
設(shè)置mode所表示的權(quán)限可用下述字母的任意組合:
r 可讀。 w 可寫。
x 可執(zhí)行。
數(shù)字設(shè)定法
chmod [mode] 文件名 我們必須首先了解用數(shù)字表示的屬性的含義:
0表示沒有權(quán)限,
1表示可執(zhí)行權(quán)限,
2表示可寫權(quán)限,
4表示可讀權(quán)限,
然后將其相加。所以數(shù)字屬性的格式應(yīng)為3個(gè)從0到7的八進(jìn)制數(shù),其順序是
(u)(g)(o)。
例如,如果想讓某個(gè)文件的屬主有“讀/寫”二種權(quán)限,需要把4(可讀)+2(可寫)= 6(讀/寫)。
比如設(shè)置一個(gè)文件允許所有用戶可寫
$ chmod a+w file1
設(shè)置一個(gè)文件允許所有用戶可讀、可寫、不可執(zhí)行
$ chmod 666 file13.3 chown
chown [OPTION]… [OWNER:GROUP] FILE…
chown [OPTION]… –reference=RFILE FILE… 更改某個(gè)文件或目錄的屬主和屬組。這個(gè)命令也很常用。例如root用戶把自己的一個(gè)文件拷貝給用戶A, 為了讓用戶A能夠存取這個(gè)文件,root用戶應(yīng)該把這個(gè)文件的屬主設(shè)為A, 否則,用戶A無法存取這個(gè)文件。
OPTION的主要參數(shù):
-R 遞歸式地改變指定目錄及其下的所有子目錄和文件的擁有者。
-v 顯示chown命令所做的工作。 比如把一個(gè)文件改為sihai用戶和nogroup用戶組所有
$ sudo chown sihai:nogroup file1
注意:
chown需要特權(quán)用戶才能執(zhí)行
一個(gè)文件的owner和owning group是沒有關(guān)聯(lián)的。一個(gè)文件屬于用戶A,也屬于用戶組 B,并不表示用戶A屬于用戶組B。
3.4 chgrpchgrp [OPTION]… GROUP FILE…
chgrp [OPTION]… –reference=RFILE FILE… 該命令改變(指定)指定文件所屬的用戶組。其中g(shù)roup可以是用戶組ID,也可以是/etc/group文件中用戶組的組名。
文件名是以空格分開的要改變屬組的文件列表,支持通配 符。如果用戶不是該文件的屬主或超級(jí)用戶,則不能改變該文件的組。
OPTION的主要參數(shù):
-R 遞歸式地改變指定目錄及其下的所有子目錄和文件的屬組。
查找與檢索 4.1 find根據(jù)文件名查找
find [OPTION] path… [expression] 在目錄中搜索文件,path指定目錄路徑,系統(tǒng)從這里開始沿著目錄樹向下查找文件。它是一個(gè)路徑列表,相互用空格分離,如果不寫path,那么默認(rèn)為當(dāng)前目錄。Expression 是 find命令接受的表達(dá)式,find命令的所有操作都是針對(duì)表達(dá)式的。
一條最常用的find命令--在當(dāng)前目錄及子目錄下查找所有以file開頭的文件名。
$ find . -name "file*" $ find / -name "vimrc" $ find ~ -name "*.c"4.2 grep
根據(jù)內(nèi)容檢索
grep [options] PATTERN [FILE...]
在指定文件中搜索特定的內(nèi)容,并將含有這些內(nèi)容的行輸出到標(biāo)準(zhǔn)輸出。若不指定文件 名,則從標(biāo)準(zhǔn)輸入讀取。
[options]部分包含的主要參數(shù):
-c:只輸出匹配行的計(jì)數(shù)。
-I:不區(qū)分大小寫(只適用于單字符)。
-h:查詢多文件時(shí)不顯示文件名。
-l:查詢多文件時(shí)只輸出包含匹配字符的文件名。
-n:顯示匹配行及行號(hào)。
-s:不顯示不存在或無匹配文本的錯(cuò)誤信息。
-v:顯示不包含匹配文本的所有行。
-R: 連同子目錄中所有文件一起查找。
比如到系統(tǒng)頭文件目錄下查找所有包含printf的文件
$ grep "printf" /usr/include -R安裝卸載軟件 5.1 apt-get
更新源服務(wù)器列表
sudo vi /etc/apt/sources.list
更新完服務(wù)器列表后需要更新下源
sudo apt-get update 更新源5.2 deb包安裝
sudo apt-get install package 安裝包
sudo apt-get remove package 刪除包
sudo apt-cache search package 搜索軟件包
sudo apt-cache show package 獲取包的相關(guān)信息,如說明、大小、版本等 sudo apt-get install package --reinstall 重新安裝包
sudo apt-get -f install 修復(fù)安裝
sudo apt-get remove package --purge 刪除包,包括配置文件等 sudo apt-get build-dep package 安裝相關(guān)的編譯環(huán)境
sudo apt-get upgrade 更新已安裝的包 sudo apt-get dist-upgrade 升級(jí)系統(tǒng)
sudo apt-cache depends package 了解使用該包依賴那些包 sudo apt-cache rdepends package 查看該包被哪些包依賴 sudo apt-get source package 下載該包的源代碼
sudo apt-get clean && sudo apt-get autoclean 清理無用的包 sudo apt-get check 檢查是否有損壞的依賴
安裝deb軟件包命令: sudo dpkg -i xxx.deb5.3 原碼安裝
刪除軟件包命令: sudo dpkg -r xxx.deb
連同配置文件一起刪除命令: sudo dpkg -r --purge xxx.deb
查看軟件包信息命令: sudo dpkg -info xxx.deb
查看文件拷貝詳情命令: sudo dpkg -L xxx.deb
查看系統(tǒng)中已安裝軟件包信息命令: sudo dpkg -l
重新配置軟件包命令: sudo dpkg-reconfigure xxx
解壓縮源代碼包
cd dir
./configure 檢測文件是否缺失,創(chuàng)建Makefile,檢測編譯環(huán)境
make 編譯源碼,生成庫和可執(zhí)行程序
sudo make install 把庫和可執(zhí)行程序,安裝到系統(tǒng)路徑下
磁盤管理 6.1 mount命令格式:
mount [-t vfstype] -o options device dir
其中:
-t vfstype 指定文件系統(tǒng)的類型,通常不必指定。mount 會(huì)自動(dòng)選擇正確的類型。常 用類型有:
光盤或光盤鏡像:iso9660
DOS fat16文件系統(tǒng):msdos Windows 9x fat32文件系統(tǒng):vfat Windows NT ntfs文件系統(tǒng):ntfs
Mount Windows文件網(wǎng)絡(luò)共享:smbfs UNIX(LINUX) 文件網(wǎng)絡(luò)共享:nfs
-o options 主要用來描述設(shè)備或檔案的掛接方式。常用的參數(shù)有: loop:用來把一個(gè)文件當(dāng)成硬盤分區(qū)掛接上系統(tǒng)
ro:采用只讀方式掛接設(shè)備
rw:采用讀寫方式掛接設(shè)備 iocharset:指定訪問文件系統(tǒng)所用字符集
device 要掛接(mount)的設(shè)備。
dir設(shè)備在系統(tǒng)上的掛接點(diǎn)(mount point)。
由 于 近 年 來 磁 盤 技 術(shù) 的 巨 大 進(jìn) 步, 新 的 電 腦 系 統(tǒng) 都 配 備 了 大 容 量 的 磁 盤 系 統(tǒng), 在 Windows下許多人都習(xí)慣把軟件和資料做成光盤鏡像文件通過虛擬 光驅(qū)來使用。這樣做有 許多好處:一、減輕了光驅(qū)的磨損;二、現(xiàn)在硬盤容量巨大存放幾十個(gè)光盤鏡像文件不成問 題,隨用隨調(diào)十分方便;三、硬盤的讀取速度要遠(yuǎn) 遠(yuǎn)高于光盤的讀取速度,CPU占用率大大 降低。其實(shí)linux系統(tǒng)下制作和使用光盤鏡像比Windows系統(tǒng)更方便,不必借用任何第三方軟 件包。
1.從光盤制作光盤鏡像文件。將光盤放入光驅(qū),執(zhí)行下面的命令。
cp /dev/cdrom /home/sunky/mydisk.iso
或
dd if=/dev/cdrom of=/home/sunky/mydisk.iso
注:執(zhí)行上面的任何一條命令都可將當(dāng)前光驅(qū)里的光盤制作成光盤鏡像文件/home/ sunky/mydisk.iso
2.文件和目錄制作成光盤鏡像文件,執(zhí)行下面的命令。
mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir
注:這條命令將/home/sunky/mydir目錄下所有的目錄和文件制作成光盤鏡像文件/ home/sunky/mydisk.iso,光盤卷標(biāo)為:mydisk
3.光盤鏡像文件的掛接(mount)
mkdir /mnt/vcdrom
注:建立一個(gè)目錄用來作掛接點(diǎn)(mount point)
mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
注:使用/mnt/vcdrom就可以訪問盤鏡像文件mydisk.iso里的所有文件了。
1.檢測存儲(chǔ)設(shè)備名稱
sudo fdisk -l
2.掛載存儲(chǔ)設(shè)備sdb1到掛載點(diǎn)/mnt目錄
sudo mount /dev/sdb1 /mnt
3.訪問/mnt
4.卸載/mnt
sudo umount /mnt6.2 umount
卸載命令
sudo umount 掛在點(diǎn)6.3 dd
dd:拷貝
例1:拷貝光碟(注意,你的光碟是標(biāo)準(zhǔn)的 iso9660格式才可以這么做)
dd if=/dev/cdrom of=cdrom.iso
例2:將文件sfile拷貝到文件 dfile中。
$ dd if=sfile of=dfile
例3:創(chuàng)建一個(gè)100M的空文件
dd if=/dev/zero of=hello.txt bs=100M count=1
/dev/null,外號(hào)叫無底洞,你可以向它輸出任何數(shù)據(jù),它通吃,并且不會(huì)撐著!
/dev/zero,是一個(gè)輸入設(shè)備,你可你用它來初始化文件,從里面讀出來的數(shù)據(jù)都是0。
壓縮包管理 7.1 tartar [主選項(xiàng)+輔選項(xiàng)] 文件或者目錄 tar可以為文件和目錄創(chuàng)建檔案。
利用tar命令用戶可以為某一特定文件創(chuàng)建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。使用該命令時(shí),主選項(xiàng)是 必須要有的,輔選項(xiàng)是輔助使用的,可以選用。
主選項(xiàng)包括:
c 創(chuàng)建新的檔案文件。如果用戶想備份一個(gè)目錄或是一些文件,就要選擇這個(gè)選項(xiàng)。
r 把要存檔的文件追加到檔案文件的未尾。
t 列出檔案文件的內(nèi)容,查看已經(jīng)備份了哪些文件。
u 更新文件。用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最 后。
x 從檔案文件中釋放文件。(常用)
輔選項(xiàng)包括:
f 使用檔案文件或設(shè)備,這個(gè)選項(xiàng)通常是必選的。(常用) k 保存已經(jīng)存在的文件。
m 在還原文件時(shí),把所有文件的修改時(shí)間設(shè)定為現(xiàn)在。 M 創(chuàng)建多卷的檔案文件,以便在幾個(gè)磁盤中存放。
v 詳細(xì)報(bào)告tar處理的文件信息。如無此選項(xiàng),tar不報(bào)告文件信息。(常用) w 每一步都要求確認(rèn)。
z 用gzip來壓縮/解壓縮文件,加上該選項(xiàng)后可以將檔案文件進(jìn)行壓縮,但還原時(shí)也一定要使用該選項(xiàng)進(jìn)行解壓 縮。(常用)
j 用bzip2來壓縮/解壓縮文件,加上該選項(xiàng)后可以將檔案文件進(jìn)行壓縮,但還原時(shí)也一定要使用該選項(xiàng)進(jìn)行解壓 縮。(常用)
要將文件備份到一個(gè)特定的設(shè)備,只需把設(shè)備名作為備份文件名。 打包:
tar cvf dir.tar dir tar xvf dir.tar dir
打gz壓縮包:
tar zcvf dir.tar.gz dir tar zxvf dir.tar.gz
打bz2壓縮包:
tar jcvf dir.tar.bz2 dir tar jxvf dir.tar.bz2
指定目錄解壓縮:
tar zxvf dir.tar.gz -C ~/test7.2 rar
打包:把dir壓縮成newdir.rar
rar a -r newdir dir
解包:把newdir.rar解壓縮到當(dāng)前目錄
unrar x newdir.rar7.3zip
打包:
zip -r dir.zip dir
解包:
unzip dir.zip進(jìn)程管理 8.1 who
查看當(dāng)前在線上的用戶情況。所有的選項(xiàng)都是可選的,不使用任何選項(xiàng)時(shí),who命令將 顯示以下三項(xiàng)內(nèi)容:
login name:登錄用戶名; terminal line:使用終端設(shè)備; login time:登錄到系統(tǒng)的時(shí)間。
sihai@ubuntu:~/demo$ who -uH 名稱 線路 時(shí)間 空閑 進(jìn)程號(hào) 備注 sihai tty2 2014-08-14 13:31 . 6798 sihai tty7 2014-08-14 01:31 舊 2423 sihai pts/1 2014-08-14 01:31 12:00 2843 (:0) sihai pts/3 2014-08-14 10:39 . 2843 (:0)8.2 ps
ps [選項(xiàng)]
ps命令用于監(jiān)控后臺(tái)進(jìn)程的工作情況,因?yàn)楹笈_(tái)進(jìn)程是不和屏幕鍵盤這些標(biāo)準(zhǔn)輸入/輸 出設(shè)備進(jìn)行通信的,所以如果需要檢測其情況,便可以使用ps命令了。選項(xiàng)部分如下:
-e 顯示所有進(jìn)程。
-f 全格式。
-h 不顯示標(biāo)題。
-l 長格式。
-w 寬輸出。
a 顯示終端上的所有進(jìn)程,包括其他用戶的進(jìn)程。 r 只顯示正在運(yùn)行的進(jìn)程。
x 顯示沒有控制終端的進(jìn)程。
這個(gè)命令參數(shù)有很多,但一般的用戶只需掌握一些最常用的命令參數(shù)就可以了。
最常用的三個(gè)參數(shù)是u、a、x, 我們首先以root身份登錄系統(tǒng),查看當(dāng)前進(jìn)程狀況
sihai@ubuntu:~$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 3672 2008 ? Ss 08:46 0:01 /sbin/init sihai@ubuntu:~$ ps ajx PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 4592 6948 6948 4592 pts/3 6948 R+ 1000 0:00 ps ajx sihai@ubuntu:~$ ps -Lf 2423 UID PID PPID LWP C NLWP STIME TTY STAT TIME CMD 1000 2423 2282 2423 0 4 08:46 ? Ssl 0:00 gnome-session --session=ubuntu 1000 2423 2282 2465 0 4 08:46 ? Ssl 0:00 gnome-session --session=ubuntu 1000 2423 2282 2466 0 4 08:46 ? Ssl 0:00 gnome-session --session=ubuntu 1000 2423 2282 2468 0 4 08:46 ? Ssl 0:00 gnome-session --session=ubuntu
Head標(biāo)頭:
USER 用戶名
UID 用戶ID(User ID)
PID 進(jìn)程ID(Process ID)
PPID 父進(jìn)程的進(jìn)程ID(Parent Process id) SID 會(huì)話ID(Session id)
%CPU 進(jìn)程的cpu占用率
%MEM 進(jìn)程的內(nèi)存占用率
VSZ 進(jìn)程所使用的虛存的大小(Virtual Size)
RSS 進(jìn)程使用的駐留集大小或者是實(shí)際內(nèi)存的大小,Kbytes字節(jié)。 TTY 與進(jìn)程關(guān)聯(lián)的終端(tty)
STAT 進(jìn)程的狀態(tài):進(jìn)程狀態(tài)使用字符表示的(STAT的狀態(tài)碼)
R 運(yùn)行 Runnable (on run queue) 正在運(yùn)行或在運(yùn)行隊(duì)列中等待。
S 睡眠 Sleeping 休眠中, 受阻, 在等待某個(gè)條件的形成或接受到信號(hào)。 I 空閑 Idle
Z 僵死 Zombie(a defunct process) 進(jìn)程已終止, 但進(jìn)程描述符存在, 直到父進(jìn)程調(diào)用wait4()系統(tǒng)調(diào) 用后釋放。
D 不可中斷 Uninterruptible sleep (ususally IO) 收到信號(hào)不喚醒和不可運(yùn)行, 進(jìn)程必須等待直到有中 斷發(fā)生。
T 停止 Terminate 進(jìn)程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號(hào)后停止運(yùn)行運(yùn)行。 P 等待交換頁
W 無駐留頁 has no resident pages 沒有足夠的記憶體分頁可分配。 X 死掉的進(jìn)程
< 高優(yōu)先級(jí)進(jìn)程 高優(yōu)先序的進(jìn)程
N 低優(yōu)先 級(jí)進(jìn)程 低優(yōu)先序的進(jìn)程
L 內(nèi)存鎖頁 Lock 有記憶體分頁分配并縮在記憶體內(nèi) s 進(jìn)程的領(lǐng)導(dǎo)者(在它之下有子進(jìn)程);
l 多進(jìn)程的(使用 CLONE_THREAD, 類似 NPTL pthreads)
位于后臺(tái)的進(jìn)程組
START 進(jìn)程啟動(dòng)時(shí)間和日期 TIME 進(jìn)程使用的總cpu時(shí)間
COMMAND 正在執(zhí)行的命令行命令 NI 優(yōu)先級(jí)(Nice)
PRI 進(jìn)程優(yōu)先級(jí)編號(hào)(Priority)
WCHAN 進(jìn)程正在睡眠的內(nèi)核函數(shù)名稱;該函數(shù)的名稱是從/root/system.map文件中獲得的。 FLAGS 與進(jìn)程相關(guān)的數(shù)字標(biāo)識(shí)
fg [job…]
把指定的后臺(tái)作業(yè)或掛起作業(yè)移到前臺(tái)運(yùn)行。 參數(shù)job是一個(gè)或多個(gè)進(jìn)程的PID,或者 是命令名稱,或者是作業(yè)號(hào)(作業(yè)號(hào)前面要帶一個(gè)%號(hào))。
通常在shell中輸入命令啟動(dòng)進(jìn)程后,如果該進(jìn)程需要與用戶交互,那么此后用戶的鍵 盤輸入都被該進(jìn)程讀取,直到該進(jìn)程退出后才出現(xiàn)shell提示符$,這種進(jìn)程為前臺(tái)進(jìn)程。
如果在命令行的末尾加上&字符,則shell為這個(gè)命令創(chuàng)建一個(gè)后臺(tái)進(jìn)程,它雖然也可以 輸出到屏幕,但是不能讀取鍵盤輸入,不管執(zhí)行命令的進(jìn)程有沒有退出都立刻回到shell提 示符接受下一條命令的輸入。如果該進(jìn)程也需要讀取鍵盤輸入,則被掛起等待直到用戶用fg 命令把它變成前臺(tái)進(jìn)程。如果一個(gè)命令需要較長的處理時(shí)間并且不需要與用戶交互,就適合 把它放在后臺(tái)執(zhí)行。
8.5 bgbg [job…]
把被掛起的進(jìn)程提到后臺(tái)執(zhí)行。 其中,job是一個(gè)或多個(gè)進(jìn)程的PID、命令名稱或者作 業(yè)號(hào),在參數(shù)前要帶%號(hào)。
8.6 kill向指定進(jìn)程發(fā)送信號(hào)
kill [ -signal | -s signal ] pid ...
查看信號(hào)編號(hào)
kill -l [ signal ]
給一個(gè)進(jìn)程發(fā)信號(hào),或終止一個(gè)進(jìn)程的運(yùn)行。
kill命令如果不帶參數(shù)而直接跟pid,就是發(fā)給該進(jìn)程SIGTERM信號(hào),大部分進(jìn)程收到該 信號(hào)就會(huì)終止。但是被掛起的進(jìn)程不能處理信號(hào),所以必須發(fā)SIGKILL信號(hào),由系統(tǒng)強(qiáng)制終 止進(jìn)程。
8.7env查看當(dāng)前進(jìn)程環(huán)境變量
$env
vim ~/.bashrc 配置當(dāng)前用戶環(huán)境變量
vim /etc/profile 配置系統(tǒng)環(huán)境變量,配置時(shí)需要有root權(quán)限
用戶管理 9.1 創(chuàng)建用戶sudo useradd -s /bin/bash -g sihai -d /home/sihai -m sihai sudo useradd -s /bin/sh -g group -G adm,root xwp
此命令新建了一個(gè)用戶xwp,該用戶的登錄Shell是/bin/sh,他屬于group用戶組,同時(shí) 又屬于adm和root用戶組,其中g(shù)roup用戶組是其主組。
-s 指定新用戶登陸時(shí)shell類型
-g 指定所屬組,該組必須已經(jīng)存在
-G 指定附屬組,該組必須已經(jīng)存在
-d 用戶家目錄
-m 用戶家目錄不存在時(shí),自動(dòng)創(chuàng)建該目錄
9.2 設(shè)置用戶組sudo groupadd sihai9.3 設(shè)置密碼
sudo passwd sihai9.4 切換用戶
su 用戶名
su sihai9.5 root用戶
變成root用戶
sudo su
設(shè)置root密碼
passwd9.6 刪除用戶
userdel 選項(xiàng) 用戶名
常用的選項(xiàng)是-r,他的作用是把用戶的主目錄一起刪除。 例如:
sudo userdel -r sihai
此命令刪除用戶sihai在系統(tǒng)文件(主要是/etc/passwd,/etc/shadow,/etc/ group等)中的記錄,同時(shí)刪除用戶的主目錄。
網(wǎng)絡(luò)管理 10.1 ifconfig1.查看網(wǎng)卡信息
ifconfig
2.關(guān)閉網(wǎng)卡
sudo ifconfig eth0 down
3.開啟網(wǎng)卡eth0
sudo ifconfig eth0 up
4.給eth0配置臨時(shí)IP
sudo ifconfig eth0 IP10.2ping
ping [選項(xiàng)] 主機(jī)名/IP地址
查看網(wǎng)絡(luò)上的主機(jī)是否在工作。它向該主機(jī)發(fā)送ICMP ECHO_REQUEST包。有時(shí)我們想從網(wǎng)絡(luò)上的某臺(tái)主機(jī)上下載文件,可是又不知道那臺(tái)主機(jī)是否開著,就需要使用ping命令查看。
命令中各選項(xiàng)的含義如下:
-c 數(shù)目 在發(fā)送指定數(shù)目的包后停止。10.3netstat
-d 設(shè)定SO_DEBUG的選項(xiàng)。
-f 大量且快速地送網(wǎng)絡(luò)封包給一臺(tái)機(jī)器,看它的回應(yīng)。
-I 秒數(shù) 設(shè)定間隔幾秒送一個(gè)網(wǎng)絡(luò)封包給一臺(tái)機(jī)器,預(yù)設(shè)值是一秒送一次。
-l 次數(shù) 在指定次數(shù)內(nèi),以最快的方式送封包數(shù)據(jù)到指定機(jī)器(只有超級(jí)用戶可以使用此選項(xiàng))。
-q 不顯示任何傳送封包的信息,只顯示最后的結(jié)果。
-r 不經(jīng)由網(wǎng)關(guān)而直接送封包到一臺(tái)機(jī)器,通常是查看本機(jī)的網(wǎng)絡(luò)接口是否有問題。
-s 字節(jié)數(shù) 指定發(fā)送的數(shù)據(jù)字節(jié)數(shù),預(yù)設(shè)值是56,加上8字節(jié)的ICMP頭,一共是64ICMP數(shù)據(jù)字節(jié)。
netstat [選項(xiàng)]
顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息,可以讓用戶得知目前都有哪些網(wǎng)絡(luò)連接正在運(yùn) 作。命令中各選項(xiàng)的含義如下:
-a 顯示所有socket,包括正在監(jiān)聽的。10.4nslookup
-c 每隔1秒就重新顯示一遍,直到用戶中斷它。
-i 顯示所有網(wǎng)絡(luò)接口的信息,格式同“ifconfig -e”。
-n 以網(wǎng)絡(luò)IP地址代替名稱,顯示出網(wǎng)絡(luò)連接情形。
-r 顯示核心路由表,格式同“route -e”。
-t 顯示TCP協(xié)議的連接情況。
-u 顯示UDP協(xié)議的連接情況。
-v 顯示正在進(jìn)行的工作。
nslookup name
查詢一臺(tái)機(jī)器的IP地址和其對(duì)應(yīng)的域名。它通常需要一臺(tái)域名服務(wù)器來提供域名服務(wù)。 如果用戶已經(jīng)設(shè)置好域名服務(wù)器,就可以用這個(gè)命令查看不同主機(jī)的IP地址對(duì)應(yīng)的域名。
不帶參數(shù)使用nslookup命令時(shí),出現(xiàn)提示符“>”,在后面輸入要查詢的IP地址或域名 并回車即可。如果要退出該命令,輸入exit并回車即可。
sihai@ubuntu:~$ nslookup > www.sihai.cn Server: 127.0.0.1 Address: 127.0.0.1#5310.5 finger
finger [-lmsp] user [user@host …] 查詢用戶的信息,通常會(huì)顯示系統(tǒng)中某個(gè)用 戶的用戶名、主目錄、停滯時(shí)間、登錄時(shí)間、登錄shell等信息。如果要查詢遠(yuǎn)程機(jī)上的用 戶信息,需要在用戶名后面接“@主機(jī)名”,采用[用戶名@主機(jī)名]的格式,不過要查詢的網(wǎng) 絡(luò)主機(jī)需要運(yùn)行finger守護(hù)進(jìn)程。
命令中各選項(xiàng)的含義如下:
-s 顯示用戶的注冊名、實(shí)際姓名、終端名稱、寫狀態(tài)、停滯時(shí)間、登錄時(shí)間等信息。
-l 除了用-s選項(xiàng)顯示的信息外,還顯示用戶主目錄、登錄shell、郵件狀態(tài)等信息,以 及用戶主目錄下的.plan、.project和.forward文件的內(nèi)容。
-p 除了不顯示.plan文件和.project文件以外,與-l選項(xiàng)相同。
sihai@ubuntu:~$ finger sihai Login: sihai Name: sihai Directory: /home/sihai Shell: /bin/bash On since Mon Sep 8 08:55 (CST) on tty7 14 hours 48 minutes idle On since Mon Sep 8 21:57 (CST) on pts/1 from :0 11 minutes 18 seconds idle On since Mon Sep 8 23:12 (CST) on pts/2 from :0 6 seconds idle No mail. No Plan.常用服務(wù)器構(gòu)建 11.1 ftp
1.安裝vsftpd服務(wù)器
sudo apt-get install vsftpd
2.配置vsftpd.conf文件
sudo vi /etc/vsftpd.conf
添加下面設(shè)置
anonymous_enable=YES anon_root=/home/sihai/ftp no_anon_password=YES write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_umask=0022
3.重啟服務(wù)器,重新加載/etc/vsftpd.conf配置文件
ubuntu12.04下 sudo /etc/init.d/vsftpd restart ubuntu14.04下 sudo /lib/init/upstart-job vsftpd restart
4.進(jìn)入你的/home/sihai/ftp目錄下創(chuàng)建一個(gè)空目錄,供用戶上傳
cd ~/ftp mkdir anonymous chmod 777 anonymous
5.測試上傳功能,登陸ftp服務(wù)器,進(jìn)入到anonymous目錄
ftp IP cd anonymous
6.上傳命令,可以把你當(dāng)前目錄下的文件上傳到ftp服務(wù)器的anonymous目錄
put somefile get somefile
Ubuntu 默認(rèn)已經(jīng)安裝ftp客戶端
lftp 也 是 一 種 ftp 客 戶 程 序。 它 是 以 文 本 方 式 操 作 的, 但 是 比 起 圖 形 界 面 更 為 方 便。lftp幾乎具有bash的所有方便功能,Tab 補(bǔ)全,bookmark, queue, 后臺(tái)下載等可以 得到支持。用法與ftp類似,主要的指令如下:
put 上傳文件
mput 上傳多個(gè)文件 get 下載文件
mget 下載多個(gè)文件
mirror 下載整個(gè)目錄及其子目錄 mirror –R 上傳整個(gè)目錄及其子目錄
!command 調(diào)用本地shell執(zhí)行命令command
注意,有的發(fā)行版可能缺省沒有安裝lftp工具,需要用戶自己安裝。如果是Debian或 Ubuntu系統(tǒng),則安裝lftp軟件包。
sudo apt-get install lftp11.2 nfs
1.安裝nfs服務(wù)器
sudo apt-get install nfs-kernel-server
2.設(shè)置/etc/exports配置文件
sudo vi /etc/exports
添加這行配置
/home/用戶名/nfs *(rw,sync,no_root_squash)
3.在用戶目錄下創(chuàng)建nfs目錄
mkdir /home/用戶名/nfs
4.重啟服務(wù)器,重新加載配置文件
sudo /etc/init.d/nfs-kernel-server restart
5.在/home/用戶名/nfs目錄下創(chuàng)建測試文件hello
cd /home/用戶名/nfs touch hello
6.測試服務(wù)器,把服務(wù)器共享目錄nfs掛在到/mnt節(jié)點(diǎn)
sudo mount -t nfs -o nolock -o tcp IP:/home/用戶名/nfs /mnt
7.進(jìn)入/mnt目錄可以看到hello文件,表示構(gòu)建成功
8.卸載網(wǎng)絡(luò)共享目錄
sudo umount /mnt11.3ssh
1.安裝ssh服務(wù)器
sudo apt-get install openssh-server
2.遠(yuǎn)程登陸
ssh 用戶名@IP其它命令 12.1 終端翻頁
Shift-pageup Shift-pagedown12.2 man
看手冊(叫做manual或man page)。每一個(gè)命令和系統(tǒng)函數(shù)都有自己的man page。
man man
man read
查看read命令的man page
man 2 read
查看read系統(tǒng)函數(shù)的man page(在第二個(gè)section中,表示為read(2)) man -k read 以read為關(guān)鍵字查找相關(guān)的man page
12.3 clear清屏。使光標(biāo)和提示符回到屏幕第一行。
快捷鍵:Ctrl-l
12.4 aliasalias [-p] name=value … 將 value 字 符 串 起 個(gè) 別 名 叫 name, 以 后 在 命 令 行 輸 入 name,shell 自 動(dòng) 將 其 解 釋 為value,如果不帶參數(shù)執(zhí)行本命令,或以參數(shù)-p執(zhí)行,則顯示當(dāng)前定義的別名列表。
$ alias alias ls="ls --color=auto" alias rm="rm -i"12.5 echo
echo [-n] 字符串
在顯示器上顯示一段文字,一般起到一個(gè)提示的作用。其中選項(xiàng)n表示輸出文字后不換 行;字符串可以加引號(hào),也可以不加引號(hào)。用echo命令輸出加引號(hào)的字符串時(shí),將字符串原 樣輸出;用echo命令輸出不加引號(hào)的字符串時(shí),將字符串中的各個(gè)單詞作為字符串輸出,各 字符串之間用一個(gè)空格分割。
查看上一個(gè)程序退出數(shù)值,正常情況程序退出值是0
echo $?12.6 date
查看當(dāng)前時(shí)間
12.7 umaskumask [-p] -S [mode]
umask指定用戶創(chuàng)建文件時(shí)的掩碼,其中的mode和chmod的命令中的格式一樣。如果不用 mode參數(shù),則顯示當(dāng)前的umask設(shè)置。如果用-S參數(shù),則以符號(hào)形式顯示設(shè)置。
$ umask 0022 $ umask -S u=rwx,g=rx,o=rx
比如該用戶touch或gedit創(chuàng)建一個(gè)文件,則其默認(rèn)權(quán)限為-rw-r-r–,如果該用戶創(chuàng) 建一個(gè)可執(zhí)行文件(比如編譯生成的程序),則其默認(rèn)權(quán)限為-rwxr-xr-x。也就是說,由于 umask的設(shè)定,創(chuàng)建的文件默認(rèn)是不具有g(shù)的w權(quán)限和o的w權(quán)限的,除非用chmod更改權(quán)限。
12.8 創(chuàng)建終端創(chuàng)建終端標(biāo)簽
Ctrl + Shift + t
切換標(biāo)簽
Alt+n(n=1)
新開終端
Ctrl + Shift + n關(guān)機(jī)重啟
關(guān)機(jī)重啟這些操作都需要有root權(quán)限
13.1 poweroff 13.2 shutdownshutdown -t 秒數(shù) [-rkhncfF] 時(shí)間 [警告訊息]
選項(xiàng):
-t 秒數(shù) : 設(shè)定在切換至不同的runlevel之前, 警告和刪除二訊號(hào)之間的延遲時(shí)間(秒).
-k : 僅送出警告訊息文字, 但不是真的要 shutdown.
-r : shutdown 之後重新開機(jī)
-h : shutdown 之後關(guān)機(jī).
-n : 不經(jīng)過 init , 由 shutdown 指令本身來做關(guān)機(jī)動(dòng)作.(不建議你用)
-f : 重新開機(jī)時(shí), 跳過 fsck 指令, 不檢查檔案系統(tǒng).
-F : 重新開機(jī)時(shí), 強(qiáng)迫做 fsck 檢查.
-c : 將已經(jīng)正在 shutdown 的動(dòng)作取消.
例子:
shutdown -r now 立刻重新開機(jī) shutdown -h now 立刻關(guān)機(jī) shutdown -k now "Hey! Go away! now...." 發(fā)出警告訊息, 但沒有真的關(guān)機(jī) shutdown -t3 -r now 立刻重新開機(jī), 但在警告和刪除processes 之間, 延遲3秒鐘. shutdown -h 10:42 "Hey! Go away!" 10:42 分關(guān)機(jī) shutdown -r 10 "Hey! Go away!" 10 分鐘後關(guān)機(jī) shutdown -c 將剛才下的 shutdown 指令取消,必須切換至其它tty, 登入之後, 才能下此一指令. shutdown now 切換至單人操作模式(不加任何選項(xiàng)時(shí))
注意事項(xiàng):
時(shí)間參數(shù)務(wù)必要加: 不是用 now, 便是用 hh:mm 或 mm now 其實(shí)就是 0 的意思.
uname -a13.5 查看發(fā)行版信息
lsb_release -a13.6 查看空閑內(nèi)存
free -mvim 16.1 vi簡介
vi是“Visual interface”的簡稱,它在Linux上的地位就仿佛Edit程序在DOS上一樣。 它可以執(zhí)行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據(jù)自己的需 要對(duì)其進(jìn)行定制。Vi不是一個(gè)排版程序,它不象Word或WPS那樣可以對(duì)字體、格式、段落等 其他屬性進(jìn)行編排,它只是一個(gè)文本編輯程序。 vi沒有菜單,只有命令,且命令繁多。
Vi有三種基本工作模式:
命令模式
文本輸入模式
末行模式。
任何時(shí)候,不管用戶處于何種模式,只要按一下ESC鍵,即可使Vi進(jìn)入命令模式;我們 在shell環(huán)境(提示符為$)下輸入啟動(dòng)Vi命令,進(jìn)入編輯器時(shí),也是處于該模式下。在該模式 下,用戶可以輸入各種合法的Vi命令,用于管理自己的文檔。此時(shí)從鍵盤上輸入的任何字符 都被當(dāng)做編輯命令來解釋,若輸入的字符是合法的Vi命令,則Vi在接受用戶命令之后完成相 應(yīng)的動(dòng)作。但需注意的是,所輸入的命令并不在屏幕上顯示出來。若輸入的字符不是Vi的合 法命令,Vi會(huì)響鈴報(bào)警。
在命令模式下輸入插入命令i、附加命令a 、打開命令o、修改命令c、取代命令r或替換 命令s都可以進(jìn)入文本輸入模式。在該模式下,用戶輸入的任何字符都被Vi當(dāng)做文件內(nèi)容保 存起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按鍵ESC即可。
末行模式也稱ex轉(zhuǎn)義模式。在命令模式下,用戶按“:”鍵即可進(jìn)入末行模式下,此時(shí) Vi會(huì)在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個(gè)“:”作為末行模式的提示 符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容 寫到文件中等)。末行命令執(zhí)行完后,Vi自動(dòng)回到命令模式。例如:
:sp newfile
則分出一個(gè)窗口編輯newfile文件。如果要從命令模式轉(zhuǎn)換到編輯模式,可以鍵入命令a 或者i;如果需要從文本模式返回,則按Esc鍵即可。在命令模式下輸入“:”即可切換到末 行模式,然后輸入命令。
16.2 vim基礎(chǔ)操作進(jìn)入插入模式:
i: 插入光標(biāo)前一個(gè)字符 I: 插入行首
a: 插入光標(biāo)后一個(gè)字符 A: 插入行未
o: 向下新開一行,插入行首 O: 向上新開一行,插入行首
進(jìn)入命令模式: ESC:從插入模式或末行模式進(jìn)入命令模式 移動(dòng)光標(biāo):
h: 左移 j: 下移 k: 上移 l: 右移
M: 光標(biāo)移動(dòng)到中間行
L: 光標(biāo)移動(dòng)到屏幕最后一行行首 G: 移動(dòng)到指定行,行號(hào) -G
w: 向后一次移動(dòng)一個(gè)字 b: 向前一次移動(dòng)一個(gè)字
{: 按段移動(dòng),上移
}: 按段移動(dòng),下移 Ctr-d: 向下翻半屏 Ctr-u: 向上翻半屏 Ctr-f: 向下翻一屏 Ctr-b: 向上翻一屏
gg: 光標(biāo)移動(dòng)文件開頭 G: 光標(biāo)移動(dòng)到文件末尾
刪除命令:
x: 刪除光標(biāo)后一個(gè)字符,相當(dāng)于 Del
X: 刪除光標(biāo)前一個(gè)字符,相當(dāng)于 Backspace
dd: 刪除光標(biāo)所在行,n dd 刪除指定的行數(shù) D: 刪除光標(biāo)后本行所有內(nèi)容,包含光標(biāo)所在字符 d0: 刪除光標(biāo)前本行所有內(nèi)容,不包含光標(biāo)所在字符
dw: 刪除光標(biāo)開始位置的字,包含光標(biāo)所在字符
撤銷命令:
u: 一步一步撤銷
U: 一次性撤銷當(dāng)前行所作的所有操作 Ctr-r: 反撤銷
重復(fù)命令:
.: 重復(fù)上一次操作的命令
文本行移動(dòng):
: 文本行右移
<<: 文本行左移
復(fù)制粘貼:
yy: 復(fù)制當(dāng)前行,n yy 復(fù)制 n 行
p: 在光標(biāo)所在位置向下新開辟一行,粘貼
可視模式:
v: 按字符移動(dòng),選中文本
V: 按行移動(dòng),選中文本可視模式可以配合 d, y, >>, << 實(shí)現(xiàn)對(duì)文本塊的刪除,復(fù)制,左右移動(dòng)
替換操作:
r: 替換當(dāng)前字符
R: 替換當(dāng)前行光標(biāo)后的字符
查找命令:
/: str查找
n: 下一個(gè)
N:上一個(gè)
替換命令: 把a(bǔ)bc全部替換成123
:%s/abc/123/g
代碼排版:
gg=G: 代碼自動(dòng)縮進(jìn)排版16.3 vim分屏操作
分屏操作:
sp: 上下分屏,后可跟文件名
vsp: 左右分屏,后可跟文件名
Ctr+w+w: 在多個(gè)窗口切換
啟動(dòng)分屏
1.使用大寫O參數(shù)進(jìn)行垂直分屏
$ vim -On file1 file2 ...
2.使用小寫o參數(shù)進(jìn)行水平分屏
$ vim -on file1 file2 ...
注: n是數(shù)字,表示分屏的數(shù)量,n要大于等于文件個(gè)數(shù)
關(guān)閉分屏
1.關(guān)閉當(dāng)前窗口
ctrl+w c
2.關(guān)閉當(dāng)前窗口,如果只剩最后一個(gè),則退出vim
ctrl+w q
編輯中分屏
1.上下分割當(dāng)前打開的文件
ctrl+w s
2.上下分割,并打開一個(gè)新的文件
:sp filename
3.左右分割當(dāng)前打開的文件
ctrl+w v
4.左右分割,并打開一個(gè)新的文件
:vsp filename
分屏編輯中光標(biāo)的移動(dòng) vi中的光標(biāo)鍵是h,j,k,l,要在各個(gè)屏之間切換,只需要先按一下ctrl+w
1.把光標(biāo)移動(dòng)到上邊的屏
ctrl+w k
2.把光標(biāo)移動(dòng)到下邊的屏
ctrl+w j
3.把光標(biāo)移動(dòng)到右邊的屏
ctrl+w l
4.把光標(biāo)移動(dòng)到左邊的屏
ctrl+w h
5.把光標(biāo)移動(dòng)到下一個(gè)的屏
ctrl+w w
移動(dòng)分屏 1.向上移動(dòng)
ctrl+w K
2.向下移動(dòng)
ctrl+w J
3.向右移動(dòng)
ctrl+w L
4.向左移動(dòng)
ctrl+w H
屏幕尺寸
1.增加高度
ctrl+w +
2.減少高度
ctrl+w -
3.讓所有屏的高度一致
ctrl+w =
4.左加寬度
ctrl+w >
5.右加寬度
ctrl+w <
6.右增加n寬 (如:n=30)
ctrl+w n <
文章有不當(dāng)之處,歡迎指正,如果喜歡微信閱讀,你也可以關(guān)注我的微信公眾號(hào):好好學(xué)java,獲取優(yōu)質(zhì)學(xué)習(xí)資源。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/76795.html
摘要:前言由于寫的文章已經(jīng)是有點(diǎn)多了,為了自己和大家的檢索方便,于是我就做了這么一個(gè)博客導(dǎo)航。 前言 由于寫的文章已經(jīng)是有點(diǎn)多了,為了自己和大家的檢索方便,于是我就做了這么一個(gè)博客導(dǎo)航。 由于更新比較頻繁,因此隔一段時(shí)間才會(huì)更新目錄導(dǎo)航哦~想要獲取最新原創(chuàng)的技術(shù)文章歡迎關(guān)注我的公眾號(hào):Java3y Java3y文章目錄導(dǎo)航 Java基礎(chǔ) 泛型就這么簡單 注解就這么簡單 Druid數(shù)據(jù)庫連接池...
摘要:學(xué)習(xí)完多線程之后可以通過下面這些問題檢測自己是否掌握,下面這些問題的答案以及常見多線程知識(shí)點(diǎn)的總結(jié)在這里。可選數(shù)據(jù)結(jié)構(gòu)與算法如果你想進(jìn)入大廠的話,我推薦你在學(xué)習(xí)完基礎(chǔ)或者多線程之后,就開始每天抽出一點(diǎn)時(shí)間來學(xué)習(xí)算法和數(shù)據(jù)結(jié)構(gòu)。 我自己總結(jié)的Java學(xué)習(xí)的系統(tǒng)知識(shí)點(diǎn)以及面試問題,已經(jīng)開源,目前已經(jīng) 35k+ Star。會(huì)一直完善下去,歡迎建議和指導(dǎo),同時(shí)也歡迎Star: https://...
摘要:三性能測試工具官網(wǎng)介紹騰訊開源的的隨身調(diào)測平臺(tái),支持和。官網(wǎng)介紹騰訊游戲部門開發(fā)的移動(dòng)全平臺(tái)性能測試分析工具平臺(tái)。百度的服務(wù)目前主要為收費(fèi)服務(wù)。 隨著移動(dòng)互聯(lián)網(wǎng)的高速發(fā)展,App 應(yīng)用非常火,測試工程師也會(huì)接觸到各種 app 應(yīng)用。除了人工測試之外,也可以通過一些測試工具來提高我們的測試效率...
摘要:實(shí)戰(zhàn)高并發(fā)程序設(shè)計(jì)這本書是目前點(diǎn)評(píng)推薦比較多的書,其特色是案例小,好實(shí)踐代碼有場景,實(shí)用。想要學(xué)習(xí)多線程的朋友,這本書是我大力推薦的,我的個(gè)人博客里面二十多篇的多線程博文都是基于此書,并且在這本書的基礎(chǔ)上進(jìn)行提煉和總結(jié)而寫出來的。 學(xué)習(xí)的最好途徑就是看書,這是我自己學(xué)習(xí)并且小有了一定的積累之后的第一體會(huì)。個(gè)人認(rèn)為看書有兩點(diǎn)好處:showImg(/img/bVr5S5); 1.能出版出...
閱讀 2312·2021-11-17 09:33
閱讀 843·2021-10-13 09:40
閱讀 573·2019-08-30 15:54
閱讀 778·2019-08-29 15:38
閱讀 2417·2019-08-28 18:15
閱讀 2475·2019-08-26 13:38
閱讀 1841·2019-08-26 13:36
閱讀 2129·2019-08-26 11:36