Linux是一套免費使用和自由傳播的類Unix作業系統,是一個基于POSIX和UNIX的多使用者、多任務、支援多線程和多CPU的作業系統。它能運作主要的UNIX工具軟體、應用程式和網絡協定。它支援32位和64位硬體。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多使用者網絡作業系統。
Linux作業系統誕生于1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在着許多不同的Linux版本,但它們都使用了Linux核心。Linux可安裝在各種計算機硬體裝置中,比如手機、平闆電腦、路由器、視訊遊戲控制台、台式計算機、大型機和超級計算機。
嚴格來講,Linux這個詞本身隻表示Linux核心,但實際上人們已經習慣了用Linux來形容整個基于Linux核心,并且使用GNU 工程各種工具和資料庫的作業系統。
Linux 作業系統的誕生、發展和成長過程始終依賴着五個重要支柱:UNIX 作業系統、MINIX 作業系統、GNU計劃、POSIX 标準和Internet 網絡。
Linux的基本思想有兩點:第一,一切都是檔案;第二,每個軟體都有确定的用途。其中第一條詳細來講就是系統中的所有都歸結為一個檔案,包括指令、硬體和軟體裝置、作業系統、程序等等對于作業系統核心而言,都被視為擁有各自特性或類型的檔案。至于說Linux是基于Unix的,很大程度上也是因為這兩者的基本思想十分相近。
完全免費
Linux是一款免費的作業系統,使用者可以通過網絡或其他途徑免費獲得,并可以任意修改其源代碼。這是其他的作業系統所做不到的。正是由于這一點,來自全世界的無數程式員參與了Linux的修改、編寫工作,程式員可以根據自己的興趣和靈感對其進行改變,這讓Linux吸收了無數程式員的精華,不斷壯大。
完全相容POSIX1.0标準
這使得可以在Linux下通過相應的模拟器運作常見的DOS、Windows的程式。這為使用者從Windows轉到Linux奠定了基礎。許多使用者在考慮使用Linux時,就想到以前在Windows下常見的程式是否能正常運作,這一點就消除了他們的疑慮。
多使用者、多任務
Linux支援多使用者,各個使用者對于自己的檔案裝置有自己特殊的權利,保證了各使用者之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程式同時并獨立地運作。
良好的界面
Linux同時具有字元界面和圖形界面。在字元界面使用者可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Window系統,使用者可以使用滑鼠對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。
支援多種平台
Linux可以運作在多種硬體平台上,如具有x86、680x0、SPARC、Alpha等處理器的平台。此外Linux還是一種嵌入式作業系統,可以運作在掌上電腦、機頂盒或遊戲機上。2001年1月份釋出的Linux 2.4版核心已經能夠完全支援Intel 64位晶片架構。同時Linux也支援多處理器技術。多個處理器同時工作,使系統性能大大提高。
linux桌面環境
介紹
在圖形計算中,一個桌面環境(Desktop environment,有時稱為桌面管理器)為計算機提供一個圖形使用者界面(GUI)。但嚴格來說視窗管理器和桌面環境是有差別的。桌面環境就是桌面圖形環境,它的主要目标是為Linux/Unix作業系統提供一個更加完備 的界面以及大量各類整合工具和使用 程式,其基本 易用性吸引着大量的新使用者。桌面環境名稱來自桌面比拟,對應于早期的文字指令行界面(CLI)。一個典型的桌面環境提供圖示,視窗,工具欄,檔案夾,桌面以及像拖放這樣的能力。整體而言,桌面環境在設計和功能上的特性,賦予了它與衆不同的外觀和感覺。
種類
現今主流的桌面環境有KDE,gnome,Xfce,LXDE等,除此之外還有Ambient,EDE,IRIX Interactive Desktop,Mezzo,Sugar,CDE等。
gnome
即GNU網絡對象模型環境 (The GNU Network Object Model Environment),GNU計劃的一部分,開放源碼運動的一個重要組成部分。是一種讓使用者容易操作和設定電腦環境的工具。
目标是基于自由軟體,為Unix或者類Unix作業系統構造一個功能完善、操作簡單以及界面友好的桌面環境,他是GNU計劃的正式桌面。
Xfce
即XForms Common Environment,建立于2007年7月,類似于商業圖形環境CDE,是一個運作在各類Unix下的輕量級桌面環境。原作者Olivier Fourdan最先設計XFce是基于XForms三維圖形庫。Xfce設計目的是用來提高系統的效率,在節省系統資源的同時,能夠快速加載和執行應用程式。
Fluxbox
是一個基于GNU/Linux的輕量級圖形操作界面,它雖然沒有GNOME和KDE那樣精緻 ,但由于它的運作對系統資源和配置要求極低,是以它被安裝到很多較舊的或是對性能要求較高的機器上,其菜單和有關 配置被儲存于使用者根目錄下的.fluxbox目錄裡,這樣使得它的配置極為便利。
Enlightenment
是一個功能強大的視窗管理器,它的目标是運用 戶輕而易舉地配置所見即所得的桌面圖形界面。現在Enlightenment的界面已經相當豪華,它擁有像AfterStep一樣的可視化時鐘以及其它浮華的界面效果,使用者不僅可以任意選擇邊框和動感的聲音效果,最有吸引力的是由于它開放的設計思想,每一個使用者可以根據自己的愛好,任意地配置視窗的邊框、菜單以及螢幕上其它各個部分,而不須要 接觸源代碼,也不須要 編譯任何程式。
linux檔案系統
linux檔案類型
普通檔案(regular file):就是一般存取的檔案,由ls -al顯示出來的屬性中,第一個屬性為 [-],例如 [-rwxrwxrwx]。另外,依照檔案的内容,又大緻可以分為:
1、純文字檔案(ASCII):這是Unix系統中最多的一種檔案類型,之是以稱為純文字檔案,是因為内容可以直接讀到的資料,例如數字、字母等等。設 置檔案幾乎都屬于這種檔案類型。舉例來說,使用指令“cat ~/.bashrc”就可以看到該檔案的内容(cat是将檔案内容讀出來)。
2、二進制檔案(binary):系統其實僅認識且可以執行二進制檔案(binary file)。Linux中的可執行檔案(腳本,文本方式的批處理檔案不算)就是這種格式的。舉例來說,指令cat就是一個二進制檔案。
3、資料格式的檔案(data):有些程式在運作過程中,會讀取某些特定格式的檔案,那些特定格式的檔案可以稱為資料檔案(data file)。舉例來說,Linux在使用者登入時,都會将登入資料記錄在 /var/log/wtmp檔案内,該檔案是一個資料檔案,它能通過last指令讀出來。但使用cat時,會讀出亂碼。因為它是屬于一種特殊格式的檔案。
目錄檔案(directory):就是目錄,第一個屬性為 [d],例如 [drwxrwxrwx]。
連接配接檔案(link):類似Windows下面的快捷方式。第一個屬性為 [l],例如 [lrwxrwxrwx]。
裝置與裝置檔案(device):與系統外設及存儲等相關的一些檔案,通常都集中在 /dev目錄。通常又分為兩種:
塊裝置檔案:就是存儲資料以供系統存取的接口裝置,簡單而言就是硬碟。例如一号硬碟的代碼是 /dev/hda1等檔案。第一個屬性為 [b]。
字元裝置檔案:即串行端口的接口裝置,例如鍵盤、滑鼠等等。第一個屬性為 [c]。
套接字(sockets):這類檔案通常用在網絡資料連接配接。可以啟動一個程式來監聽用戶端的要求,用戶端就可以通過套接字來進行資料通信。第一個屬性為 [s],最常在 /var/run目錄中看到這種檔案類型。
管道(FIFO,pipe):FIFO也是一種特殊的檔案類型,它主要的目的是,解決多個程式同時存取一個檔案所造成的錯誤。FIFO是first-in-first-out(先進先出)的縮寫。第一個屬性為 [p]。[5]
linux檔案結構
/:根目錄,所有的目錄、檔案、裝置都在/之下,/就是Linux檔案系統的組織者,也是最上級的上司者。
/bin:bin 就是二進制(binary)英文縮寫。在一般的系統當中,都可以在這個目錄下找到linux常用的指令。系統所需要的那些指令位于此目錄。
/boot:Linux的核心及引導系統程式所需要的檔案目錄,比如 vmlinuz initrd.img 檔案都位于這個目錄中。在一般情況下,GRUB或LILO系統引導管理器也位于這個目錄。
/cdrom:這個目錄在剛剛安裝系統的時候是空的。可以将光驅檔案系統挂在這個目錄下。例如:mount /dev/cdrom /cdrom
/dev:dev 是裝置(device)的英文縮寫。這個目錄對所有的使用者都十分重要。因為在這個目錄中包含了所有linux系統中使用的外部裝置。但是這裡并不是放的外部裝置的驅動程式。這一點和常用的windows,dos作業系統不一樣。它實際上是一個通路這些外部裝置的端口。可以非常友善地去通路這些外部裝置,和通路一個檔案,一個目錄沒有任何差別。
/etc:etc這個目錄是linux系統中最重要的目錄之一。在這個目錄下存放了系統管理時要用到的各種配置檔案和子目錄。要用到的網絡配置檔案,檔案系統,x系統配置檔案,裝置配置資訊,設定使用者資訊等都在這個目錄下。
/home:如果建立一個使用者,使用者名是"xx",那麼在/home目錄下就有一個對應的/home/xx路徑,用來存放使用者的主目錄。
/lib:lib是庫(library)英文縮寫。這個目錄是用來存放系統動态連接配接共享庫的。幾乎所有的應用程式都會用到這個目錄下的共享庫。是以,千萬不要輕易對這個目錄進行什麼操作,一旦發生問題,系統就不能工作了。
/lost+found:在ext2或ext3檔案系統中,當系統意外崩潰或機器意外關機,而産生一些檔案碎片放在這裡。當系統啟動的過程中fsck工具會檢查這裡,并修複已經損壞的檔案系統。有時系統發生問題,有很多的檔案被移到這個目錄中,可能會用手工的方式來修複,或移到檔案到原來的位置上。
/mnt:這個目錄一般是用于存放挂載儲存裝置的挂載目錄的,比如有cdrom等目錄。可以參看/etc/fstab的定義。
/media:有些linux的發行版使用這個目錄來挂載那些usb接口的移動硬碟(包括U盤)、CD/DVD驅動器等等。
/opt:這裡主要存放那些可選的程式。
/proc:可以在這個目錄下擷取系統資訊。這些資訊是在記憶體中,由系統自己産生的。
/root:Linux超級權限使用者root的家目錄。
/sbin:這個目錄是用來存放系統管理者的系統管理程式。大多是涉及系統管理的指令的存放,是超級權限使用者root的可執行指令存放地,普通使用者無權限執行這個目錄下的指令,這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的,凡是目錄sbin中包含的都是root權限才能執行的。
/selinux :對SElinux的一些配置檔案目錄,SElinux可以讓linux更加安全。
/srv 服務啟動後,所需通路的資料目錄,舉個例子來說,www服務啟動讀取的網頁資料就可以放在/srv/www中
/tmp:臨時檔案目錄,用來存放不同程式執行時産生的臨時檔案。有時使用者運作程式的時候,會産生臨時檔案。/tmp就用來存放臨時檔案的。/var/tmp目錄和這個目錄相似。
/usr
這是linux系統中占用硬碟空間最大的目錄。使用者的很多應用程式和檔案都存放在這個目錄下。在這個目錄下,可以找到那些不适合放在/bin或/etc目錄下的額外的工具
/usr/local:這裡主要存放那些手動安裝的軟體,即不是通過“新立得”或apt-get安裝的軟體。它和/usr目錄具有相類似的目錄結構。讓軟體包管理器來管理/usr目錄,而把自定義的腳本(scripts)放到/usr/local目錄下面、。
/usr/share :系統共用的東西存放地,比如 /usr/share/fonts 是字型目錄,/usr/share/doc和/usr/share/man幫助檔案。
/var:這個目錄的内容是經常變動的,看名字就知道,可以了解為vary的縮寫,/var下有/var/log 這是用來存放系統日志的目錄。/var/ www目錄是定義Apache伺服器站點存放目錄;/var/lib 用來存放一些庫檔案,比如MySQL的,以及MySQL資料庫的的存放地。
linux常用指令及技巧
一。 通用指令:
1. 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 or set the system date and time
6. more, less, head tail: 顯示或部分顯示檔案内容.
7. lp/lpstat/cancel, lpr/lpq/lprm: 列印檔案.
8. 更改檔案權限: chmod u+x...
9. 删除非空目錄:rm -fr dir
10.拷貝目錄: cp -R dir
11. fg jobid :可以将一個背景程序放到前台。
Ctrl-z 可以将前台程序挂起(suspend), 然後可以用bg jobid 讓其到背景運作。
job & 可以直接讓job直接在背景運作。
12. kill 的作用: send a signal to a process. eg: kill -9 發送的是SIG_KILL信号。。。 具體發送什麼信号 可以通過 man kill 檢視。
13. ps 的用法, ps -e 或 ps -o pid,ppid,session,tpgid, comm (其中session顯示的sessionid, tpgid顯示前台程序組id, comm顯示指令名稱。)
二 .ubuntu常用指令:
1. dpkg: package manager for Debian
* 安裝: dpkg -i package
* 解除安裝: dpkg -r package
* 解除安裝并删除配置檔案: dpkg -P |--purge package
* 如果安裝一個包時。說依賴某些庫。 可以先 apt-get install somelib...
* 檢視軟體包安裝内容 :dpkg -L package
* 檢視檔案由哪個軟體包提供: dpkg -S filename
* 另外 dpkg還有 dselect和aptitude 兩個frontend.
2. apt
* 安裝: apt-get install packs
* apt-get update : 更新源
* apt-get upgrade: 更新系統。
* apt-get dist-upgrade: 智能更新。安裝新軟體包,删除廢棄的軟體包
* apt-get -f install : -f == --fix broken 修複依賴
* 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 中應該有 deb-src 源)
* 安裝軟體包源碼的同時, 安裝其編譯環境 :apt-get build-dep packagename (有deb-src源)
* 如何将本地CD光牒加入安裝源清單: apt-cdrom add
3. 系統指令:
* 檢視核心版本: uname -a
* 檢視ubuntu 版本: cat /etc/issue
* 檢視網卡狀态 : ethtool eth0
* 檢視記憶體,cpu的資訊: cat /proc/meminfo ; cat /proc/cpuinfo
(/proc下面的有很多系統資訊)
* 列印檔案系統空間使用情況: df -h
* 檢視硬碟分區情況: fdisk -l
* 産看檔案大小: du -h filename;
* 檢視目錄大小: du -hs dirname ; du -h dirname是檢視目錄下所有檔案的大小
* 檢視記憶體的使用: free -m|-g|-k
* 檢視程序: ps -e 或ps -aux -->顯示使用者
* 殺掉程序: kill pid
* 強制殺掉: killall -9 processname
4. 網絡相關:
* 配置 ADSL: sudo pppoeconf
* ADSL手工撥号: sudo pon dsl-provider
* 激活 ADSL : sudo /etc/ppp/pppoe_on_boot
* 斷開 ADSL: sudo poff
* 根據IP查網卡位址: arping IP位址
* 産看本地網絡資訊(包括ip等): ifconfig | ifconfig eth0
* 檢視路由資訊: netstat -r
* 關閉網卡: sudo ifconfig eth0 down
* 啟用網卡: sudo ifconfig eth0 up
* 添加一個服務: sudo update-rc.d 服務名 defaults 99
* 删除一個服務: sudo update-rc.d 服務名 remove
* 臨時重新開機一個服務: /etc/init.d/服務名 restart
* 臨時關閉一個服務: /etc/init.d/服務名 stop
* 臨時啟動一個服務: /etc/init.d/服務名 start
* 控制台下顯示中文: sudo apt-get install zhcon
* 查找某個檔案: whereis filename 或 find 目錄 -name 檔案名
*通過ssh傳輸檔案
scp -rp /path/filename username@remoteIP:/path #将本地檔案拷貝到伺服器上
scp -rp username@remoteIP:/path/filename /path #将遠端檔案從伺服器下載下傳到本地
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:/// - 全部挂載的裝置和網絡
* network:/// - 浏覽可用的網絡
* burn:/// - 一個刻錄 CDs/DVDs 的資料虛拟目錄
* smb:/// - 可用的 windows/samba 網絡資源
* x-nautilus-desktop:/// - 桌面項目和圖示
* file:/// - 本地檔案
* trash:/// - 本地資源回收筒目錄
* ftp:// - FTP 檔案夾
* ssh:// - SSH 檔案夾
* fonts:/// - 字型檔案夾,可将字型檔案拖到此處以完成安裝
* themes:/// - 系統主題檔案夾
* 顯示隐藏檔案: Ctrl+h
* 顯示位址欄: Ctrl+l
* 檢視已安裝字型: 在nautilus的位址欄裡輸入”fonts:///“,就可以檢視本機所有的fonts[6]
7.補充部分:
* 檢視本地所有的tpc,udp監聽端口: netstat -tupln (t=tcp, u=udp, p=program, l=listen, n=numric)
* 通過man搜說相關指令: man -k keyword . eg: man -k user
* 或者用 apropos
* 統計檔案所占用的實際磁盤空間: du (du - estimate file space usage)
* 統計檔案中的字元,位元組數: wc -c/-l/-w (wc - print the number of newlines, words, and bytes in files)
* 檢視檔案的内容: od -x/-c/.... (od - dump files in octal and other formats)
我認為od最有用的就是檔案的位元組流了: od -t x1 filename
檢視檔案的 Ascii 碼形式: od -t c filename (其中統計資訊最左邊的是: 位元組數)
* 查找指令所在檔案的位置: which od 輸出: /usr/bin/od
檢視該檔案由哪個包提供: dpkg -S /usr/bin/od 輸出: coreutils: /usr/bin/od
再檢視coreutils包的全部内容就知道了linux的核心指令: dpkg -L coreutils
然後 info coreutils 哈哈,認真學吧, 滿世界都是指令!
* 可以用man 指令産看某個指令的所有section 的解釋: man -a tty
然後用q,和next 轉換到下一個section的解釋
* bash 的好用的快捷鍵:
ctrl+a:光标移到行首。
ctrl+b:光标左移一個字母
ctrl+c:殺死目前程序。
ctrl+d:退出目前 Shell。
ctrl+e:光标移到行尾。
ctrl+h:删除光标前一個字元,同 backspace 鍵相同。
ctrl+k:清除光标後至行尾的内容。
ctrl+l:清屏,相當于clear。
ctrl+r:搜尋之前打過的指令。會有一個提示,根據你輸入的關鍵字進行搜尋bash的history
ctrl+u: 清除光标前至行首間的所有内容。
ctrl+w: 移除光标前的一個單詞
ctrl+t: 交換光标位置前的兩個字元
ctrl+y: 粘貼或者恢複上次的删除
ctrl+d: 删除光标所在字母;注意和backspace以及ctrl+h的差別,這2個是删除光标前的字元
ctrl+f: 光标右移
ctrl+z : 把目前程序轉到背景運作,使用’ fg ‘指令恢複。比如top -d1 然後ctrl+z ,到背景,然後fg,重新恢複
* 快速粘貼:先在一個地方選中文字,在欲粘貼的地方按滑鼠 中鍵 即可。
* 等效中鍵:a 、按下滑輪等效于中鍵。b、同時按下滑鼠 左右鍵,等效于中鍵。
* 快速重新開機X服務: 同時按下: Alt + Ctrl + Backspace 三個鍵。
* 打開"運作"視窗: 同時按下 Alt + F2 鍵。
* 戴屏: a、全屏:直接按下 PrtScr 鍵。
b、目前視窗:同時按下 Alt + PrtScr 鍵。
c、延時戴屏:在 終端 或 "運作"視窗中輸入指令: gnome-screenshot --delay 3 ,将延時 3 秒後戴屏。
* 直接将 檔案管理器 中的檔案拖到 GNOME終端 中就可以在終端中得到完整的路徑名。[6] 8.ulimit
ulimit:顯示(或設定)使用者可以使用的資源的限制(limit),這限制分為軟限制(目前限制)和硬限制(上限),其中硬限制是軟限制的上限值,應用程式在運作過程中使用的系統資源不超過相應的軟限制,任何的超越都導緻程序的終止。
ulimited 不限制使用者可以使用的資源,但本設定對可打開的最大檔案數(max open files)
和可同時運作的最大程序數(max user processes)無效
-a 列出所有目前資源極限
-c 設定core檔案的最大值.機關:blocks
-d 設定一個程序的資料段的最大值.機關:kbytes
-f Shell 建立檔案的檔案大小的最大值,機關:blocks
-h 指定設定某個給定資源的硬極限。如果使用者擁有 root 使用者權限,可以增大硬極限。任何使用者均可減少硬極限
-l 可以鎖住的實體記憶體的最大值
-m 可以使用的常駐記憶體的最大值,機關:kbytes
-n 每個程序可以同時打開的最大檔案數
-p 設定管道的最大值,機關為block,1block=512bytes
-s 指定堆棧的最大值:機關:kbytes
-S 指定為給定的資源設定軟極限。軟極限可增大到硬極限的值。如果 -H 和 -S 标志均未指定,極限适用于以上二者
-t 指定每個程序所使用的秒數,機關:seconds
-u 可以運作的最大并發程序數
-v Shell可使用的最大的虛拟記憶體,機關:kbytes
eg: ulimit -c 1000(可以先通過ulimit -c 檢視原來的值)
關注90後夢想大師,夢想從未止步.