Linux先知:
Linux歷史:
關於這個我就不再多說了,其實是一個很有意思的故事串,網上找下一大堆。
類Unix系統目錄結構:
ubuntu沒有盤符這個概念,只有一個根目錄/,所有文件都在它下面
Linux 目錄
-
- /:根目錄,一般根目錄下只存放目錄,在Linux下有且只有一個根目錄。所有的東西都是從這裏開始。當你在終端裏輸入“/home”,你其實是在告訴電腦,先從/(根目錄)開始,再進入到home目錄
- /bin: /usr/bin: 可執行二進制文件的目錄,如常用的命令ls、tar、mv、cat等。
- /boot:放置linux系統啓動時用到的一些文件,如Linux的內核文件:/boot/vmlinuz,系統引導管理器:/boot/grub。
- dev:存放linux系統下的設備文件,訪問該目錄下某個文件,相當於訪問某個設備,常用的是掛載光驅 mount /dev/cdrom /mnt。
- /etc:系統配置文件存放的目錄,不建議在此目錄下存放可執行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d。
- /home:系統默認的用戶家目錄,新增用戶賬號時,用戶的家目錄都存放在此目錄下,~表示當前用戶的家目錄,~edu 表示用戶 edu 的家目錄。
- /lib: /usr/lib: /usr/local/lib:系統使用的函數庫的目錄,程序在執行過程中,需要調用一些額外的參數時需要函數庫的協助。
- /lost+fount:系統異常產生錯誤時,會將一些遺失的片段放置於此目錄下。
- /mnt: /media:光盤默認掛載點,通常光盤掛載於 /mnt/cdrom 下,也不一定,可以選擇任意位置進行掛載。
- /opt:給主機額外安裝軟件所擺放的目錄。
- /proc:此目錄的數據都在內存中,如系統核心,外部設備,網絡狀態,由於數據都存放於內存中,所以不佔用磁盤空間,比較重要的目錄有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。
- /root:系統管理員root的家目錄。
- /sbin: /usr/sbin: /usr/local/sbin:放置系統管理員使用的可執行命令,如fdisk、shutdown、mount 等。與 /bin 不同的是,這幾個目錄是給系統管理員 root使用的命令,一般用戶只能"查看"而不能設置和使用。
- /tmp:一般用戶或正在執行的程序臨時存放文件的目錄,任何人都可以訪問,重要數據不可放置在此目錄下。
- /srv:服務啓動之後需要訪問的數據目錄,如 www 服務需要訪問的網頁數據存放在 /srv/www 內。
- /usr:應用程序存放目錄,/usr/bin 存放應用程序,/usr/share 存放共享數據,/usr/lib 存放不能直接運行的,卻是許多程序運行所必需的一些函數庫文件。/usr/local: 存放軟件升級包。/usr/share/doc: 系統說明文件存放目錄。/usr/share/man: 程序說明文件存放目錄。
- /var:放置系統執行過程中經常變化的文件,如隨時更改的日誌文件 /var/log,/var/log/message:所有的登錄文件存放目錄,/var/spool/mail:郵件存放的目錄,/var/run:程序或服務啓動後,其PID存放在該目錄下。
幾個常用命令細講:
一個程序猿可能都聽說過的笑話。說,一個二流程序猿帶着電腦在咖啡館,看到一個美女,就做到妹子眼睛看的到的地方打開ubuntu terminal,輸入, $>tree / ,然後(懂得人肯定明白了,不懂的快去試試)......,新學一招和妹子搭訕的技術。
linux commands一般都有幾部分構成: commands [-options] [parameter1]... ,也就是:命令 選項 參數1...(可能有多個參數,選項也可能有多個)。
pwd:顯示當前路徑。
cd(change directory):改變當前目錄。
ls:顯示當前文件夾下未被隱藏的文件或文件夾。
ls -a 顯示所有文件和文件夾(包括隱藏的)。
ls -l 以列表的方式顯示(列表裏有大小,無單位)。
ls -h 大小自動顯示爲帶有單位的,如3.6K。
ls -a -l -h
ls -h -l -a
ls -alh
ls -lha 以上四個操效果一樣。
commands --help/man commands :顯示幫助手冊。注意:man(Manuel)手冊一共有8個。
mkdir foldername :新建文件夾,後面加的是文件夾名。
mkdir /A/B/C/D/E -p :自動創建依賴文件夾,若沒有B,C,D的話就自動創建。
touch filename :創建文件。
rmdir foldername :僅可以刪除空文件夾(rm表示 remove)。
rm -r foldername :可以遞歸刪除文件夾,操作文件夾是被限制可以嘗試加,“-r”:表示遞歸。
mv filename 目標地址 :(mv:move,實際操作中是剪切的意思),移動文件到目標地址。
mv filename newfilename :重命名。
cp filename destAdd :(cp:copy,複製),複製文件到目標地址。
cp foldername destAdd -r :複製文件夾到目標地址,操作文件夾是被限制可以嘗試加,“-r”:表示遞歸。
history :顯示所有歷史命令,並且前有命令標號。用 !number !+ 對應命令的標號,相當於運行該命令。
cat filename :只能查看不可以編輯文件裏面的內容,所以後面一定加的是文件名不是文件夾的名。
more filename :同樣也是查看文件內容,但是前者是一下顯示到底,後者是分屏慢慢顯示,可控制的慢慢查看。press “q” exit。
管道符 | 應用: ls -alh /bin | more 這個舉例就相當於將 ls 將要顯示的先放到 | 管道中,然後在more 調用管道內容。其他命題也可調用。
ln -s 對象名 目標名 :對目標建立軟連接,刪除對象,則連接失效。
ln 對象名 目標名 :對目標建立硬連接,刪除對象,連接仍有效。
原理如圖。
grep "xxxx" xxx.txt :grep 查找內容 查找目標,顯示所有含有"xxxx"的。
grep "xxxx" xxx.txt -n :顯示查找目標的行數。
grep "xxxx" xxx.txt -v :顯示出,除含有"xxxx"以外的所有目標內容。
grep "^xxxx" xxx.txt :顯示以"xxxx"開頭的所有目標內容。
grep "xxxx$" xxx.txt :顯示以"xxxx"結尾的所有目標內容。
find命令功能非常強大,通常用來在特定的目錄下搜索符合條件的文件,也可以用來搜索特定用戶屬主的文件。而grep 是在文件內查找。
常用用法:
find ./ -name test.sh :查找當前目錄下所有名爲test.sh的文件。
find ./ -name '*.sh' :查找當前目錄下所有後綴爲.sh的文件。
find ./ -name "[A-Z]*" :查找當前目錄下所有以大寫字母開頭的文件。
find /tmp -size +2M :查找在/tmp 目錄下大於2M的文件。
find ./ -size +4k -size -5M :查找當前目錄下大於4k,小於5M的文件。
find ./ -perm 777 :查找當前目錄下權限爲 777 的文件或目錄。
通配符:通常通配符有?,*,[]。
ls 2? :以“2”開頭的並且唯一的提示。
ls *2 : 顯示出以“2”開頭的所有文件和文件夾。
ls 1[123456]3.txt :顯示出所有113.txt,123.txt......
重定向:符號">",">>"
ls -alh > xxx.txt :把即將顯示到屏幕的內容保存到xxx.txt(覆蓋原有數據)。
ls -alh >> xxx.txt :把即將顯示到屏幕的內容保存到xxx.txt(以追加的方式)。
兩個小快捷鍵分享:
1. 首先進入“ctrl+alt+T”快捷進入終端。
2. 可能會感覺字太小,按下“ctrl+shift” 再按 “+”放大字體,但是縮小字體是,按下“ctrl”再按“-”。
3. "ctrl+C"相當於不執行換行。再命令較長而且輸入錯誤是方便使用。