Linux 01 Liunx系統簡介

Linux是一套無償使用和自由傳播的類Unix操做系統,是一個基於POSIXUNIX的多用戶、多任務、支持多線程和多CPU的操做系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位64位硬件。Linux繼承了Unix網絡爲核心的設計思想,是一個性能穩定的多用戶網絡操做系統。linux

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下經過相應的 模擬器運行常見的 DOSWindows的程序。這爲用戶從Windows轉到Linux奠基了基礎。許多用戶在考慮使用Linux時,就想到之前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。
多用戶、多任務
Linux支持多用戶,各個用戶對於本身的文件設備有本身特殊的權利,保證了各用戶之間互不影響。 多任務則是如今電腦最主要的一個特色,Linux可使多個程序同時並獨立地 運行
良好的界面
Linux同時具備字符界面和 圖形界面。在字符界面用戶能夠經過 鍵盤輸入相應的指令來進行操做。它同時也提供了相似Windows圖形界面的 X-Window系統,用戶可使用 鼠標對其進行操做。在X-Window環境中就和在Windows中類似,能夠說是一個Linux版的Windows。
支持多種平臺
Linux能夠運行在多種硬件平臺上,如具備 x86、680x0、 SPARCAlpha處理器的平臺。此外Linux仍是一種 嵌入式操做系統,能夠運行在 掌上電腦機頂盒遊戲機上。2001年1月份發佈的Linux 2.4版內核已經可以徹底支持 Intel 64位芯片架構。同時Linux也支持多處理器技術。多個處理器同時工做,使系統性能大大提升。

linux桌面環境

介紹
在圖形計算中,一個 桌面環境(Desktop environment,有時稱爲 桌面管理器)爲計算機提供一個 圖形用戶界面GUI)。但嚴格來講窗口管理器和桌面環境是有區別的。桌面環境就是桌面圖形環境,它的主要目標是爲Linux/Unix操做系統提供一個更加完備 的界面以及大量各種整合工具和使用 程序,其基本 易用性吸引着大量的新用戶。桌面環境名稱來自桌面比擬,對應於早期的文字命令行界面(CLI)。一個典型的桌面環境提供圖標,視窗,工具欄,文件夾,壁紙以及像拖放這樣的能力。總體而言,桌面環境在設計和功能上的特性,賦予了它不同凡響的外觀和感受。
種類
現今主流的桌面環境有 KDEgnomeXfceLXDE等,除此以外還有 AmbientEDE,IRIX Interactive Desktop, MezzoSugarCDE等。
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]。另外,依照文件的內容,又大體能夠分爲:
一、純文本文件( ASCII):這是Unix系統中最多的一種文件類型,之因此稱爲純文本文件,是由於內容能夠直接讀到的數據,例如數字、字母等等。設 置文件幾乎都屬於這種文件類型。舉例來講,使用命令「cat ~/.bashrc」就能夠看到該文件的內容(cat是將文件內容讀出來)。
二、二進制文件(binary):系統其實僅認識且能夠執行二進制文件(binary file)。Linux中的可執行文件(腳本,文本方式的批處理文件不算)就是這種格式的。舉例來講,命令cat就是一個二進制文件。
三、數據格式的文件(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 文件都位於這個目錄中。在通常狀況下, GRUBLILO系統引導管理器也位於這個目錄。
/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源)
  * 如何將本地光盤加入安裝源列表: 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 查看原來的值)
相關文章
相關標籤/搜索