01、Linux介紹

一、 Linux介紹

Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIXUNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位64位硬件。Linux繼承了Unix網(wǎng)絡(luò)為核心的設(shè)計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。

Linux操作系統(tǒng)誕生于1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內(nèi)核。Linux可安裝在各種計算機硬件設(shè)備中,比如手機、平板電腦路由器、視頻游戲控制臺、臺式計算機、大型機和超級計算機。

嚴(yán)格來講,Linux這個詞本身只表示Linux內(nèi)核,但實際上人們已經(jīng)習(xí)慣了用Linux來形容整個基于Linux內(nèi)核,并且使用GNU工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)。

二、主要特性

基本思想

Linux的基本思想有兩點:第一,一切都是文件;第二,每個軟件都有確定的用途。其中第一條詳細(xì)來講就是系統(tǒng)中的所有都?xì)w結(jié)為一個文件,包括命令、硬件軟件設(shè)備、操作系統(tǒng)、進(jìn)程等等對于操作系統(tǒng)內(nèi)核而言,都被視為擁有各自特性或類型的文件。至于說Linux是基于Unix的,很大程度上也是因為這兩者的基本思想十分相近。[3]

完全免費

Linux是一款免費的操作系統(tǒng),用戶可以通過網(wǎng)絡(luò)或其他途徑免費獲得,并可以任意修改其源代碼。這是其他的操作系統(tǒng)所做不到的。正是由于這一點,來自全世界的無數(shù)程序員參與了Linux的修改、編寫工作,程序員可以根據(jù)自己的興趣和靈感對其進(jìn)行改變,這讓Linux吸收了無數(shù)程序員的精華,不斷壯大。[4]

完全兼容POSIX1.0標(biāo)準(zhǔn)

這使得可以在Linux下通過相應(yīng)的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉(zhuǎn)到Linux奠定了基礎(chǔ)。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。[4]

多用戶、多任務(wù)

Linux支持多用戶,各個用戶對于自己的文件設(shè)備有自己特殊的權(quán)利,保證了各用戶之間互不影響。多任務(wù)則是現(xiàn)在電腦最主要的一個特點,Linux可以使多個程序同時并獨立地運行。[4]

良好的界面

Linux同時具有字符界面和圖形界面。在字符界面用戶可以通過鍵盤輸入相應(yīng)的指令來進(jìn)行操作。它同時也提供了類似Windows圖形界面的X-Window系統(tǒng),用戶可以使用鼠標(biāo)對其進(jìn)行操作。在X-Window環(huán)境中就和在Windows中相似,可以說是一個Linux版的Windows。[4]

支持多種平臺

Linux可以運行在多種硬件平臺上,如具有x86、680x0、SPARCAlpha處理器的平臺。此外Linux還是一種嵌入式操作系統(tǒng),可以運行在掌上電腦、機頂盒游戲機上。2001年1月份發(fā)布的Linux 2.4版內(nèi)核已經(jīng)能夠完全支持Intel64位芯片架構(gòu)。同時Linux也支持多處理器技術(shù)。多個處理器同時工作,使系統(tǒng)性能大大提高。[4]


三、文件結(jié)構(gòu)

/:根目錄,所有的目錄、文件、設(shè)備都在/之下,/就是Linux文件系統(tǒng)的組織者,也是最上級的領(lǐng)導(dǎo)者。

/bin:bin 就是二進(jìn)制(binary)英文縮寫。在一般的系統(tǒng)當(dāng)中,都可以在這個目錄下找到linux常用的命令。系統(tǒng)所需要的那些命令位于此目錄。

/boot:Linux的內(nèi)核及引導(dǎo)系統(tǒng)程序所需要的文件目錄,比如 vmlinuz initrd.img 文件都位于這個目錄中。在一般情況下,GRUBLILO系統(tǒng)引導(dǎo)管理器也位于這個目錄。

/cdrom:這個目錄在剛剛安裝系統(tǒng)的時候是空的??梢詫⒐怛?qū)文件系統(tǒng)掛在這個目錄下。例如:mount /dev/cdrom /cdrom

/dev:dev 是設(shè)備(device)的英文縮寫。這個目錄對所有的用戶都十分重要。因為在這個目錄中包含了所有l(wèi)inux系統(tǒng)中使用的外部設(shè)備。但是這里并不是放的外部設(shè)備的驅(qū)動程序。這一點和常用的windows,dos操作系統(tǒng)不一樣。它實際上是一個訪問這些外部設(shè)備的端口??梢苑浅7奖愕厝ピL問這些外部設(shè)備,和訪問一個文件,一個目錄沒有任何區(qū)別。

