十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
我們平時(shí)所說的 Shell 可以理解為 Linux 系統(tǒng)提供給用戶的使用界面。Shell 為用戶提供了輸入命令和參數(shù)并可得到命令執(zhí)行結(jié)果的環(huán)境。當(dāng)一個(gè)用戶登錄 Linux 之后,系統(tǒng)初始化程序 init 就根據(jù) /etc/passwd 文件中的設(shè)定,為每個(gè)用戶運(yùn)行一個(gè)被稱為 Shell(外殼)的程序。

創(chuàng)新互聯(lián)建站是一家專業(yè)提供瓊海企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為瓊海眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
確切地說,Shell 是一個(gè)命令行解釋器,它為用戶提供了一個(gè)向 Linux 內(nèi)核發(fā)送請求以便運(yùn)行程序的界面系統(tǒng)級程序,用戶可以用 Shell 來啟動(dòng)、掛起、停止甚至編寫一些程序。
Shell 處在內(nèi)核與外層應(yīng)用程序之間,起著協(xié)調(diào)用戶與系統(tǒng)的一致性、在用戶與系統(tǒng)之間進(jìn)行交互的作用。圖 1 是 Linux 系統(tǒng)層次結(jié)構(gòu)圖,Shell 接收用戶輸入的命令,并把用戶的命令從類似 abed 的 ASCII 碼解釋為類似 0101 的機(jī)器語言,然后把命令提交到系統(tǒng)內(nèi)核處理;當(dāng)內(nèi)核處理完畢之后,把處理結(jié)果再通過 Shell 返回給用戶。
換句話說:
Shell 是一個(gè)用 C 語言編寫的程序,它是用戶使用 Linux 的橋梁。Shell 既是一種命令語言,又是一種程序設(shè)計(jì)語言。
Shell 是指一種應(yīng)用程序,這個(gè)應(yīng)用程序提供了一個(gè)界面,用戶通過這個(gè)界面訪問操作系統(tǒng)內(nèi)核的服務(wù)。
Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一個(gè)典型的圖形界面 Shell。
Shell 與其他 Linux 命令一樣,都是實(shí)用程序,但它們之間還是有區(qū)別的。一旦用戶注冊到系統(tǒng)后,Shell 就被系統(tǒng)裝入內(nèi)存并一直運(yùn)行到用戶退出系統(tǒng)為止;而一般命令僅當(dāng)被調(diào)用時(shí),才由系統(tǒng)裝入內(nèi)存執(zhí)行。
與一般命令相比,Shell 除了是一個(gè)命令行解釋器,同時(shí)還是一門功能強(qiáng)大的編程語言,易編寫,易調(diào)試,靈活性較強(qiáng)。作為一種命令級語言,Shell 是解釋性的,組合功能很強(qiáng),與操作系統(tǒng)有密切的關(guān)系,可以在 Shell 腳本中直接使用系統(tǒng)命令。大多數(shù) Linux 系統(tǒng)的啟動(dòng)相關(guān)文件(一般在 /etc/rc.d 目錄下)都是使用 Shell 腳本編寫的。
同傳統(tǒng)的編程語言一樣,Shell 提供了很多特性,這些特性可以使 Shell 腳本編程更為有用,如數(shù)據(jù)變量、參數(shù)傳遞、判斷、流程控制、數(shù)據(jù)輸入和輸出、子程序及中斷處理等。
說了這么多,其實(shí)我們在 Linux 中操作的命令行界面就是 Linux 的 Shell,也就是 Bash,但是我們的圖形界面是 Shell 嗎?其實(shí)從廣義講,圖形界面當(dāng)然也是 Shell,因?yàn)樗瑯佑脕斫邮沼脩舻牟僮?,并傳遞到內(nèi)核進(jìn)行處理。不過,這里的 Shell 主要指的是 Bash。
Shell 腳本
Shell 腳本(shell script),是一種為 shell 編寫的腳本程序。
業(yè)界所說的 shell 通常都是指 shell 腳本,但讀者朋友要知道,shell 和 shell script 是兩個(gè)不同的概念。
由于習(xí)慣的原因,簡潔起見,本文出現(xiàn)的 "shell編程" 都是指 shell 腳本編程,不是指開發(fā) shell 自身。
Shell的分類
目前 Shell 的版本有很多種,如 Bourne Shell、C Shell、Bash、ksh、tcsh 等,它們各有特點(diǎn),下面簡要介紹一下。
最重要的 Shell 是 Bourne Shell,這個(gè)命名是為了紀(jì)念此 Shell 的發(fā)明者 Steven Bourne。從 1979 年起,UNIX 就開始使用 Boume Shell。Bourne Shell 的主文件名為 sh,開發(fā)人員便以 sh 作為 Bourne Shell 的主要識(shí)別名稱。
雖然 Linux 與 UNIX 一樣,可以支持多種 Shell,但 Boume Shell 的重要地位至今仍然沒有改變,許多 UNIX 系統(tǒng)中仍然使用 sh 作為重要的管理工具。它的工作從開機(jī)到關(guān)機(jī),幾乎無所不包。在 Linux 中,用戶 Shell 主要是 Bash,但在啟動(dòng)腳本、編輯等很多工作中仍然使用 Bourne Shell。
C Shell 是廣為流行的 Shell 變種。C Shell 主要在 BSD 版的 UNIX 系統(tǒng)中使用,發(fā)明者是柏克萊大學(xué)的 Bill Joy。C Shell 因?yàn)槠湔Z法和 C 語言類似而得名,這也使得 UNIX 的系統(tǒng)工程師在學(xué)習(xí) C Shell 時(shí)感到相當(dāng)方便。
Bourne Shell 和 C Shell 形成了 Shell 的兩大主流派別,后來的變種大都吸取這兩種 Shell 的特點(diǎn),如 Korn、 tcsh 及 Bash。
Bash Shell 是 GNU 計(jì)劃的重要工具之一,也是 GNU 系統(tǒng)中標(biāo)準(zhǔn)的 Shell。Bash 與 sh 兼容,所以許多早期開發(fā)出來的 Bourne Shell 程序都可以繼續(xù)在 Bash 中運(yùn)行?,F(xiàn)在使用的 Linux 就使用 Bash 作為用戶的基本 Shell。
Bash 于 1988 年發(fā)布,并在 1995-1996年推出Bash 2.0。在這之前,廣為使用的版本是1.14,Bash 2.0增加了許多新的功能,以及具備更好的兼容性。表 2 中詳細(xì)列出了各版本的具體情況。
注意,Shell 的兩種主要語法類型有 Bourne 和 C,這兩種語法彼此不兼容。Boume 家族主要包括 sh、ksh、Bash、psh、zsh;C 家族主要包括 csh、tcsh(Bash 和 zsh 在不同程序上支持 csh 的語法)。
本章講述的腳本編程就是在 Bash 環(huán)境中進(jìn)行的。不過,在 Linux 中除了可以支持 Bash,還可以支持很多其他的 Shell。我們可以通過 /etc/shells 文件來査詢 Linux 支持的 Shell。命令如下:
在 Linux 中,這些 Shell 是可以任意切換的,命令如下:
用戶信息文件 /etc/passwd 的最后一列就是這個(gè)用戶的登錄 Shell。命令如下:
大家可以看到,root 用戶和其他可以登錄系統(tǒng)的普通用戶的登錄 Shell 都是 /bin/bash,也就是 Linux 的標(biāo)準(zhǔn) Shell,所以這些用戶登錄之后可以執(zhí)行權(quán)限允許范圍內(nèi)的所有命令。不過,所有的系統(tǒng)用戶(偽用戶)因?yàn)榈卿?Shell 是 /sbin/ndogin,所以不能登錄系統(tǒng)。
筆記:
sh/bash/csh/Tcsh/ksh/pdksh等shell的區(qū)別
每個(gè)Linux使用者在安裝Linux時(shí)都會(huì)遇到這樣的困境:在為系統(tǒng)分區(qū)時(shí),如何精確評估和分配各個(gè)硬盤分區(qū)的容量,因?yàn)橄到y(tǒng)管理員不但要考慮到當(dāng)前某個(gè)分區(qū)需要的容量,還要預(yù)見該分區(qū)以后可能需要的容量的最大值。如果估計(jì)不準(zhǔn)確,當(dāng)遇到某個(gè)分區(qū)不夠用時(shí)管理員可能甚至要備份整個(gè)系統(tǒng)、清除硬盤、重新對硬盤分區(qū),然后恢復(fù)數(shù)據(jù)到新分區(qū)
邏輯卷管理器LVM(Logicl Volume Manager),通過使用邏輯卷管理器對硬盤存儲(chǔ)設(shè)備進(jìn)行管理,可以實(shí)現(xiàn)硬盤空間的動(dòng)態(tài)劃分和調(diào)整,而且可以將零碎的空間進(jìn)行整合
? 物理卷(PV-Physical Volume)
物理卷在邏輯卷管理中處于最底層,它可以是實(shí)際物理硬盤上的分區(qū),也可以是整個(gè)物理硬盤
? 卷組(VG-Volumne Group)
卷組建立在物理卷之上,一個(gè)卷組中至少要包括一個(gè)物理卷,在卷組建立之后可動(dòng)態(tài)添加物理卷到卷組中。一個(gè)邏輯卷管理系統(tǒng)工程中可以只有一個(gè)卷組,也可以擁有多個(gè)卷組
? 邏輯卷(LV-Logical Volume)
邏輯卷建立在卷組之上,卷中的未分配空間可以用于建立新的邏輯卷,邏輯卷建立后可以動(dòng)態(tài)地?cái)U(kuò)展和縮小空間。系統(tǒng)中的多個(gè)邏輯卷可以屬于同一個(gè)卷組,也可以屬于不同的多個(gè)卷組
邏輯卷管理器和是主分區(qū)還是邏輯分區(qū)沒有關(guān)系
vgdisplay 里的PE Size是指邏輯卷的最小單位。假設(shè)PE Size是4M;比如我向里寫東西。我一個(gè)文件可能只占用1B的容量,但是我先占上4M,其他的也是,不足4M我也先占上4M。等到每個(gè)塊都用了,但是每個(gè)塊都有剩余位置的時(shí)候,會(huì)把每個(gè)區(qū)的剩余位置都拼湊一下,以供使用。但是只要還有沒被占用的塊,都不會(huì)使用用過的塊。邏輯卷大小為這個(gè)PE Size的整數(shù)倍
處在它所在的文件夾的時(shí)候是無法卸載的
我現(xiàn)在想創(chuàng)建兩個(gè)卷組,vg1和vg2。sdc1和sdc2給vg1,sdc3和sdc4給vg2
修改卷組屬性,用來設(shè)置卷組是否處于活動(dòng)狀態(tài),活躍狀態(tài)的時(shí)候卷組無法被刪除,非活動(dòng)狀態(tài)的卷組才能被刪除掉。VG Status:resizable是表示可被調(diào)整大小的狀態(tài)。lvremove時(shí)有可能因?yàn)檫壿嬀砝飽|西過多導(dǎo)致刪除邏輯卷的時(shí)候假刪除,即邏輯卷沒了,但是里面東西還在,這時(shí)卷組覺得它里面還有東西,就會(huì)處于活躍狀態(tài),這時(shí)需要↓
接下來resize1要用來做塊(邏輯卷)的放大,resize2要用來做塊的縮小。設(shè)備放大時(shí)不論是掛載狀態(tài)下或非掛載狀態(tài)下都可以做放大,即在線放大。但是縮小的話設(shè)備要是非掛載的狀態(tài),即離線縮小
df -lh
發(fā)現(xiàn)size大小變小了。之前給的resize1是800M,resize2是784M,這里的大小表示文件系統(tǒng)(filesystem)大?。催@個(gè)設(shè)備能存多少東西),剩下的容量mkfs,掛載的時(shí)候都會(huì)損耗一定的容量大小。文件系統(tǒng)大小不會(huì)隨著塊的變大或縮小而改變,需要手動(dòng)才能改變文件系統(tǒng)大小。
? 放大要先放大塊的大小,再放大文件系統(tǒng)的大小
lvresize -L +200M /dev/vg3/resize1 放大邏輯卷
如果不帶+,會(huì)出現(xiàn)warning,+時(shí)是在原有基礎(chǔ)之上加200M,不加+的話就是將現(xiàn)有邏輯卷的大小調(diào)整成200M。如果比之前設(shè)置的邏輯卷小的話就證明是要將其縮小,會(huì)造成數(shù)據(jù)丟失
resize2fs /dev/vg3/resize1 調(diào)整文件系統(tǒng)大小,但是不會(huì)管你到底是放大還是縮小,就是將文件系統(tǒng)調(diào)整到它可以變大的最大程度
df -lh 看設(shè)備容量變大了
? 縮小的時(shí)候要先將文件系統(tǒng)縮小,再縮小邏輯卷的大小
umount /mnt/rs2/
resize2fs /dev/vg3/resize2 700M
出現(xiàn)提示 [請先輸入e2fsck -f /dev/vg3/resize2 命令],將處于多個(gè)塊當(dāng)中的內(nèi)容整理到一起,以便進(jìn)行縮小。但是也不能百分百保證數(shù)據(jù)不丟失
e2fsck -f /dev/vg3/resize2
resize2fs /dev/vg3/resize2 700M
lvresize -L 700M /dev/vg3/resize2
mount /dev/vg3/resize2 /mnt/rs2/ 重新掛載回來
df -lh 看系統(tǒng)里設(shè)備和文件系統(tǒng)掛載的使用情況
發(fā)現(xiàn)size變小了,縮小成功
1選擇
1.1一個(gè)文件的名字為rr.Z,可以用來解壓縮的命令時(shí)()
tar
gzip
compress
uncompress
1.2可以結(jié)束進(jìn)程命令()
kill
ctrl+c
shutdown
halt
1.3 Linux下對文件進(jìn)行歸檔的命令為:(多選)
dd
tar
zip
unzip
1.4 Linux查當(dāng)前目錄下30天以前的文件并移動(dòng)到/dev/null下的命令:(多選)
find.-mtime 30-type f xargs mv{}/dev/null;
find.-mtime+30-type xargs mv{}/dev/null;
find.-mtime+30-type f-exec mv{}/dev/null;
find.-mtime+30-type f-exec rm–rf{};
1.5 dstat與下面哪個(gè)命令類似
vmstat
sar
iotop
abc
1.6 rpm安裝軟件的參數(shù)
rpm-ivh
rpm-Ivh
rpm-Uvh
rpm-Iuvh
1.7 yum升級軟件包選項(xiàng)
rpm-uvh
rpm-Uvh
1.8查看網(wǎng)絡(luò)流量命令是?
iftop
nsload
ifstatd
以上命令全可以
1.9停止進(jìn)程的命令,除了kill還有誰?
pkill
killa
allkill
以上命令都不正確
1.10服務(wù)器之間傳文件的命令有?
wget
scp
ftp
以上命令都可以
1.11對文件進(jìn)行歸檔的命令為
dd
cpio
gzip
tar
1.12在rpm命令中,安裝新的rpm包軟件使用的參數(shù)是()
-i
-v
-h
-e
1.13du命令中,使用友好的方式顯示信息的參數(shù)是()
-h
-f
-a
-t
1.14將/home/stud1/wang目錄做歸檔壓縮,壓縮后生成wang.tar.gz文件,并將此文件保存到/home目錄下,實(shí)現(xiàn)如此任務(wù)的tar命令格式___
tar zxvf/home/stud1/wang.tar.gz/home/wang
tar xcvf/home/stud1/wang/home/wang
tar zcv/home/stud1/wang/home/wang
tar zcvf/home/stud1/wang/home/wang.tar.gz
1.15終止一個(gè)前臺(tái)進(jìn)程可能用到的命令和操作()A:kill
B:CTRL+C
C:shutdown
D:halt
1.16關(guān)閉Linux系統(tǒng)(不重新啟動(dòng))可使用命令()
A:Ctrl+Alt+Del
B:halt
C:shutdown-r now
D:reboot
1.17下列提法中,不屬于ifconfig命令作用范圍的是__
A:配置本地環(huán)回地址
B:配置網(wǎng)卡的IP地址
C:激活網(wǎng)絡(luò)適配器
D:加載網(wǎng)卡到內(nèi)核中
1.18有關(guān)歸檔和壓縮命令,下面描述正確的是()
A:用uncompress命令解壓縮由compress命令生成地后綴為.zip的壓縮文件
B:upzip命令和gzip命令可以解壓相同類型文件
C:tar歸檔其壓縮的文件可以有g(shù)zip命令解壓縮
D:tar命令歸檔后的文件也是一種壓縮文件
1.19終止一共前臺(tái)進(jìn)程可能用到的命令和操作
kill
ctrl+c
shut down
halt
1.22為了將當(dāng)前目錄下的歸檔文檔myftp,tar解壓縮到/tmp目錄下,用戶可以使用命令
tar xvzf my
tar xvzf my
tar vzf my
tar xvzf my
1.23下面有關(guān)linux查看系統(tǒng)負(fù)載的命令,說法錯(cuò)誤的是?
uptime命令主要用于獲取主機(jī)運(yùn)行時(shí)間和查詢linux系統(tǒng)負(fù)載等信息
vmstat命令可以查看cpu負(fù)載
sar命令可以查看網(wǎng)絡(luò)接口信息
free命令可以查看磁盤負(fù)載情況
1.24以下哪些方式/命令不可以查看某ip是否可達(dá)?
telnet
ping
tracert
top
1.25 tar命令用于解壓的參數(shù)是?-v-x-c-f
1.26下面哪個(gè)命令不是用來查看網(wǎng)絡(luò)故障?
telnet
ping
init
netstat
1.28為了知道誰在正注冊到你的機(jī)器上,可以用命令:___
Who users finger ping
1.29查看本網(wǎng)段其他計(jì)算機(jī)的MAC地址,可先ping對方主機(jī),然后;
arp-g
arp-n
arp-a
arp-d
1.3014日下午2點(diǎn)date+%y%m%d%H%M輸出的時(shí)間是什么
201711141212
1711141212
2017111412
201711021212
1.31以下哪個(gè)命令可以得出1487進(jìn)程的線程運(yùn)行情況()
top-Hp 1487
top-Pp 1487
ps-mp 1487
sat-p 1487
1.32從/home/oracle下搜索一個(gè)日志文件alert.log,以下哪種方式可達(dá)到目的()
find/home./oracle-name alert.log
locate alert.log
find./-mtime 7 alert.log
find/home/oracle-exec alert.log
1.34以下哪些命令可以用來測試網(wǎng)絡(luò)中特定主機(jī)的80端口是否可以訪問()
Ping telnet netstat lsof
2填空
2.1測試網(wǎng)絡(luò)中主機(jī)的連通性用什么命令
2.2如何查看numa是否關(guān)閉_**_
2.3將/home/stud1/wang目錄做歸檔壓縮,壓縮后生成wang.tar.gz文件,并將此文件保存到/home目錄下,實(shí)現(xiàn)如此任務(wù)的tar命令格式_**
2.4某個(gè)進(jìn)程使用端口7001,如何快速找到該進(jìn)程的PID
2.5結(jié)束后臺(tái)進(jìn)程的命令是**_**
2.6將/home/studl/wang目錄做歸檔壓縮,壓縮后生成wang.tar.gz文件,并將此存到/home目錄下,實(shí)現(xiàn)此任務(wù)的tar命令格式******__******
2.7 ping100個(gè)包的命令——
2.8 linux下,解壓縮bz2格式文件的命令是**_**
2.9 linux下,查看網(wǎng)絡(luò)連接狀態(tài)的命令是**___**
2.10Linux查看文件系統(tǒng)的命令為__,顯示目錄或文件占用磁盤的命令為___
2.11通常我們測試網(wǎng)絡(luò)連通性使用的ping命令,它是通過____協(xié)議進(jìn)行工作的
2.12簡述下列命令的各自作用
nslookup
dig
top
traceroute
2.13將/home/stud1/wang目錄做歸檔壓縮,壓縮后生成wang.tar.gz文件,并將此問價(jià)保存到/home目錄下,實(shí)現(xiàn)此任務(wù)的tar命令格****_****
2.14Linux系統(tǒng)查看進(jìn)程數(shù)的命令___
2.15Linux系統(tǒng)查看系統(tǒng)內(nèi)存的命令:____,**__**
2.16Linux系統(tǒng)查看cpu使用率的命令:____,**__**
2.17Linux系統(tǒng)查看硬盤空間使用率的命令:___
2.18Linux系統(tǒng)將某一文件下的所有.log文件進(jìn)行打包壓縮,命令為___
2.19Linux常用的性能監(jiān)控命令是:_、_、_、_、_、_等
2.20假設(shè)output程序可能輸出標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤,請寫出一條命令把這兩者都忽略__
2.21 rpm軟件包安裝命令**_**
3簡答
3.1查看硬盤結(jié)構(gòu)顯示的命令?查看文檔命令?編輯文檔命令?
3.2配置網(wǎng)絡(luò)環(huán)境的命令,手工修改IP,主機(jī)名,DNS和網(wǎng)關(guān)
3.3有壓縮包a.tar.gz,如何解壓該包?如何不解壓該包,如何查看該包的內(nèi)容?
3.4某進(jìn)程abcd在系統(tǒng)中起了很多,數(shù)量難以統(tǒng)計(jì),造成系統(tǒng)負(fù)荷較高,如何一條命令確保將此進(jìn)程全部殺掉
3.5某日志路徑是/data/logs/a.txt,如何跟蹤該日志,以查看當(dāng)時(shí)的運(yùn)行狀態(tài)?
3.6 dmesg命令顯示的是哪方面信息
3.7尋找名稱為mytest.log的文件
3.8寫出du-sh與df-h的區(qū)別
3.9查看當(dāng)前l(fā)inux服務(wù)器是否監(jiān)聽80端口,如果監(jiān)聽,請找出其進(jìn)程ID,并結(jié)束該進(jìn)程。
3.10使用curl或者wget獲取http服務(wù)的header信息。
3.11寫出查看linux系統(tǒng)性能的命令,如cpu、內(nèi)存、流量、io等
3.12解釋下列命令的意思
dd if=/dev/random of=/dev/sda
3.13如何查看占用端口8080的進(jìn)程
3.14查著占用內(nèi)存最多的進(jìn)程
3.15壓縮和解壓縮目錄/opt/gjsy/所有文件命令
3.16Linxu系統(tǒng)下如何查看8080端口上運(yùn)行的程序狀態(tài)
3.17ps aux中的VSZ代表什么意思,RSS代表什么意思?
3.18PING是使用TCP/IP協(xié)議中的**_**協(xié)議
3.19寫出網(wǎng)絡(luò)故障排查常用的命令**__**
3.20寫出你常用的網(wǎng)絡(luò)抓包工具,軟件名稱**__**
3.21將/home/stud1/wang目錄做歸檔壓縮,壓縮后生成wang.tar.gz文件,并將此文件保存到/home目錄下,實(shí)現(xiàn)此任務(wù)的tar命令格式___
3.22解釋該命令的含義:nohup zcat test.gz|grep"x6game"~/log.txt
2/dev/null
3.23查看系統(tǒng)硬件負(fù)載工具或命令有哪些
3.24使用lsof命令查看占用80端口的進(jìn)程
3.25如何使用CURL測試POST接口
3.26怎樣在目錄/home/user/training/下找到擴(kuò)展名為txt的文件
3.27最常用的網(wǎng)絡(luò)測試命令有什么?
3.28ping的測試結(jié)果中都包含哪些部分?
3.29如何找出占用22端口的進(jìn)程及進(jìn)程號(hào)?
3.30如何刪除當(dāng)前目錄(包含字目錄)下所有30天以前創(chuàng)建的文件名后綴為.log的文件
3.31以下一些Linux命令的作用分別是什么?
init 0
chkconfig--level 3 sendmail on
tar-czvf test.tar.gz./
chown-R
ln-s/data/log//var/log/sina_log
umount-f/data0
rpm-ivh baihui.rpm
rpm-qf/bin/ls
3.32LINUX常用命令pwd、top、df、ifconfig、cat分別代表什么含義?
3.33linux常用命令:關(guān)機(jī)、重啟、編輯某文檔文件、刪除某文件、更改操作系統(tǒng)密碼命令分別是什么?
3.34請使用命令:刪除/backup目錄下10天前的普通文件
3.35如何查看服務(wù)器當(dāng)前連接ip的列表
3.36寫出liunx系統(tǒng)中diff、chmod、grep、kill、tar五個(gè)常用命令的功能
3.37簡述tar-cjvf/tmp/test.tar.gz/root命令中錯(cuò)誤及錯(cuò)誤原因
3.38Linux系統(tǒng)從A服務(wù)器測試B服務(wù)器一個(gè)tcp端口是否聯(lián)通使用___
3.39寫一個(gè)腳本查找最后創(chuàng)建時(shí)間使3天前,后綴是*.log的文件并刪除
3.40linux如何根據(jù)進(jìn)程ID查找啟動(dòng)程序的路徑
3.41查看占用swap的進(jìn)程id
3.42列出linux常見打包工具并寫相應(yīng)解壓縮參數(shù)(至少三種)
3.43Linux中鎖定一個(gè)文件用什么命令?他和md5sum有什么區(qū)別?
3.44如何在系統(tǒng)中查找所有所屬用戶為user1的文件
3.45查看某個(gè)文件或者文件夾占用磁盤空間大小的命令
3.46如何查看遠(yuǎn)程linux系統(tǒng)運(yùn)行了多少時(shí)間?我的服務(wù)器內(nèi)存,cpu,硬盤都是多少,系統(tǒng)版本,linux會(huì)優(yōu)先將數(shù)據(jù)緩存到內(nèi)存中,我的機(jī)器真實(shí)內(nèi)存消耗實(shí)際上是多少
3.47查看服務(wù)器當(dāng)前開啟了哪些端口?如何查看某服務(wù)器是否存在IO壓力
3.48如何查看某個(gè)文件system.log被哪些進(jìn)程占用
擴(kuò)展
1.21在退出unix系統(tǒng)賬戶之后還需要繼續(xù)運(yùn)行某個(gè)進(jìn)程,那么可用()
awk sed crontab nohup screen
1.20使用trace命令的目的是()
可用的,十分成功的測試手段
非常基本的測試手段
把IP地址和DNS加入路由表中
在源到目標(biāo)傳輸?shù)倪^程中查找失散點(diǎn)
1.27哪個(gè)變量用來指定一個(gè)遠(yuǎn)程x應(yīng)用程序?qū)⑤敵龇诺侥膫€(gè)x server上
TERM
DISPLAY
ECHO
OUTPUT
1.33P系列服務(wù)器被用做文件服務(wù)器,所有的用戶文件存都放在一非rootvg的文件系統(tǒng)上,用什么方法可以快速備份和恢復(fù)這些數(shù)據(jù)和文件系統(tǒng)的定義()
tar
cpio
savefs
savevg
Linux常用指令
(1)指令名稱:pwd
pwd命令也是最常用最基本的命令之一,用于顯示用戶當(dāng)前所在的目錄。
(2)指令名稱:cd
cd命令不僅顯示當(dāng)前狀態(tài),還改變當(dāng)前狀態(tài),它的用法跟dos下的cd命令基本一致。
cd ..可進(jìn)入上一層目錄
cd -可進(jìn)入上一個(gè)進(jìn)入的目錄
cd ~可進(jìn)入用戶的home目錄
(3)指令名稱:cp
使用方式:
cp [options] source dest
cp [options] source... directory
說明:將一個(gè)檔案拷貝至另一檔案,或?qū)?shù)個(gè)檔案拷貝至另一目錄。
參數(shù) 說明
-a 盡可能將檔案狀態(tài)、權(quán)限等資料都照原狀予以復(fù)制。
-r 若 source 中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地。
-f 若目的地已經(jīng)有相同檔名的檔案存在,則在復(fù)制前先予以刪除再行復(fù)制。
范例:
將檔案 aaa 復(fù)制(已存在),并命名為 bbb :
cp aaa bbb
將所有的C語言程式拷貝至 Finished 子目錄中 :
cp *.c Finished
(4)名稱:mv
使用方式:mv [options] source dest
mv [options] source... directory
說明:將一個(gè)檔案移至另一檔案,或?qū)?shù)個(gè)檔案移至另一目錄。
參數(shù):-i 若目的地已有同名檔案,則先詢問是否覆蓋舊檔。
范例:
將檔案 aaa 更名為 bbb :
mv aaa bbb
將所有的C語言程序移至 Finished 子目錄中 :
mv -i *.c /Finished
(5)指令名稱 : chmod
使用方式 : chmod [-cfvR] [--help] [--version] mode file...
說明 : Linux/Unix 的檔案存取權(quán)限分為三級 : 檔案擁有者、群組、其他。利用 chmod 可以藉以控制檔案如何被他人所存取。
mode : 權(quán)限設(shè)定字串,格式如下 : [ugoa...][+-=][rwxX]...][,...],其中u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬于同一個(gè)群體(group)者,o 表示其他以外的人,a 表示這三者皆是。
+ 表示增加權(quán)限、- 表示取消權(quán)限、= 表示唯一設(shè)定權(quán)限。
r 表示可讀取,w 表示可寫入,x 表示可執(zhí)行,X 表示只有當(dāng)該檔案是個(gè)子目錄或者該檔案已經(jīng)被設(shè)定過為可執(zhí)行。
參數(shù) 說明
-c 若該檔案權(quán)限確實(shí)已經(jīng)更改,才顯示其更改動(dòng)作
-f 若該檔案權(quán)限無法被更改也不要顯示錯(cuò)誤訊息
-v 顯示權(quán)限變更的詳細(xì)資料
-R 對目前目錄下的所有檔案與子目錄進(jìn)行相同的權(quán)限變更(即以遞回的方式逐個(gè)變更)
范例 :將檔案 file1.txt 設(shè)為所有人皆可讀取 :
chmod ugo+r file1.txt
將檔案 file1.txt 設(shè)為所有人皆可讀取 :
chmod a+r file1.txt
將檔案 file1.txt 與 file2.txt 設(shè)為該檔案擁有者,與其所屬同一個(gè)群體者可寫入,但其他以外的人則不可寫入 :
chmod ug+w,o-w file1.txt file2.txt
將 ex1.py 設(shè)定為只有該檔案擁有者可以執(zhí)行 :
chmod u+x ex1.py
將目前目錄下的所有檔案與子目錄皆設(shè)為任何人可讀取 :
chmod -R a+r *
此外chmod也可以用數(shù)字來表示權(quán)限如 chmod 777 file
語法為:chmod abc file
其中a,b,c各為一個(gè)數(shù)字,分別表示User、Group、及Other的權(quán)限。
r=4,w=2,x=1
若要rwx屬性則4+2+1=7;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=7。
范例:
chmod a=rwx file 和 chmod 777 file 效果相同
chmod ug=rwx,o=x file 和 chmod 771 file 效果相同
若用chmod 4755 filename可使此程式具有root的權(quán)限
(6)指令名稱 : ls
使用方式 : ls [-alrtAFR] [name...]
說明 : 顯示指定工作目錄下之內(nèi)容(列出目前工作目錄所含之檔案及子目錄)。
參數(shù) 說明
-a 顯示所有檔案及目錄 (ls內(nèi)定將檔案名或目錄名稱開頭為"."的視為隱藏檔,不會(huì)列出)
-l 除檔案名稱外,亦將檔案型態(tài)、權(quán)限、擁有者、檔案大小等資訊詳細(xì)列出
-r 將檔案以相反次序顯示(原定依英文字母次序)
-t 將檔案依建立時(shí)間之先后次序列出
-A 同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄)
-F 在列出的檔案名稱后加一符號(hào);例如可執(zhí)行檔則加 "*", 目錄則加 "/"
-R 若目錄下有檔案,則以下之檔案亦皆依序列出
范例:
列出目前工作目錄下所有名稱是 s 開頭的檔案,愈新的排愈后面 :
ls -ltr s*
將 /bin 目錄以下所有目錄及檔案詳細(xì)資料列出 :
ls -lR /bin
列出目前工作目錄下所有檔案及目錄;目錄于名稱后加 "/", 可執(zhí)行檔于名稱后加 "*" :
ls -AF
(7)指令名稱:rm
使用方式:rm [options] name...
說明:刪除檔案及目錄。
參數(shù) 說明
-i 刪除前逐一詢問確認(rèn)。
-f 即使原檔案屬性設(shè)為唯讀,亦直接刪除,無需逐一確認(rèn)。
-r 將目錄及以下之檔案亦逐一刪除。
范例:
刪除所有C語言程式檔;刪除前逐一詢問確認(rèn) :
rm -i *.c
將 Finished 子目錄及子目錄中所有檔案刪除 :
rm -r Finished
(8)指令名稱:rmdir
使用方式: rmdir [-p] dirName
說明: 刪除空的目錄。
參數(shù): -p 是當(dāng)子目錄被刪除后使它也成為空目錄的話,則順便一并刪除。
范例:
將工作目錄下,名為 AAA 的子目錄刪除 :
rmdir AAA
在工作目錄下的 BBB 目錄中,刪除名為 Test 的子目錄。若 Test 刪除后,BBB 目錄成為空目錄,則 BBB 亦予刪除。
rmdir -p BBB/Test
(9)指令名稱:touch
使用方式:
touch [-acfm]
[-r reference-file] [--file=reference-file]
[-t MMDDhhmm[CC]YY][.ss]
[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]
[--no-create] [--help] [--version]
file1 [file2 ...]
說明:
touch 指令改變檔案的時(shí)間記錄。 ls -l 可以顯示檔案的時(shí)間記錄。
參數(shù) 說明
a 改變檔案的讀取時(shí)間記錄
m 改變檔案的修改時(shí)間記錄
c 假如目的檔案不存在,不會(huì)建立新的檔案。
f 不使用,是為了與其他 unix 系統(tǒng)的相容性而保留
r 使用參考檔的時(shí)間記錄,與 --file 的效果一樣
d 設(shè)定時(shí)間與日期,可以使用各種不同的格式
t 設(shè)定檔案的時(shí)間記錄,格式與 date 指令相同
范例:
最簡單的使用方式,將檔案的時(shí)候記錄改為現(xiàn)在的時(shí)間。若檔案不存在,系統(tǒng)會(huì)建立一個(gè)新的檔案。
touch file
touch file1 file2
將 file 的時(shí)間記錄改為 5 月 6 日 18 點(diǎn) 3 分,公元兩千年。時(shí)間的格式可以參考 date 指令,至少需輸入 MMDDHHmm ,就是月日時(shí)與分。
touch -c -t 05061803 file
touch -c -t 050618032000 file
將 file 的時(shí)間記錄改變成與 referencefile 一樣。
touch -r referencefile file
將 file 的時(shí)間記錄改成 5 月 6 日 18 點(diǎn) 3 分,公元兩千年。時(shí)間可以使用 am, pm 或是 24 小時(shí)的格式,日期可以使用其他格式如 6 May 2000 。
touch -d "6:03pm" file
touch -d "05/06/2000" file
touch -d "6:03pm 05/06/2000" file
(10)指令名稱:gzip
說明:gzip命令用于壓縮文件。
參數(shù) : -d 將壓縮文件解壓
范例:
如果要將ye.txt文件壓縮,可用如下命令:
gzip ye.txt
這樣就可以壓縮文件并在文件名后面加上gz擴(kuò)展名,變成文件ye.txt.gz。
解壓縮文件可用gzip -d命令實(shí)現(xiàn):
gzip -d ye.txt.gz
這樣就可以解壓縮文件并刪除gz擴(kuò)展名。
(11)指令名稱:tar
說明:tar可以為文件和目錄創(chuàng)建檔案。利用tar,用戶可以為某一特定文件創(chuàng)建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。tar最初被用來在磁帶上創(chuàng)建檔案,現(xiàn)在,用戶可以在任何設(shè)備上創(chuàng)建檔案,如軟盤。利用tar命令,可以把一大堆的文件和目錄全部打包成一個(gè)文件,這對于備份文件或?qū)讉€(gè)文件組合成為一個(gè)文件以便于網(wǎng)絡(luò)傳輸是非常有用的。
參數(shù) 說明
c 創(chuàng)建新的檔案文件。如果用戶想備份一個(gè)目錄或是一些文件,就要選擇這個(gè)選項(xiàng)。
r 把要存檔的文件追加到檔案文件的未尾。例如用戶已經(jīng)作好備份文件,又發(fā)現(xiàn)還有一個(gè)目錄或是一些文件忘記備份了,這時(shí)可以使用該選項(xiàng),將忘記的目錄或文件追加到備份文件中。
t 列出檔案文件的內(nèi)容,查看已經(jīng)備份了哪些文件。
u 更新文件。就是說,用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最后。
x 從檔案文件中釋放文件。
f 使用檔案文件或設(shè)備,這個(gè)選項(xiàng)通常是必選的。
m 在還原文件時(shí),把所有文件的修改時(shí)間設(shè)定為現(xiàn)在。
v 詳細(xì)報(bào)告tar處理的文件信息。如無此選項(xiàng),tar不報(bào)告文件信息。
z 用gzip來壓縮/解壓縮文件,加上該選項(xiàng)后可以將檔案文件進(jìn)行壓縮,但還原時(shí)也一定要使用該選項(xiàng)進(jìn)行解壓縮。
k 保存已經(jīng)存在的文件。例如我們把某個(gè)文件還原,在還原的過程中,遇到相同的文件,不會(huì)進(jìn)行覆蓋。
范例:
可用如下方法建立tar檔案:
tar cvf
例如,如果要將當(dāng)前目錄中所有文件存檔到y(tǒng)e.tar中,可用如下命令:
tar cvf ye.tar *.*
要瀏覽檔案內(nèi)容,將c選項(xiàng)變成t。如果要瀏覽ye.tar檔案中的內(nèi)容,可用如下命令:
tar tvf ye.tar
要取出檔案內(nèi)的內(nèi)容,將c選項(xiàng)變成x。如果要將ye.tar檔案中的內(nèi)容取到當(dāng)前目錄中,可用如下命令:
tar xvf ye.tar
新版的tar可以直接訪問和建立gzip壓縮的tar檔案,只要在tar命令中加上z 選項(xiàng)就可以了。例如:
生成壓縮檔案ye.tar.gz :
tar czvf ye.tar *.txt
顯示壓縮檔案ye.tar.gz的內(nèi)容:
tar tzvf ye.tar *.txt
取出壓縮檔案ye.tar.gz的內(nèi)容:
tar xzvf ye.tar *.txt
(12)指令名稱:mail
使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
說明:
mail 不僅只是一個(gè)指令, mail 還是一個(gè)電子郵件程序。
參數(shù):
s 郵件標(biāo)題
c 郵件地址 (2個(gè)地址以上用,一個(gè)地址不用加此參數(shù))
范例:
①將信件送給一個(gè)或以上的電子郵件地址,由于沒有加入其他的選項(xiàng),使用者必須輸入標(biāo)題與信件的內(nèi)容等。
mail user01@mcs.njnu.edu.cn
系統(tǒng)會(huì)提示輸入“subject”
②將 mail.txt 的內(nèi)容寄給yzhu@mcs.hpc.njnu.edu.cn ,同時(shí)抄送給root@mcs.hpc.njnu.edu.cn
mail -s “標(biāo)題” -c yzhu@mcs.hpc.njnu.edu.cn root@mcs.hpc.njnu.edu.cn mail.txt
接收到的郵件都保存在目錄 /var/spool/mail/用戶名
(13)指令名稱 : wall
使用方式 :
wall [ message ]
使用說明:
wall 會(huì)將訊息傳給每一個(gè) mesg 設(shè)定為 yes 的上線使用者。
例子 :
傳訊息"hi" 給每一個(gè)使用者 :
wall hi