你是要這幾個(gè)命令的實(shí)現(xiàn)嗎?
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、坡頭ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的坡頭網(wǎng)站制作公司
我以前寫過(guò)一個(gè)pwd的。。。你可以看看
其實(shí)這都是一些系統(tǒng)調(diào)用。。。。。你要搞清楚。。。。好好去看看高編那塊內(nèi)容
以下是pwd命令的實(shí)現(xiàn)代碼:
偽代碼:
pwd
得到.的i-node
得到..的i-node
如果.和..的i-node不同
轉(zhuǎn)到父節(jié)點(diǎn)(chdir)
顯示父目錄的pwd
顯示/,加上.對(duì)應(yīng)的目錄名(鏈接名)
(opendir,readdir,closedir)
否則
結(jié)束,父目錄是/
*/
#include stdio.h
#include dirent.h
#include sys/types.h
#include unistd.h
int main(int argc, const char *argv[])
{
struct dirent *s,*i1,*i2,*i3;
DIR *p;
while(1){
p=opendir(".");
while( (s=readdir(p))!=NULL){
if((strcmp(".",s-d_name)==0))
i1=s;
if((strcmp("..",s-d_name)==0))
i2=s;
}
if(i1-d_ino!=i2-d_ino)
{
chdir("..");
p=opendir(".");
while(i3=readdir(p))
{
if(i3-d_ino==i1-d_ino)
printf("/%s",i3-d_name);
}
}
else
{
printf("/");
break;
}
}
closedir(p);
printf("\n");
return 0;
}
Linux的shell腳本提供了大量方便的工具,如:awk、grep、more、tail、wc等等,方便用戶對(duì)文件、數(shù)據(jù)的分析,但是windows相對(duì)來(lái)說(shuō)就沒(méi)那么方便,要分析一個(gè)數(shù)據(jù)可能需要自己編程、編譯然后才能對(duì)一些數(shù)據(jù)進(jìn)行分析,對(duì)于一些輕量級(jí)的數(shù)據(jù),不如shell腳本好用。 下載cygwin對(duì)應(yīng)于自己windows操作系統(tǒng)的版本:32位或64位 (cygwin是一個(gè)在windows平臺(tái)上運(yùn)行的unix模擬環(huán)境,是cygnus solutions公司開發(fā)的自由軟件) 打開cygwin,就可以看到熟悉的命令行提示了,shell環(huán)境對(duì)應(yīng)的根目錄是軟件的安裝目錄. 開始使用linux命令:grep、awk、less、vi等等,如果發(fā)現(xiàn)有缺少什么命令,重新運(yùn)行setup.exe安裝程序,搜索需求的命令,叉選上即可安裝。
今日分享開始啦,請(qǐng)大家多多指教~
linux 系統(tǒng)中采用了多用戶的管理方式使用系統(tǒng)
默認(rèn)用戶是root,有最高的權(quán)限。(在終端顯示為 #)
普通用戶為:$
在linux系統(tǒng)中沒(méi)有盤符的概念,以樹的形式管理文件
整個(gè)系統(tǒng)的根文件為 /
# 目錄結(jié)構(gòu)
linux系統(tǒng)中命令的使用
在使用linux系統(tǒng)命令的時(shí)候,嚴(yán)格區(qū)分大小寫
使用命令的語(yǔ)法: 命令 [-選項(xiàng)] 參數(shù)
clear 清屏
1.ls命令
ls 顯示文件和目錄列表(list)
常用參數(shù):
-l (long) 長(zhǎng)格式顯示文件和目錄信息
-a (all) 顯示所有文件和目錄(包含隱藏文件和目錄)
-R 遞歸顯示指定目錄下的文件清單,即會(huì)顯示指定目錄分支內(nèi)各子目錄中的文件清單。
ls -R ,會(huì)遞歸顯示目錄下的文件。
查看指定目錄下的文件
ls /(指定目錄) 例如:ls /etc
查看文件和目錄的組合使用命令
例如 ls -la 指定目錄 查看目錄下所有文件并且長(zhǎng)格式展示
2. cd 命令
cd 切換的目錄名
pwd 顯示當(dāng)前所在目錄
cd /root 回家目錄 或者 cd ~ 或者 cd 快速回家
3.常用操作文件命令
4.ls -l 長(zhǎng)格式說(shuō)明
5.網(wǎng)絡(luò)相關(guān)命令
ip addr 查看當(dāng)前服務(wù)器地址
簡(jiǎn)寫: ip a
ping ip地址 測(cè)試網(wǎng)絡(luò)連通性
會(huì)一直ping 。Ctrl+c 結(jié)束
6.壓縮相關(guān)命令
tar 命令
-c 建立一個(gè)壓縮文件的參數(shù)指令(create) 打包 .tar
-x 解開一個(gè)壓縮文件的參數(shù)指令(extract)解壓
-z 是否要用 gzip 壓縮 壓縮 .tar.gz
-v 壓縮過(guò)程中顯示文件(日志)
-f 指定打包名字,f后緊跟名字(必有)
例如: tar -zcvf linux.tar.gz aa.txt bb.txt
tar -zxvf linux.tar.gz
7.centos獨(dú)有 服務(wù)命令
systemctl
8.進(jìn)程相關(guān)
ps 查詢當(dāng)前控制臺(tái)上運(yùn)行的進(jìn)程
動(dòng)態(tài)顯示進(jìn)程 top
殺死進(jìn)程 kill
9.vi 命令
vi /vim 是linux最常用的文本編輯器,功能非常強(qiáng)大。
vi 有三種模式 :
常用命令
10.軟件相關(guān)的命令
rpm 命令 需要有rmp 的安裝包
rpm -ivh gcc-c+ 4.4.7-3.e16.x86_64.rpm
yum命令 [好用,自動(dòng)檢測(cè)依賴下載]
使用yum命令必須連接外部網(wǎng)絡(luò)。
11.用戶和組相關(guān)命令
1.查看當(dāng)前用戶:whoami
查看登錄用戶:who
退出用戶 exit
添加、刪除組賬號(hào):groupadd、groupdel
添加用戶賬號(hào):useradd
設(shè)置用戶名密碼:passwd [用戶名]
su 切換用戶
12.權(quán)限相關(guān)命令
linux 文件有三種權(quán)限,r讀,w寫,x執(zhí)行;r=4,w=2,x=1
chmod
今日份分享已結(jié)束,請(qǐng)大家多多包涵和指點(diǎn)!
如何獲???
轉(zhuǎn)發(fā)分享此文,后臺(tái)私信我:“1”即可獲取。(注:轉(zhuǎn)發(fā)分享,感謝大家)
學(xué)習(xí)Linux系統(tǒng),命令是最基礎(chǔ)的一部分,有著很重要的地位,所以入門必須掌握好常用命令。下面由我為大家整理了Linux系統(tǒng)常用的基本命令入門篇,希望對(duì)大家有幫助!
Linux系統(tǒng)常用的基本命令入門篇一、基礎(chǔ)命令
1.Linu x的進(jìn) 入與退出系統(tǒng)
進(jìn)入Linux系統(tǒng):
必須要輸入用戶的賬號(hào),在系統(tǒng)安裝過(guò)程中可以創(chuàng)建以下兩種帳號(hào):
1.root--超級(jí)用戶帳號(hào)(系統(tǒng)管理員),使用這個(gè)帳號(hào)可以在系統(tǒng)中做任何事情。
2.普通用戶--這個(gè)帳號(hào)供普通用戶使用,可以進(jìn)行有限的操作。
一般的Linux使用者均為普通用戶,而系統(tǒng)管理員一般使用超級(jí)用戶帳號(hào)完成一些系統(tǒng)管理的工作。如果只需要完成一些由普通帳號(hào)就能完成的任務(wù),建議不要使用超級(jí)用戶帳號(hào),以免無(wú)意中破壞系統(tǒng)。影響系統(tǒng)的正常運(yùn)行。
用戶登錄分兩步:第一步,輸入用戶的登錄名,系統(tǒng)根據(jù)該登錄名識(shí)別用戶;第二步,輸入用戶的口令,該口令是用戶自己設(shè)置的一個(gè)字符串,對(duì)其他用戶是保密的,是在登錄時(shí)系統(tǒng)用來(lái)辨別真假用戶的關(guān)鍵字。
當(dāng)用戶正確地輸入用戶名和口令后,就能合法地進(jìn)入系統(tǒng)。屏幕顯示:
[root@loclhost/root] #
這時(shí)就可以對(duì)系統(tǒng)做各種操作了。注意超級(jí)用戶的提示符是ldquo;#rdquo;,其他用戶的提示符是ldquo;$rdquo;。
2.修改口令
為了更好的保護(hù)用戶帳號(hào)的安全,Linux允許用戶隨時(shí)修改自己的口令,修改口令的命令是passwd,它將提示用戶輸入舊口令和新口令,之后還要求用戶再次確認(rèn)新口令,以避免用戶無(wú)意中按錯(cuò)鍵。如果用戶忘記了口令,可以向系統(tǒng)管理員申請(qǐng)為自己重新設(shè)置一個(gè)。
3.虛擬控制臺(tái)
Linux是一個(gè)真正的多用戶 操作系統(tǒng) ,它可以同時(shí)接受多個(gè)用戶登錄。Linux還允許一個(gè)用戶進(jìn)行多次登錄,這是因?yàn)長(zhǎng)inux和UNIX一樣,提供了虛擬控制臺(tái)的訪問(wèn)方式,允許用戶在同一時(shí)間從控制臺(tái)進(jìn)行多次登錄。虛擬控制臺(tái)的選擇可以通過(guò)按下Alt鍵和一個(gè)功能鍵來(lái)實(shí)現(xiàn),通常使用F1-F6例如,用戶登錄后,按一下Alt-F2鍵,用戶又可以看到"login:"提示符,說(shuō)明用戶看到了第二個(gè)虛擬控制臺(tái)。然后只需按Alt-F1鍵,就可以回到第一個(gè)虛擬控制臺(tái)。 一個(gè)新安裝的Linux系統(tǒng)默認(rèn)允許用戶使用Alt-F1到Alt-F6鍵來(lái)訪問(wèn)前六個(gè)虛擬控制臺(tái)。虛擬控制臺(tái)可使用戶同時(shí)在多個(gè)控制臺(tái)上工作,真正體現(xiàn)Linux系統(tǒng)多用戶的特性。用戶可以在某一虛擬控制臺(tái)上進(jìn)行的工作尚未結(jié)束時(shí),切換到另一虛擬控制臺(tái)開始另一項(xiàng)工作。
退出系統(tǒng)
不論是超級(jí)用戶,還是普通用戶,需要退出系統(tǒng)時(shí),在shell提示符下,鍵入exit命令即可。
4.查看命令幫助信息
man命令
man命令用于查詢命令和程序的使用 方法 和參數(shù)。
例如:
man ls
將顯示ls命令的基本格式和使用方法
Linux系統(tǒng)常用的基本命令入門篇二、關(guān)機(jī)重啟命令
首先,是關(guān)機(jī)/重啟命令,僅在虛擬機(jī)時(shí)使用,實(shí)際工作中用不到
reboot 一般不跟參數(shù)使用,輸入指令即可重啟
shutdown 一般需要跟參數(shù),例:
shutdown -r 延時(shí)多少分鐘重啟,一般使用now
shutdown -r now 立即重啟
shutdown -f 強(qiáng)制重啟
跟windows一樣,linux也存在注銷功能
exit
1)halt
halt 可不接參數(shù)
halt -f 強(qiáng)制關(guān)機(jī)
2)poweroff
poweroff 可不接參數(shù)使用
poweroff -f 強(qiáng)制關(guān)機(jī)
3)init 0
4)shutdown 不可單獨(dú)使用
shutdown -h 分鐘數(shù) 延時(shí)多久關(guān)機(jī)
shutdown -h now 立即關(guān)機(jī)
Linux系統(tǒng)常用的基本命令入門篇三、vi編輯
vi命令是UNIX操作系統(tǒng)和類UNIX操作系統(tǒng)中最通用的全屏幕純文本編輯器。
Linux中的vi編輯器叫vim,它是vi的增強(qiáng)版(vi Improved),與vi編輯器完全兼容,而且實(shí)現(xiàn)了很多增強(qiáng)功能。
vi編輯器支持編輯模式和命令模式,編輯模式下可以完成文本的編輯功能,命令模式下可以完成對(duì)文件的操作命令,要正確使用vi編輯器就必須熟練掌握著兩種模式的切換。
默認(rèn)情況下,打開vi編輯器后自動(dòng)進(jìn)入命令模式。從編輯模式切換到命令模式使用ldquo;escrdquo;鍵,從命令模式切換到編輯模式使用ldquo;Ardquo;、ldquo;ardquo;、ldquo;Ordquo;、ldquo;ordquo;、ldquo;Irdquo;、ldquo;irdquo;鍵。
vi編輯器提供了豐富的內(nèi)置命令,有些內(nèi)置命令使用鍵盤組合鍵即可完成,有些內(nèi)置命令則需要以冒號(hào)ldquo;:rdquo;開頭輸入。常用內(nèi)置命令如下:
1 Ctrl+u:向文件首翻半屏;
2 Ctrl+d:向文件尾翻半屏;
3 Ctrl+f:向文件尾翻一屏;
4 Ctrl+b:向文件首翻一屏;
5 Esc:從編輯模式切換到命令模式;
6 ZZ:命令模式下保存當(dāng)前文件所做的修改后退出vi;
7 :行號(hào):光標(biāo)跳轉(zhuǎn)到指定行的行首;
8 :$:光標(biāo)跳轉(zhuǎn)到最后一行的行首;
9 x或X:刪除一個(gè)字符,x刪除光標(biāo)后的,而X刪除光標(biāo)前的;
10 D:刪除從當(dāng)前光標(biāo)到光標(biāo)所在行尾的全部字符;
11 dd:刪除光標(biāo)行正行內(nèi)容;
12 ndd:刪除當(dāng)前行及其后n-1行;
13 nyy:將當(dāng)前行及其下n行的內(nèi)容保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字;
14 p:粘貼文本操作,用于將緩存區(qū)的內(nèi)容粘貼到當(dāng)前光標(biāo)所在位置的下方;
15 P:粘貼文本操作,用于將緩存區(qū)的內(nèi)容粘貼到當(dāng)前光標(biāo)所在位置的上方;
16 /字符串:文本查找操作,用于從當(dāng)前光標(biāo)所在位置開始向文件尾部查找指定字符串的內(nèi)容,查找的字符串會(huì)被加亮顯示;
17 ?name:文本查找操作,用于從當(dāng)前光標(biāo)所在位置開始向文件頭部查找指定字符串的內(nèi)容,查找的字符串會(huì)被加亮顯示;
18 a,bs/F/T:替換文本操作,用于在第a行到第b行之間,將F字符串換成T字符串。其中,ldquo;s/rdquo;表示進(jìn)行替換操作;
19 a:在當(dāng)前字符后添加文本;
20 A:在行末添加文本;
21 i:在當(dāng)前字符前插入文本;
22 I:在行首插入文本;
23 o:在當(dāng)前行后面插入一空行;
24 O:在當(dāng)前行前面插入一空行;
25 :wq:在命令模式下,執(zhí)行存盤退出操作;
26 :w:在命令模式下,執(zhí)行存盤操作;
27 :w!:在命令模式下,執(zhí)行強(qiáng)制存盤操作;
28 :q:在命令模式下,執(zhí)行退出vi操作;
29 :q!:在命令模式下,執(zhí)行強(qiáng)制退出vi操作;
30 :e文件名:在命令模式下,打開并編輯指定名稱的文件;
31 :n:在命令模式下,如果同時(shí)打開多個(gè)文件,則繼續(xù)編輯下一個(gè)文件;
32 :f:在命令模式下,用于顯示當(dāng)前的文件名、光標(biāo)所在行的行號(hào)以及顯示比例;
33 :set nu:在命令模式下,用于在最左端顯示行號(hào);
34 :set nonu:在命令模式下,用于在最左端不顯示行號(hào);
35 :1,3y 復(fù)制第一行到第三行
36 :1,3d 刪除第一行到第三行
37 :1,3s/str/str_new/g 替換第一行到第三行中的字符串
38 :1,3s/str/str_new 替換第一行到第三行中的字符串第一個(gè)字符
39 :1,3 g/str /d 刪除第一行到第三行中含有這個(gè)字符串的行
Linux常用命令一、查詢相關(guān)
find
按規(guī)則查找某個(gè)文件或文件夾,包括子目錄
find . -name '_sh' -- 以.sh結(jié)尾的文件
find . -name '_hannel_ -- 包含channel字符的文件
find . -name 'build_ -- 以build開頭的文件
find . -name 'abc??' -- abc后面有兩個(gè)字符的文件
grep
查找內(nèi)容包含指定的范本樣式的文件,Global Regular Expression Print
grep -n pattern files -- 規(guī)則 -n表示顯示行號(hào)
grep -n 'PostsActivity' AndroidManifest.xmlgrep -n '\d' AndroidManifest.xmlgrep 'aapt' build-channel.xml -- 文件中包含字符串的所有地方
grep -n 'aapt' build-channel.xml -- 文件中包含字符串的所有地方,并顯示行號(hào)
ps -e | grep java -- 所有java進(jìn)程
ps -e | grep -i qq --所有qq進(jìn)程,不區(qū)分大小寫
find . -name '_hannel.xml' | xargs grep -n 'aapt' -- 在以channel.xml結(jié)尾的文件中查找包含lsquo;aaptrsquo;關(guān)鍵字的地方
ls | grep 'channel' -- 包含channel關(guān)鍵字的文件
which
在PATH變量指定的路徑中,搜索某個(gè)系統(tǒng)命令的位置,并且返回第一個(gè)搜索結(jié)果
which zipwhich grep
Linux常用命令二、查看命令
tail
tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File]
從指定點(diǎn)開始將文件寫到標(biāo)準(zhǔn)輸出。使用tail命令的-f選項(xiàng)可以方便的查閱正在改變的日志文件,tail -f filename會(huì)把filename里最尾部的內(nèi)容顯示在屏幕上,并且不斷刷新,使你看到最新的文件內(nèi)容。
tail -f test.log,循環(huán)查看文件內(nèi)容,Ctrl+c來(lái)終止
tail -n 5 test.log,顯示文件最后5行內(nèi)容
tail -n +5 test.log,從第5行開始顯示文件
more
more [-dlfpcsu] [-num] [+/ pattern] [+linenum] [file...]
more命令和cat的功能一樣都是查看文件里的內(nèi)容,但有所不同的是more可以按頁(yè)來(lái)查看文件的內(nèi)容,還支持直接跳轉(zhuǎn)行等功能。
more +3 test.log,顯示文件中從第3行起的內(nèi)容
more -5 test.log,設(shè)定每屏顯示行數(shù)
ls -l | more -5,每頁(yè)顯示5個(gè)文件信息
more +/day3 test.log,查找第一個(gè)出現(xiàn)"day3"字符串的行,并從該處前兩行開始顯示輸出
less
less [options] [file...]
與more命令一樣,less命令也用來(lái)分屏顯示文件的內(nèi)容。但是二者存在差別:less命令允許用戶向前或向后瀏覽文件,而more命令只能向前瀏覽。用less命令顯示文件時(shí),用PageUp鍵向上翻頁(yè),用PageDown鍵向下翻頁(yè)。要退出less程序,應(yīng)按Q鍵。
less test.log,查看文件
ps -ef | less,查看進(jìn)程信息并通過(guò)less分頁(yè)顯示
history | less,查看命令歷史使用記錄并通過(guò)less分頁(yè)顯示
less test1.log test2.log,瀏覽多個(gè)文件,n和p切換文件
watch
watch [options] command
每隔一段時(shí)間重復(fù)運(yùn)行一個(gè)命令,默認(rèn)間隔時(shí)間是2秒。要運(yùn)行的命令直接傳給shell(注意引用和轉(zhuǎn)義特殊字符)。結(jié)果會(huì)展示為全屏模式,這樣你可以很方便的觀察改變
watch -n 60 date,執(zhí)行date命令每分鐘一次,輸入^C 退出
watch -d ls -l,查看目錄變化
watch -d rsquo;ls -l | fgrep joersquo;,想找joe用戶的文件
watch -d 'ls -l|grep scf',監(jiān)測(cè)當(dāng)前目錄中 scf' 的文件的變化
watch -n 10 'cat /proc/loadavg',10秒一次輸出系統(tǒng)的平均負(fù)載
watch -n 1 -d netstat -ant,每隔一秒高亮顯示網(wǎng)絡(luò)鏈接數(shù)的變化
watch -n 1 -d 'pstree | grep http',每隔一秒高亮顯示http鏈接數(shù)的變化
Linux常用命令三、文件相關(guān)
vi
vi file
按i鍵,進(jìn)入編輯模式
按esc鍵,進(jìn)入命令模式
:w 保存文件但不退出vi
:w file 將修改另外保存到file中,不退出vi
:w! 強(qiáng)制保存,不推出vi
:wq 保存文件并退出vi
:wq! 強(qiáng)制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,強(qiáng)制退出vi
:e! 放棄所有修改,從上次保存文件開始再編輯
chmod
change mode,變更文件或目錄的讀、寫、運(yùn)行權(quán)限
chmod [-cfvR] [--help] [--version] mode file...
mode:權(quán)限設(shè)定字串,格式如下 : [ugoa...][[+-=][rw xX ]...][,...]
u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬于同一個(gè)群體(group)者,o 表示其他以外的人,a 表示這三者皆是
+ 表示增加權(quán)限、- 表示取消權(quán)限、= 表示唯一設(shè)定權(quán)限。
r 表示可讀取,w 表示可寫入,x 表示可執(zhí)行,X 表示只有當(dāng)該檔案是個(gè)子目錄或者該檔案已經(jīng)被設(shè)定過(guò)為可執(zhí)行。
chmod也可以用數(shù)字來(lái)表示權(quán)限,語(yǔ)法為:chmod abc file,如chmod 777 file
其中a,b,c各為一個(gè)數(shù)字,分別表示User、Group、及Other的權(quán)限。 r=4,w=2,x=1
chmod 777 file,等同于 chmod a=rwx file
chmod ug=rwx,o=x file,等同于 chmod 771 file
chmod 4755 filename,可使此程序具有root的權(quán)限
ls -l 可以查看列出當(dāng)前用戶的文件權(quán)限
zip
zip -r filename.zip filesdir
zip -r test.zip ./_把當(dāng)前所有文件壓縮到test.zip
zip -r test.zip test,把test文件所有文件及目錄,要是到test.zip
zip -d test.zip test.txt,刪除壓縮文件中test.txt文件
zip -m test.zip ./test.txt,向壓縮文件中test.zip中添加test.txt文件
zip -r test.zip file1 file2 file3 filesdir,處理多個(gè)文件和目錄,空格隔開
unzip
unzip zip-file,解壓到當(dāng)前目錄
unzip -d dst-dir zip-file,解壓到指定的目錄,-d后為指定目錄
unzip -n zip-file,不覆蓋已經(jīng)存在的文件,-n為不要覆蓋原有的文件
unzip -n -d dst-dir zip-file,解壓到指定的目錄,不覆蓋已經(jīng)原有的文件
unzip -o -d dst-dir zip-file,-o不必先詢問(wèn)用戶覆蓋原有文件
unzip -l zip-file,僅查看壓縮文件內(nèi)所包含的文件
tar
tar cvf test.tar test,把test下所有文件和目錄做備份tar czvf test.tar.gz test,把test下所有文件和目錄做備份并進(jìn)行壓縮tar xzvf test.tar.gz,把這個(gè)備份文件還原并解壓縮tar tvf test.tar | more,查看備份文件的內(nèi)容,并以分屏方式顯示在 顯示器 上
tar czvf test.tar.gz test --exclude=test/svn,備份壓縮并排除目錄
touch