/etc:etc這個目錄是linux系統(tǒng)中最重要的目錄之一。在這個目錄下存放了系統(tǒng)管理時要用到的各種配置文件和子目錄。要用到的網(wǎng)絡(luò)配置文件,文件系統(tǒng),x系統(tǒng)配置文件,設(shè)備配置信息,設(shè)置用戶信息等都在這個目錄下。

/home:如果建立一個用戶,用戶名是"xx",那么在/home目錄下就有一個對應(yīng)的/home/xx路徑,用來存放用戶的主目錄。

/lib:lib是庫(library)英文縮寫。這個目錄是用來存放系統(tǒng)動態(tài)連接共享庫的。幾乎所有的應(yīng)用程序都會用到這個目錄下的共享庫。因此,千萬不要輕易對這個目錄進(jìn)行什么操作,一旦發(fā)生問題,系統(tǒng)就不能工作了。

/lost+found:在ext2或ext3文件系統(tǒng)中,當(dāng)系統(tǒng)意外崩潰或機器意外關(guān)機,而產(chǎn)生一些文件碎片放在這里。當(dāng)系統(tǒng)啟動的過程中fsck工具會檢查這里,并修復(fù)已經(jīng)損壞的文件系統(tǒng)。有時系統(tǒng)發(fā)生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修復(fù),或移到文件到原來的位置上。

/mnt:這個目錄一般是用于存放掛載儲存設(shè)備的掛載目錄的,比如有cdrom等目錄??梢詤⒖?etc/fstab的定義。

/media:有些linux的發(fā)行版使用這個目錄來掛載那些usb接口的移動硬盤(包括U盤)、CD/DVD驅(qū)動器等等。

/opt:這里主要存放那些可選的程序。

/proc:可以在這個目錄下獲取系統(tǒng)信息。這些信息是在內(nèi)存中,由系統(tǒng)自己產(chǎn)生的。

/root:Linux超級權(quán)限用戶root的家目錄。

/sbin:這個目錄是用來存放系統(tǒng)管理員的系統(tǒng)管理程序。大多是涉及系統(tǒng)管理的命令的存放,是超級權(quán)限用戶root的可執(zhí)行命令存放地,普通用戶無權(quán)限執(zhí)行這個目錄下的命令,這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的,凡是目錄sbin中包含的都是root權(quán)限才能執(zhí)行的。

/selinux :對SElinux的一些配置文件目錄,SElinux可以讓linux更加安全。

/srv 服務(wù)啟動后,所需訪問的數(shù)據(jù)目錄,舉個例子來說,www服務(wù)啟動讀取的網(wǎng)頁數(shù)據(jù)就可以放在/srv/www中

/tmp:臨時文件目錄,用來存放不同程序執(zhí)行時產(chǎn)生的臨時文件。有時用戶運行程序的時候,會產(chǎn)生臨時文件。/tmp就用來存放臨時文件的。/var/tmp目錄和這個目錄相似。

/usr

這是linux系統(tǒng)中占用硬盤空間最大的目錄。用戶的很多應(yīng)用程序和文件都存放在這個目錄下。在這個目錄下,可以找到那些不適合放在/bin或/etc目錄下的額外的工具

/usr/local:這里主要存放那些手動安裝的軟件,即不是通過“新立得”或apt-get安裝的軟件。它和/usr目錄具有相類似的目錄結(jié)構(gòu)。讓軟件包管理器來管理/usr目錄,而把自定義的腳本(scripts)放到/usr/local目錄下面、。

/usr/share :系統(tǒng)共用的東西存放地,比如 /usr/share/fonts 是字體目錄,/usr/share/doc和/usr/share/man幫助文件。

/var:這個目錄的內(nèi)容是經(jīng)常變動的,看名字就知道,可以理解為vary的縮寫,/var下有/var/log 這是用來存放系統(tǒng)日志的目錄。/var/ www目錄是定義Apache服務(wù)器站點存放目錄;/var/lib 用來存放一些庫文件,比如MySQL的,以及MySQL數(shù)據(jù)庫的的存放地。




四、常用命令

一。 通用命令:[6]

date :print or set the system date and time

2. stty -a: 可以查看或者打印控制字符(Ctrl-C, Ctrl-D, Ctrl-Z等)

