不學(xué)Linux,如何當(dāng)黑客,不學(xué)Linux,永遠(yuǎn)是菜鳥(niǎo),學(xué)了Linux,額,你還是菜鳥(niǎo),以上都是戲言,大家看看笑笑就好了。嘿嘿,不過(guò)Linux給我們帶來(lái)的是一片開(kāi)源的天地,大部分的服務(wù)器都是Linux的。本篇文章看標(biāo)題也知道只是初入Linux,看完本篇文章目的是在于讓大家無(wú)障礙的操作Linux系統(tǒng)。 Linux是一款免費(fèi)的操作系統(tǒng),用戶可以通過(guò)網(wǎng)絡(luò)或其他途徑免費(fèi)獲得,并可以任意修改其源代碼。這是其他的操作系統(tǒng)所做不到的。正是由于這一點(diǎn),來(lái)自全世界的無(wú)數(shù)程序員參與了Linux的修改、編寫(xiě)工作,程序員可以根據(jù)自己的興趣和靈感對(duì)其進(jìn)行改變,這讓Linux吸收了無(wú)數(shù)程序員的精華,不斷壯大。相信大家都用習(xí)慣了windows,那么windows最方便支持就在于它友好的和用戶交互了,所以我也先給大家介紹一下Linux的桌面環(huán)境。 在圖形計(jì)算中,一個(gè)桌面環(huán)境(Desktop environment,有時(shí)稱為桌面管理器)為計(jì)算機(jī)提供一個(gè)圖形用戶界面(GUI)。但嚴(yán)格來(lái)說(shuō)窗口管理器和桌面環(huán)境是有區(qū)別的。桌面環(huán)境就是桌面圖形環(huán)境,它的主要目標(biāo)是為L(zhǎng)inux/Unix操作系統(tǒng)提供一個(gè)更加完備 的界面以及大量各類整合工具和使用 程序,其基本 易用性吸引著大量的新用戶。桌面環(huán)境名稱來(lái)自桌面比擬,對(duì)應(yīng)于早期的文字命令行界面(CLI)。一個(gè)典型的桌面環(huán)境提供圖標(biāo),視窗,工具欄,文件夾,壁紙以及像拖放這樣的能力。整體而言,桌面環(huán)境在設(shè)計(jì)和功能上的特性,賦予了它與眾不同的外觀和感覺(jué)。即GNU網(wǎng)絡(luò)對(duì)象模型環(huán)境 (The GNU Network Object Model Environment),GNU計(jì)劃的一部分,開(kāi)放源碼運(yùn)動(dòng)的一個(gè)重要組成部分。是一種讓使用者容易操作和設(shè)定電腦環(huán)境的工具。 目標(biāo)是基于自由軟件,為Unix或者類Unix操作系統(tǒng)構(gòu)造一個(gè)功能完善、操作簡(jiǎn)單以及界面友好的桌面環(huán)境,他是GNU計(jì)劃的正式桌面。
2、Xfce 即XForms Common Environment,創(chuàng)建于2007年7月,類似于商業(yè)圖形環(huán)境CDE,是一個(gè)運(yùn)行在各類Unix下的輕量級(jí)桌面環(huán)境。原作者Olivier Fourdan最先設(shè)計(jì)XFce是基于XForms三維圖形庫(kù)。Xfce設(shè)計(jì)目的是用來(lái)提高系統(tǒng)的效率,在節(jié)省系統(tǒng)資源的同時(shí),能夠快速加載和執(zhí)行應(yīng)用程序。
3、Fluxbox Fluxbox是一個(gè)基于GNU/Linux的輕量級(jí)圖形操作界面,它雖然沒(méi)有GNOME和KDE那樣精致 ,但由于它的運(yùn)行對(duì)系統(tǒng)資源和配置要求極低,所以它被安裝到很多較舊的或是對(duì)性能要求較高的機(jī)器上,其菜單和有關(guān) 配置被保存于用戶根目錄下的.fluxbox目錄里,這樣使得它的配置極為便利。
4、Enlightenment 是一個(gè)功能強(qiáng)大的窗口管理器,它的目標(biāo)是運(yùn)用 戶輕而易舉地配置所見(jiàn)即所得的桌面圖形界面。現(xiàn)在Enlightenment的界面已經(jīng)相當(dāng)豪華,它擁有像AfterStep一樣的可視化時(shí)鐘以及其它浮華的界面效果,用戶不僅可以任意選擇邊框和動(dòng)感的聲音效果,最有吸引力的是由于它開(kāi)放的設(shè)計(jì)思想,每一個(gè)用戶可以根據(jù)自己的愛(ài)好,任意地配置窗口的邊框、菜單以及屏幕上其它各個(gè)部分,而不須要 接觸源代碼,也不須要 編譯任何程序。 前面的l我們先不管,后面還有9個(gè)字母,代表的就是文件的權(quán)限,從左到右,三個(gè)一組,分別是所有者擁有的權(quán)限,所有者所在用戶組其他用戶擁有的權(quán)限,系統(tǒng)所有用戶對(duì)該文件的權(quán)限。r(Read,讀取):對(duì)文件而言,具有讀取文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō),具有瀏覽目錄的權(quán)w(Write,寫(xiě)入):對(duì)文件而言,具有新增、修改文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō),具有刪除、移動(dòng)目錄內(nèi)文件的權(quán)限。x(eXecute,執(zhí)行):對(duì)文件而言,具有執(zhí)行文件的權(quán)限;對(duì)目錄了來(lái)說(shuō)該用戶具有進(jìn)入目錄的權(quán)限。注:-表示不具有該項(xiàng)權(quán)限。有時(shí)候,字符似乎過(guò)于麻煩,因此還有另外一種方法是以數(shù)字來(lái)表示權(quán)限,而且僅需三個(gè)數(shù)字。很簡(jiǎn)單,比如我們需要給我們自己也就是文件所有者加上執(zhí)行 讀 寫(xiě)權(quán)限,那么就是4 2 1=7,給所有者所在用戶組其他用戶加上寫(xiě)和讀權(quán)限,也就是6,給系統(tǒng)所有用戶加上讀權(quán)限,也就是4。
最后我們使用chmod 所加權(quán)限(三位數(shù)字) 文件 給文件加權(quán)限好,介紹完權(quán)限問(wèn)題,我們?cè)賮?lái)看第一個(gè)字母。第一個(gè)字母代表的就是文件類型。 l :表示這是一個(gè)符號(hào)鏈接文件,實(shí)際上它指向另一個(gè)文件,其實(shí)相當(dāng)于Windows中的快捷方式。下面重點(diǎn)介紹下普通的文件,還有些不常見(jiàn)的系統(tǒng)文件b、c:分別表示區(qū)塊設(shè)備和其他的外圍設(shè)備,是特殊類型的文件。 s、p:這些文件關(guān)系到系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和管道,通常很少見(jiàn)到。純文本文件(Ascii):這是Unix系統(tǒng)中最多的一種文件類型,簡(jiǎn)單的來(lái)說(shuō),我們使用cat命令就能讀取文件內(nèi)容。二進(jìn)制文件(binary):系統(tǒng)其實(shí)僅認(rèn)識(shí)且可以執(zhí)行二進(jìn)制文件(binary file)。Linux中的可執(zhí)行文件(腳本,文本方式的批處理文件不算)就是這種格式的。比如我們的命令cat。數(shù)據(jù)格式的文件(data):有些程序在運(yùn)行過(guò)程中,會(huì)讀取某些特定格式的文件,那些特定格式的文件可以稱為數(shù)據(jù)文件(data file)。舉例來(lái)說(shuō),Linux在用戶登入時(shí),都會(huì)將登錄數(shù)據(jù)記錄在 /var/log/wtmp文件內(nèi),該文件是一個(gè)數(shù)據(jù)文件,它能通過(guò)last命令讀出來(lái)。但使用cat時(shí),會(huì)讀出亂碼。因?yàn)樗菍儆谝环N特殊格式的文件。選項(xiàng):(ps:選項(xiàng)太多,只列舉常用的)-i 查看i節(jié)點(diǎn)(inode文件數(shù)字標(biāo)識(shí))-h 與-l 一起,以易于閱讀的格式輸出文件大小(例如 1K 234M 2G)[root@localhost ~]# cd /home/ #切換到home目錄[root@localhost home]# cd - #返回切換到home前的目錄[root@localhost ~]# cd ../ #切換到上一級(jí)目錄[root@localhost /]# cd ~ #切換當(dāng)前用戶的home目錄選項(xiàng):(ps:選項(xiàng)太多,只列舉常用的)-f 強(qiáng)制復(fù)制(force)-i 互動(dòng)提示(information)例子:(復(fù)制當(dāng)前目錄下ichunqiu到目錄japan)mv-移動(dòng)命令,當(dāng)然還能更名用法:mv [選項(xiàng)]... [-T] 源文件 目標(biāo)文件 或:mv [選項(xiàng)]... 源文件... 目錄 或:mv [選項(xiàng)]... -t 目錄 源文件...將源文件重命名為目標(biāo)文件,或?qū)⒃次募苿?dòng)至指定目錄。例子:(將1.txt移動(dòng)至test目錄下):將當(dāng)前目錄下文件file1更名為file2 -f, --force 強(qiáng)制刪除。忽略不存在的文件,不提示確認(rèn) -r --recursive 遞歸刪除目錄及其內(nèi)容注:刪除空目錄可以用rmdir,rm默認(rèn)不刪除目錄,需要加-r選項(xiàng)。上面我們看見(jiàn)我們的test目錄下好多紅色文件,其實(shí)它們都是deb格式的安裝包,我們現(xiàn)在不需要它們了?,F(xiàn)在就可以使用rm命令來(lái)刪除它們。文件很多啊,所以我們先來(lái)新建一個(gè)文件,用編輯器打開(kāi)文件root@kali:~/test# touch rmfileroot@kali:~/test# leafpad rmfileroot@kali:~/test# chmod x rmfileroot@kali:~/test# ./rmfile可以發(fā)現(xiàn)成功刪除文件,這就是Shell腳本,非常方便,后面會(huì)仔細(xì)介紹。 -b, --number-nonblank 對(duì)非空輸出行編號(hào) -n, --number 對(duì)輸出的所有行編號(hào) -s, --squeeze-blank 不輸出多行空行-f : 鏈結(jié)時(shí)先將與 dist 同檔名的檔案刪除-d : 允許系統(tǒng)管理者硬鏈結(jié)自己的目錄-i : 在刪除與 dist 同檔名的檔案時(shí)先進(jìn)行詢問(wèn)-n : 在進(jìn)行軟連結(jié)時(shí),將 dist 視為一般的檔案-s : 進(jìn)行軟鏈結(jié)(symbolic link)-b : 將在鏈結(jié)時(shí)會(huì)被覆寫(xiě)或刪除的檔案進(jìn)行備份-S SUFFIX : 將備份的檔案都加上 SUFFIX 的字尾注: (1)軟連接:權(quán)限:lrwxrwxrwx 標(biāo)識(shí):--> 源文件(ll 查看時(shí)) 時(shí)間值為創(chuàng)建軟鏈接的時(shí)間(2)硬鏈接:類似copy 同步更新,其詳細(xì)信息與源文件一模一樣(大小、權(quán)限、類型等),但只針對(duì)二進(jìn)制文件,對(duì)目錄不能操作。 (3) 若源文件刪除,硬鏈接依然存在,軟連接則不存在。 (4) 因?yàn)橛叉溄游募c源文件有相同的i節(jié)點(diǎn),所以可以同步更新。 (5) 軟鏈接可跨文件系統(tǒng)生成,硬鏈接不可以(即不可跨分區(qū))。 (6) 硬鏈接只能鏈接文件。例子:(我們創(chuàng)建一個(gè)軟連接hello,連接到ichunqiu文件夾)-exec find命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的其他linux命令。相應(yīng)命令的形式為' 命令 - and' {} \;,注意{ }和\;之間的空格。-ok 和- exec的作用相同,只不過(guò)和會(huì)人交互而已,OK執(zhí)行前會(huì)向你確認(rèn)是不是要執(zhí)行。-perm 按照文件權(quán)限來(lái)查找文件。-prune 使用這一選項(xiàng)可以使find命令不在當(dāng)前指定的目錄中查找,如果同時(shí)使用了- depth選項(xiàng),那么-prune選項(xiàng)將被find命令忽略。-group 按照文件所屬的組來(lái)查找文件。-mtime -n n 按照文件的更改時(shí)間來(lái)查找文件, -n表示文件更改時(shí)間距現(xiàn)在n天以內(nèi), n表示文件更改時(shí)間距現(xiàn)在n天以前。find命令還有-atime和-ctime選項(xiàng),但它們都和-mtime選項(xiàng)相似,所以我們?cè)谶@里只介紹-mtime選項(xiàng)。-nogroup 查找無(wú)有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。-nouser 查找無(wú)有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。-newer file1 ! file2 查找更改時(shí)間比文件file1新但比文件file2舊的文件。-size n[c] 查找文件長(zhǎng)度為n塊的文件,帶有c時(shí)表示文件長(zhǎng)度以字節(jié)計(jì)。-depth 在查找文件時(shí),首先查找當(dāng)前目錄中的文件,然后再在其子目錄中查找。-maxdepth 查找最大目錄層數(shù) 如 1,即只查找一層目錄-fstype 查找位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統(tǒng)中有關(guān)文件系統(tǒng)的信息。-mount 在查找文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)。-follow 如果find命令遇到符號(hào)鏈接文件,就跟蹤至鏈接所指向的文件。-cpio 對(duì)匹配的文件使用cpio命令,將這些文件備份到磁帶設(shè)備中。locate-在mlocate數(shù)據(jù)庫(kù)中搜索條目locate命令其實(shí)是'find -name'的另一種寫(xiě)法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個(gè)數(shù)據(jù)庫(kù)(/var/lib/locatedb),這個(gè)數(shù)據(jù)庫(kù)中含有本地所有文件信息。Linux系統(tǒng)自動(dòng)創(chuàng)建這個(gè)數(shù)據(jù)庫(kù),并且每天自動(dòng)更新一次,所以使用locate命令查不到最新變動(dòng)過(guò)的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動(dòng)更新數(shù)據(jù)庫(kù)。-b, --basename 匹配唯一的路徑名稱的基本文件名-c, --count 只顯示找到條目的號(hào)碼-d, --database DBPATH 用 DBPATH 替代默認(rèn)的數(shù)據(jù)庫(kù)(/var/lib/mlocate/mlocate.db)-e, --existing 只顯示當(dāng)前存在的文件條目-L, --follow 當(dāng)文件存在時(shí)跟隨蔓延的符號(hào)鏈接 (默認(rèn))-i, --ignore-case 匹配模式時(shí)忽略大小寫(xiě)區(qū)別-l, --limit, -n LIMIT 限制為 LIMIT項(xiàng)目的輸出 (或 計(jì)數(shù))-P, --nofollow, -H 當(dāng)檢查文件時(shí)不跟隨蔓延的符號(hào)鏈接-0, --null 輸出時(shí)以 NUL 分隔項(xiàng)目-S, --statistics 不搜索項(xiàng)目,顯示有關(guān)每個(gè)已用數(shù)據(jù)庫(kù)的統(tǒng)計(jì)信息-q, --quiet 不報(bào)告關(guān)于讀取數(shù)據(jù)庫(kù)的錯(cuò)誤消息-r, --regexp REGEXP 搜索基本正則表達(dá)式 REGEXP 來(lái)代替模式 --regex 模式是擴(kuò)展正則表達(dá)式-w, --wholename 匹配完整路徑名 (默認(rèn))whereis命令只能用于程序名的搜索,而且只搜索二進(jìn)制文件(參數(shù)-b)、man說(shuō)明文件(參數(shù)-m)和源代碼文件(參數(shù)-s)。如果省略參數(shù),則返回所有信息。-u 搜索默認(rèn)路徑下除可執(zhí)行文件、源代碼文件、幫助文件以外的其它文件。pwd: /bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gzls: /bin/ls /usr/share/man/man1/ls.1.gzwhich命令的作用是,在PATH變量指定的路徑中,搜索某個(gè)系統(tǒng)命令的位置,并且返回第一個(gè)搜索結(jié)果。也就是說(shuō),使用which命令,就可以看到某個(gè)系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個(gè)位置的命令。-a 查找全部?jī)?nèi)容,而非第一個(gè)文件-n <文件名長(zhǎng)度> 指定文件名長(zhǎng)度,指定的長(zhǎng)度必須大于或等于所有文件中最長(zhǎng)的文件名。 -p <文件名長(zhǎng)度> 與-n參數(shù)相同,但此處的<文件名長(zhǎng)度>包括了文件的路徑。 root@kali:~# which whoami被用于判斷另外一個(gè)命令是否是內(nèi)置命令-t 判斷一個(gè)名字當(dāng)前是否是alias、keyword、function、builtin、file-p 查看一個(gè)外部命令的執(zhí)行路徑ls 是 `ls --color=auto' 的別名root@kali:~# type apt-getapt-get 是 /usr/bin/apt-get我們先介紹了Linux桌面環(huán)境以及Linux文件權(quán)限。然后,我們學(xué)習(xí)了ls、cd、pwd、touch、mkdir、cp、mv、rm、cat、ln等Linux的文件處理命令。最后我們了解find、locate、whereis、which、type等五個(gè)文件搜索命令。
|