3. passwd: print or set the system date and time (用passwd -h查看)

4. logout, login: 登錄shell的登錄和注銷命令

5. pwd: print working directory

6. more, less, head tail: 顯示或部分顯示文件內(nèi)容.

7. lp/lpstat/cancel, lpr/lpq/lprm: 打印文件.

8. 更改文件權(quán)限: chmod u+x...

9. 刪除非空目錄:rm -fr dir

10.拷貝目錄: cp -R dir

11. fg jobid :可以將一個后臺進(jìn)程放到前臺。

Ctrl-z 可以將前臺進(jìn)程掛起(suspend), 然后可以用bg jobid 讓其到后臺運行。

job & 可以直接讓job直接在后臺運行。

12. kill 的作用: send a signal to a process. eg: kill -9 發(fā)送的是SIG_KILL信號。。。 具體發(fā)送什么信號 可以通過 man kill 查看。

13. ps 的用法, ps -e 或 ps -o pid,ppid,session,tpgid, comm (其中session顯示的sessionid, tpgid顯示前臺進(jìn)程組id, comm顯示命令名稱。)

二 .ubuntu常用命令:[6]

1. dpkg: package manager for Debian

* 安裝: dpkg -i package

* 卸載: dpkg -r package

* 卸載并刪除配置文件: dpkg -P |--purge package

* 如果安裝一個包時。說依賴某些庫。 可以先 apt-get install somelib...

* 查看軟件包安裝內(nèi)容 :dpkg -L package

* 查看文件由哪個軟件包提供: dpkg -S filename

* 另外 dpkg還有 dselect和aptitude 兩個frontend.

2. apt

* 安裝: apt-get install packs

* apt-get update : 更新源

* apt-get upgrade: 升級系統(tǒng)。

* apt-get dist-upgrade: 智能升級。安裝新軟件包,刪除廢棄的軟件包

* apt-get -f install : -f == --fix broken 修復(fù)依賴

* apt-get autoremove: 自動刪除無用的軟件

* apt-get remove packages :刪除軟件

* apt-get remove package --purge 刪除包并清除配置文件

* 清除所以刪除包的殘余配置文件: dpkg -l |grep ^rc|awk '{print $2}' |tr ["/n"] [" "]|sudo xargs dpkg -P

* 安裝軟件時候包的臨時存放目錄 : /var/cache/apt/archives

* 清除該目錄: apt-get clean

* 清除該目錄的舊版本的軟件緩存: apt-get autoclean

* 查詢軟件some的依賴包: apt-cache depends some

* 查詢軟件some被哪些包依賴: apt-get rdepends some

* 搜索軟件: apt-cache search name|regexp

* 查看軟件包的作用:apt-cache show package

* 查看一個軟件的編譯依賴庫: apt-cache showsrc packagename|grep Build-Depends

* 下載軟件的源代碼 : apt-get source packagename (注: sources.list 中應(yīng)該有 deb-src 源)

* 安裝軟件包源碼的同時, 安裝其編譯環(huán)境 :apt-get build-dep packagename (有deb-src源)

* 如何將本地光盤加入安裝源列表: apt-cdrom add

3. 系統(tǒng)命令:

* 查看內(nèi)核版本: uname -a

* 查看ubuntu 版本: cat /etc/issue

* 查看網(wǎng)卡狀態(tài) : ethtool eth0

* 查看內(nèi)存,cpu的信息: cat /proc/meminfo ; cat /proc/cpuinfo

(/proc下面的有很多系統(tǒng)信息)

* 打印文件系統(tǒng)空間使用情況: df -h

* 查看硬盤分區(qū)情況: fdisk -l

* 產(chǎn)看文件大小: du -h filename;

* 查看目錄大?。?du -hs dirname ; du -h dirname是查看目錄下所有文件的大小

* 查看內(nèi)存的使用: free -m|-g|-k

* 查看進(jìn)程: ps -e 或ps -aux -->顯示用戶

* 殺掉進(jìn)程: kill pid

* 強制殺掉: killall -9 processname

4. 網(wǎng)絡(luò)相關(guān):

* 配置 ADSL: sudo pppoeconf

* ADSL手工撥號: sudo pon dsl-provider

* 激活 ADSL : sudo /etc/ppp/pppoe_on_boot

* 斷開 ADSL: sudo poff

* 根據(jù)IP查網(wǎng)卡地址: arping IP地址

* 產(chǎn)看本地網(wǎng)絡(luò)信息(包括ip等): ifconfig | ifconfig eth0

* 查看路由信息: netstat -r

* 關(guān)閉網(wǎng)卡: sudo ifconfig eth0 down

* 啟用網(wǎng)卡: sudo ifconfig eth0 up

* 添加一個服務(wù): sudo update-rc.d 服務(wù)名 defaults 99

* 刪除一個服務(wù): sudo update-rc.d 服務(wù)名 remove

* 臨時重啟一個服務(wù): /etc/init.d/服務(wù)名 restart

* 臨時關(guān)閉一個服務(wù): /etc/init.d/服務(wù)名 stop

* 臨時啟動一個服務(wù): /etc/init.d/服務(wù)名 start

* 控制臺下顯示中文: sudo apt-get install zhcon

* 查找某個文件: whereis filename 或 find 目錄 -name 文件名

*通過ssh傳輸文件

scp -rp /path/filename username@remoteIP:/path #將本地文件拷貝到服務(wù)器上

scp -rp username@remoteIP:/path/filename /path #將遠(yuǎn)程文件從服務(wù)器下載到本地

5. 壓縮:

*解壓縮 a.tar.gz: tar zxvf a.tar.gz

*解壓縮 a.tar.bz2: tar jxvf a.tar.bz2

*壓縮aaa bbb目錄為xxx.tar.gz: tar zcvf xxx.tar.gz aaa bbb

*壓縮aaa bbb目錄為xxx.tar.bz2: tar jcvf xxx.tar.bz2 aaa bbb[6]

6. Nautilus:

特殊 URI 地址

* computer:/// - 全部掛載的設(shè)備和網(wǎng)絡(luò)

* network:/// - 瀏覽可用的網(wǎng)絡(luò)

* burn:/// - 一個刻錄 CDs/DVDs 的數(shù)據(jù)虛擬目錄

* smb:/// - 可用的 windows/samba 網(wǎng)絡(luò)資源

* x-nautilus-desktop:/// - 桌面項目和圖標(biāo)

* file:/// - 本地文件

* trash:/// - 本地回收站目錄

* ftp:// - FTP 文件夾

* ssh:// - SSH 文件夾

* fonts:/// - 字體文件夾,可將字體文件拖到此處以完成安裝

* themes:/// - 系統(tǒng)主題文件夾

* 顯示隱藏文件: Ctrl+h

* 顯示地址欄: Ctrl+l

* 查看已安裝字體: 在nautilus的地址欄里輸入”fonts:///“,就可以查看本機所有的fonts[6]

7.補充部分:

* 查看本地所有的tpc,udp監(jiān)聽端口: netstat -tupln (t=tcp, u=udp, p=program, l=listen, n=numric)

* 通過man搜說相關(guān)命令: man -k keyword . eg: man -k user

* 或者用 apropos

* 統(tǒng)計文件所占用的實際磁盤空間: du (du - estimate file space usage)

* 統(tǒng)計文件中的字符,字節(jié)數(shù): wc -c/-l/-w (wc - print the number of newlines, words, and bytes in files)

* 查看文件的內(nèi)容: od -x/-c/.... (od - dump files in octal and other formats)

我認(rèn)為od最有用的就是文件的字節(jié)流了: od -t x1 filename

查看文件的 Ascii 碼形式: od -t c filename (其中統(tǒng)計信息最左邊的是: 字節(jié)數(shù))

* 查找命令所在文件的位置: which od 輸出: /usr/bin/od

查看該文件由哪個包提供: dpkg -S /usr/bin/od 輸出: coreutils: /usr/bin/od

再查看coreutils包的全部內(nèi)容就知道了linux的核心命令: dpkg -L coreutils

然后 info coreutils 哈哈,認(rèn)真學(xué)吧, 滿世界都是命令!

* 可以用man 命令產(chǎn)看某個命令的所有section 的解釋: man -a tty

然后用q,和next 轉(zhuǎn)換到下一個section的解釋

* bash 的好用的快捷鍵:

ctrl+a:光標(biāo)移到行首。

ctrl+b:光標(biāo)左移一個字母

ctrl+c:殺死當(dāng)前進(jìn)程。

ctrl+d:退出當(dāng)前 Shell。

ctrl+e:光標(biāo)移到行尾。

ctrl+h:刪除光標(biāo)前一個字符,同 backspace 鍵相同。

ctrl+k:清除光標(biāo)后至行尾的內(nèi)容。

ctrl+l:清屏,相當(dāng)于clear。

ctrl+r:搜索之前打過的命令。會有一個提示,根據(jù)你輸入的關(guān)鍵字進(jìn)行搜索bash的history

ctrl+u: 清除光標(biāo)前至行首間的所有內(nèi)容。

ctrl+w: 移除光標(biāo)前的一個單詞

ctrl+t: 交換光標(biāo)位置前的兩個字符

ctrl+y: 粘貼或者恢復(fù)上次的刪除

ctrl+d: 刪除光標(biāo)所在字母;注意和backspace以及ctrl+h的區(qū)別,這2個是刪除光標(biāo)前的字符

ctrl+f: 光標(biāo)右移

ctrl+z : 把當(dāng)前進(jìn)程轉(zhuǎn)到后臺運行,使用’ fg ‘命令恢復(fù)。比如top -d1 然后ctrl+z ,到后臺,然后fg,重新恢復(fù)

* 快速粘貼:先在一個地方選中文字,在欲粘貼的地方按鼠標(biāo) 中鍵 即可。

* 等效中鍵:a 、按下滑輪等效于中鍵。b、同時按下鼠標(biāo) 左右鍵,等效于中鍵。

* 快速重啟X服務(wù): 同時按下: Alt + Ctrl + Backspace 三個鍵。

* 打開"運行"窗口: 同時按下 Alt + F2 鍵。

* 截屏: a、全屏:直接按下 PrtScr 鍵。

b、當(dāng)前窗口:同時按下 Alt + PrtScr 鍵。

c、延時截屏:在 終端 或 "運行"窗口中輸入命令: gnome-screenshot --delay 3 ,將延時 3 秒后截屏。

* 直接將 文件管理器 中的文件拖到 GNOME終端 中就可以在終端中得到完整的路徑名。[6]8.ulimit

ulimit:顯示(或設(shè)置)用戶可以使用的資源的限制(limit),這限制分為軟限制(當(dāng)前限制)和硬限制(上限),其中硬限制是軟限制的上限值,應(yīng)用程序在運行過程中使用的系統(tǒng)資源不超過相應(yīng)的軟限制,任何的超越都導(dǎo)致進(jìn)程的終止。

ulimited 不限制用戶可以使用的資源,但本設(shè)置對可打開的最大文件數(shù)(max open files)

和可同時運行的最大進(jìn)程數(shù)(max user processes)無效

-a 列出所有當(dāng)前資源極限

-c 設(shè)置core文件的最大值.單位:blocks

-d 設(shè)置一個進(jìn)程的數(shù)據(jù)段的最大值.單位:kbytes

-f Shell 創(chuàng)建文件的文件大小的最大值,單位:blocks

-h 指定設(shè)置某個給定資源的硬極限。如果用戶擁有 root 用戶權(quán)限,可以增大硬極限。任何用戶均可減少硬極限

-l 可以鎖住的物理內(nèi)存的最大值

-m 可以使用的常駐內(nèi)存的最大值,單位:kbytes

-n 每個進(jìn)程可以同時打開的最大文件數(shù)

-p 設(shè)置管道的最大值,單位為block,1block=512bytes

-s 指定堆棧的最大值:單位:kbytes

-S 指定為給定的資源設(shè)置軟極限。軟極限可增大到硬極限的值。如果 -H 和 -S 標(biāo)志均未指定,極限適用于以上二者

-t 指定每個進(jìn)程所使用的秒數(shù),單位:seconds

-u 可以運行的最大并發(fā)進(jìn)程數(shù)

-v Shell可使用的最大的虛擬內(nèi)存,單位:kbytes

eg: ulimit -c 1000(可以先通過ulimit -c 查看原來的值)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 100,605評論 9 468
  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 6,319評論 0 10
  • 第一章 1.Linux是一套免費使用和自由傳播的類UNIX操作系統(tǒng),它可以基于Intel x86系列處理器以及Cy...
    yansicing閱讀 5,566評論 0 9
  • 進(jìn)入帶空格的文件或者文件夾 Linux文件權(quán)限詳解 文件和目錄權(quán)限概述 在linux中的每一個文件或目錄都包含有訪...
    annkee閱讀 2,792評論 0 4
  • 重走長征路 暖冬萬里行 第27天 一路雨 一路行 一路愛心 一路微笑…… 雨一直下 山路上行駛 泥濘濕滑 各種急彎...
    寒冰0601閱讀 229評論 0 0

友情鏈接更多精彩內(nèi)容