linux目錄分類和各個目錄作用-2016-07-21
Linux安裝以后出現的文件目錄的作用:
文件系統的類型
LINUX有四種基本文件系統類型:普通文件、目錄文件、連接文件和特殊文件,可用file命令來識別。
普通文件:如文本文件、C語言元代碼、SHELL腳本、二進制的可執行文件等,可用cat、less、more、vi、emacs來察看內容,用mv來改名。
目錄文件:包括文件名、子目錄名及其指針。它是LINUX儲存文件名的唯一地方,可用ls列出目錄文件。
連接文件:是指向同一索引節點的那些目錄條目。用ls來查看是,連接文件的標志用l開頭,而文件面后以"->"指向所連接的文件。
特殊文件:LINUX的一些設備如磁盤、終端、打印機等都在文件系統中表示出來,則一類文件就是特殊文件,常放在/dev目錄內。例如,軟驅A稱為/dev/fd0。LINUX無C:的概念,而是用/dev/had來自第一硬盤。
對于linux新手來說,最感到迷惑的問題之一就是文件都存在哪里呢?特別是對于那些從windows轉過來的新手來說,linux的目錄結構看起來有些奇怪哦。所以,在這里講一下linux下的主要目錄以及它們都是用來干什么的。
/
這就是根目錄。對你的電腦來說,有且只有一個根目錄。所有的東西,我是說所有的東西都是從這里開始。舉個例子:當你在終端里輸入“/home”,你其實是在告訴電腦,先從/(根目錄)開始,再進入到home目錄。
/root
這是系統管理員(root user)的目錄。對于系統來說,系統管理員就好比是上帝,它能對系統做任何事情,甚至包括刪除你的文件。因此,請小心使用root帳號。
/bin
這里存放了標準的(或者說是缺省的)linux的工具,比如像“ls”、“vi”還有“more”等等。通常來說,這個目錄已經包含在你的“path”系 統變量里面了。什么意思呢?就是:當你在終端里輸入ls,系統就會去/bin目錄下面查找是不是有ls這個程序。
/etc
這里主要存放了系統配置方面的文件。舉個例子:你安裝了samba這個套件,當你想要修改samba配置文件的時候,你會發現它們(配置文件)就在/etc/samba目錄下。
/dev
這里主要存放與設備(包括外設)有關的文件(unix和linux系統均把設備當成文件)。想連線打印機嗎?系統就是從這個目錄開始工作的。另外還有一些包括磁盤驅動、USB驅動等都放在這個目錄。
/home
這里主要存放你的個人數據。具體每個用戶的設置文件,用戶的桌面文件夾,還有用戶的數據都放在這里。每個用戶都有自己的用戶目錄,位置為:/home/用戶名。當然,root用戶除外。
/tmp
這是臨時目錄。對于某些程序來說,有些文件被用了一次兩次之后,就不會再被用到,像這樣的文件就放在這里。有些linux系統會定期自動對這個目錄進行清理,因此,千萬不要把重要的數據放在這里。
/usr
在這個目錄下,你可以找到那些不適合放在/bin或/etc目錄下的額外的工具。比如像游戲阿,一些打印工具拉等等。/usr目錄包含了許多子目錄: /usr/bin目錄用于存放程序;/usr/share用于存放一些共享的數據,比如音樂文件或者圖標等等;/usr/lib目錄用于存放那些不能直接 運行的,但卻是許多程序運行所必需的一些函數庫文件。你的軟件包管理器(應該是“新立得”吧)會自動幫你管理好/usr目錄的。
/opt
這里主要存放那些可選的程序。你想嘗試最新的firefox測試版嗎?那就裝到/opt目錄下吧,這樣,當你嘗試完,想刪掉firefox的時候,你就可以直接刪除它,而不影響系統其他任何設置。安裝到/opt目錄下的程序,它所有的數據、庫文件等等都是放在同個目錄下面。
舉個例子:剛才裝的測試版firefox,就可以裝到/opt/firefox_beta目錄下,/opt/firefox_beta目錄下面就包含了運 行firefox所需要的所有文件、庫、數據等等。要刪除firefox的時候,你只需刪除/opt/firefox_beta目錄即可,非常簡單。
/usr/local
這里主要存放那些手動安裝的軟件,即不是通過“新立得”或apt-get安裝的軟件。它和/usr目錄具有相類似的目錄結構。讓軟件包管理器來管理/usr目錄,而把自定義的腳本(scripts)放到/usr/local目錄下面,我想這應該是個不錯的主意。
/media
有些linux的發行版使用這個目錄來掛載那些usb接口的移動硬盤(包括U盤)、CD/DVD驅動器等等。
補充:
/bin
系統所需要的那些命令位于此目錄,比如 ls、cp、mkdir等命令;功能和/usr/bin類似,這個目錄中的文件都是可執行的、普通用戶都可以使用的命令。作為基礎系統所需要的最基礎的命令就是放在這里(/usr/bin和/usr/sbin 類似與“/”根目錄下對應的目錄(/bin和/sbin),但不用于基本的啟動(譬如,在緊急維護中)。大多數命令在這個目錄下。 )。
/boot
Linux的內核及引導系統程序所需要的文件目錄,比如 vmlinuz initrd.img 文件都位于這個目錄中。在一般情況下,GRUB或LILO系統引導管理器也位于這個目錄。
/lost+found
在ext2或ext3文件系統中,當系統意外崩潰或機器意外關機,而產生一些文件碎片放在這里。當系統啟動的過程中fsck工具會檢查這里,并修復已經損 壞的文件系統。 有時系統發生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修復,或移到文件到原來的位置上。
/mnt
這個目錄一般是用于存放掛載儲存設備的掛載目錄的,比如有cdrom 等目錄??梢詤⒖?/span>/etc/fstab的定義。有時我們可以把讓系統開機自動掛載文件系統,把掛載點放在這里也是可以的。主要看/etc/fstab中怎 么定義了;比如光驅可以掛載到/mnt/cdrom 。
/opt
表示的是可選擇的意思,有些軟件包也會被安裝在這里,也就是自定義軟件包,比如在Fedora Core 5.0中,OpenOffice就是安裝在這里。有些我們自己編譯的軟件包,就可以安裝在這個目錄中;通過源碼包安裝的軟件,可以通過 ./configure –prefix=/opt/目錄 。
/proc
操作系統運行時,進程信息及內核信息(比如cpu、硬盤分區、內存信息等)存放在這里。/proc目錄偽裝的文件系統proc的掛載目錄,proc并不是真正的文件系統,它的定義可以參見 /etc/fstab 。
/sbin
大多是涉及系統管理的命令的存放,是超級權限用戶root的可執行命令存放地,普通用戶無權限執行這個目錄下的命令,這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的;我們記住就行了,凡是目錄sbin中包含的都是root權限才能執行的。
/usr
這個是系統存放程序的目錄,比如命令、幫助文件等。這個目錄下有很多的文件和目錄。當我們安裝一個Linux發行版官方提供的軟件包時,大多安裝在這里。 如果有涉及服務器配置文件的,會把配置文件安裝在/etc目錄中。/usr目錄下包括涉及字體目錄/usr/share/fonts ,幫助目錄 /usr/share/man或/usr/share/doc,普通用戶可執行文件目錄/usr/bin 或/usr/local/bin 或/usr/X11R6/bin ,超級權限用戶root的可執行命令存放目錄,比如 /usr/sbin 或/usr/X11R6/sbin 或/usr/local/sbin 等;還有程序的頭文件存放目錄/usr/include。
/var
這個目錄的內容是經常變動的,看名字就知道,我們可以理解為vary的縮寫,/var下有/var/log 這是用來存放系統日志的目錄。/var/www目錄是定義Apache服務器站點存放目錄;/var/lib 用來存放一些庫文件,比如MySQL的,以及MySQL數據庫的的存放地;
關于/opt目錄的一個小技巧
在Linux中,/opt目錄是存放某些大型軟件或者某些特殊軟件的目錄,比如谷歌瀏覽器(Google Chrome)默認就是安裝在/opt中。但是我們一般不會把opt單獨分在一個區,因為/opt中大多數時候是空的,即使安裝了軟件也不會太多,而且有 些軟件的容量還比較大,這樣就會占用/的容量,我們可以在其它你愿意的地方建立一個目錄來將/opt“轉移”到別處,比如我的的/usr是單獨分在一個 區,容量有50G,這么大的空間不要浪費了不是?而且/usr本來就是安裝軟件的地方,所以我可以/usr下建立一個叫opt的文件夾,然后右鍵點擊這個 /usr下的opt,選擇“創建鏈接”,得到一個名為“到 opt 的鏈接”文件,然后把這個文件剪切到/下,將原來的/opt刪除,再將“到 opt 的鏈接”改名為opt就可以了,以后我們安裝在/opt的軟件實際上是安裝到了/usr/opt下(實際上是一個符號鏈接)。
/usr/local 這個目錄一般是用來存放用戶自編譯安裝軟件的存放目錄;一般是通過源碼包安裝的軟件,如果沒有特別指定安裝目錄的話,一般是安裝在這個目錄中。這個目錄下面有子目錄。自己看看吧。
/usr/share 系統共用的東西存放地,比如 /usr/share/fonts 是字體目錄,/usr/share/doc和/usr/share/man幫助文件。
/var/log 系統日志存放,分析日志要看這個目錄的東西;
/var/spool 打印機、郵件、代理服務器等假脫機目錄;
SSH介紹
SSH 為 Secure Shell 的縮寫,由 IETF 的網絡小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。SSH最初是UNIX系統上的一個程序,后來又迅速擴展到其他操作平臺。SSH在正確使用時可彌補網絡中的漏洞。SSH客戶端適用于多種平臺。幾乎所有UNIX平臺—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平臺,都可運行SSH。
遠程連接Linux服務器
默認情況下最小化安裝Linux SSH默認是已經安裝的,默認SSH 服務也是開啟的,可以通過命令查看其狀態:
Centos 6.8命令:
[root@localhost tmp]# service sshd status
openssh-daemon (pid 2212) is running…
[root@localhost tmp]# chkconfig | grep sshd
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Centos 7命令:
[root@Centos7 ~]# systemctl status sshd
● sshd.service – OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2016-07-22 08:13:51 CST; 2h 26min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 1454 (sshd)
CGroup: /system.slice/sshd.service
└─1454 /usr/sbin/sshd -D
Jul 22 08:13:51 Centos7.local systemd[1]: Started OpenSSH server daemon.
Jul 22 08:13:51 Centos7.local systemd[1]: Starting OpenSSH server daemon…
Jul 22 08:13:51 Centos7.local sshd[1454]: Server listening on 0.0.0.0 port 22.
Jul 22 08:13:51 Centos7.local sshd[1454]: Server listening on :: port 22.
Jul 22 08:30:38 Centos7.local sshd[3469]: Accepted password for root from 192.168.71.1 port 49798 ssh2
[root@Centos7 ~]# systemctl list-unit-files *sshd*
UNIT FILE STATE
anaconda-sshd.service static
sshd-keygen.service static
sshd.service enabled
sshd@.service static
SSH連接工具
Putty Xshell SecureCRT 8.0
注意:需要使用SSH工具需要注意一下幾點:
1. 服務器上SSHD服務是否開啟;
2. 客戶端連接服務器SSHD的端口號是否正確;
3. 用戶名和密碼或秘鑰是否正確。
關于終端基本知識
基本概念:
服務器非必要部件;
查看當前連接的終端: w命令:
[chen@localhost ~]$ w
11:20:23 up 3:06, 4 users, load average: 0.21, 0.17, 0.26
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 :0 08:14 3:06m 6.99s 6.99s /usr/bin……
root pts/0 :0.0 11:12 7:31 0.00s 0.00s /bin/bash
root pts/1 192.168.71.1 08:19 14:43 0.64s 0.64s -bash
chen pts/2 192.168.71.1 11:05 0.00s 0.15s 0.03s w
/dev/console : 只有單用戶模式下才會顯示TTY為 console (控制臺的意思)
/dev/tty# : 虛擬終端,附加在物理終端之上的以軟件的方式虛擬實現的終端
tty1 : 圖形界面;
tty2–tty6 :字符界面
/dev/pts/# : 模擬終端,圖形界面打開的命令行及基于SSH協議或Telnet協議等遠程打開的界面。
圖形界面:
GUI:圖形用戶接口
Desktop:
GNOME (C ,圖形庫GTK)
KDE (C++ , 圖形庫GT)
XFCE(輕量級桌面)
CLT:(命令行接口)
Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。它接收用戶輸入的命令并把它送入內核去執行。
實際上Shell是一個命令解釋器,它解釋由用戶輸入的命令并且把它們送到內核。不僅如此,Shell有自己的編程語言用于對命令的編輯,它允許用戶編寫由shell命令組成的程序。Shell編程語言具有普通編程語言的很多特點,比如它也有循環結構和分支控制結構等,用這種編程語言編寫的Shell程序與其他應用程序具有同樣的效果。
Shell 程序
同Linux本身一樣,Shell也有多種不同的版本。主要有下列版本的Shell:
Bourne Shell:是貝爾實驗室開發的。
BASH:是GNU的Bourne Again Shell,是GNU操作系統上默認的shell。
Korn Shell:是對Bourne SHell的發展,在大部分內容上與Bourne Shell兼容。
C Shell:是SUN公司Shell的BSD版本。
Z Shell:The last shell you’ll ever need! Z是最后一個字母,也就是終極Shell。它集成了bash、ksh的重要特性,同時又增加了自己獨有的特性。
Linux 部分基礎命令
查看系統支持的shell
[chen@localhost ~]$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin —系統賬號發起進程使用,不用登錄系統
/usr/bin/sh
/usr/bin/bash —Linux 默認 shell
/usr/sbin/nologin —系統賬號發起進程使用,不用登錄系統
/bin/tcsh
/bin/csh
提示符變量:$PS1
[root@Centos7 ~]# echo $PS1
[\u@\h \W]\$
命令的類型:type COMMAND
內置命令;
內核自帶的命令,如:cd , type (內部命令在內存中)
外部命令:echo "$PATH" —查看命令文件默認路徑
內核不自帶的命令,如:(外部命令使用一次后回 緩存到內存中 hashed )
[root@Centos7 boot]# type chmod
chmod is /usr/bin/chmod
[root@Centos7 boot]# type who
who is /usr/bin/who
[root@Centos7 boot]# who
root :0 2016-07-21 14:02 (:0)
root pts/1 2016-07-21 14:12 (192.168.71.1)
[root@Centos7 boot]# type who
who is hashed (/usr/bin/who)
命令路徑變量:$PATH
echo $PATH
[root@Centos7 boot]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
直接輸入命令命令按路徑名稱順序搜索;
如果直接使用命令 /usr/bin/chmod 000 bash.txt
which:查看外部命令
which ls
which cd (cd是內部命令,是無法找到cd這個文件的)
hash緩存數據:
hash -d cat (刪除緩存中的指定命令)
hash -r 清空所有緩存
命令查找順序: 內置 , hash , $PATH
禁用內部命令
enable -n cd
啟用內部命令
enable cd
內核文件的地址:
[root@Centos7 boot]# ll -h /boot/vmlinuz-3.10.0-327.el7.x86_64
-rwxr-xr-x. 1 root root 5.0M Nov 20 2015 /boot/vmlinuz-3.10.0-327.el7.x86_64
which :命令(二進制文件)在哪里
whereis :命令(二進制文件)在哪里,幫助文檔在哪里
windows也有變量路徑
set path(Windows變量路徑,可以查找當前目錄下的命令,Linux不會找當前目錄下的命令,命令查找順序: 內置 , hash , $PATH)
設置計算機時間 date:
系統時鐘:date ,
硬件時鐘:clock ,hwclock
-s : 以硬件時鐘為準,校正系統時鐘
-w : 以系統時鐘為準,校正硬件時鐘
設置計算機時間:
date : 08 10 10 30 2000.30
月 日小時分 年 秒
screen軟件使用
(普通用戶也可以使用screen)
實用性1:如果有兩個人同時用同一個賬戶連接到一臺Linux的服務器上,其中一個人需要實時看到另一個人如何操作,可以做如下操作。
用戶A :
screen -S helper (新建一個連接,連接名稱為 helper)
用戶B
screen -ls (查看session 連接數)
screen -x helper (連接到 helper的這個連接)
實用性2 :如果遠程連接到遠程服務器,服務器上需要備份需要3小時,可以通過遠程連接到服務器,開一個screen的程序,運行程序,在退出screen的界面,讓screen后臺運行;命令如下:
1. screen :運行一個screen 進程;
2. 運行需要執行的命令
3. ctrl+a d :剝離當前screen,
4. screen -ls :查看session列表
5. screen -r [session] :恢復session的回話
echo : 回顯命令使用
功能說明:
echo命令的功能是在顯示器上顯示一段文字,一般起到一個提示的作用。
語法: 該命令的一般格式為: echo [ 參數 ] 字符串
字符串能加引號,也能不加引號。用echo命令輸出加引號的字符串時,將字符串原樣輸出;用echo命令輸出不加引號的 字符 串時,將字符串中的各個單詞作為字符串輸出,各字符串之間用一個空格分割。
參數:
-n 不要在最后自動換行
-e 若字符串中出現以下字符,則特別加以處理,而不會將它當成一般
文字輸出:
\a 發出警告聲;
\b 刪除前一個字符;
\c 最后不加上換行符號;
\f 換行但光標仍舊停留在原來的位置;
\n 換行且光標移至行首;
\r 光標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字符;
\0nnn 插入nnn(八進制)所代表的ASCII字符;
\xHH插入HH(十六進制)所代表的ASCII字符
–help 顯示幫助
–version 顯示版本信息
舉例:
[root@Centos7 ~]# echo -n "aa bb cc" –>不換行輸出
aa bb cc[root@Centos7 ~]#
[root@Centos7 ~]# echo "echo $UID" –>雙引號 弱引用,變量轉換為其值
echo 0
[root@Centos7 ~]# echo 'echo $UID' –>單引號 強引用,變量不轉換為其值
echo $UID
[root@Centos7 ~]# echo `echo $UID` –>頓引號 強引用,變量和命令都執行(命令引用)
0
[root@Centos7 ~]# echo $(echo $UID) –>括號引用,變量和命令都執行(命令引用)
0
-e : 參數來打印轉義字符:
echo -e "aaa\c"
echo -e "aaa\a"
echo -e "aaa\bxxx"
echo -e "aaa\nxxx"
echo -e "aaa\rxxx"
echo -e "aaaa\txxx"
echo -e "\0101"
echo顯示帶顏色,需要使用參數-e
格式如下:
echo -e "\033[字背景顏色;文字顏色m字符串\033[0m"
Echo -e ‘’\033[#;3#,4# this is my dog \033[0m
例如:
echo -e "\033[41;37m TonyZhang \033[0m"
其中41的位置代表底色, 37的位置是代表字的顏色
注:
1、字背景顏色和文字顏色之間是英文的“""”
2、文字顏色后面有個m
3、字符串前后可以沒有空格,如果有的話,輸出也是同樣有空格
下面看幾個例子:
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 紅色字 \033[0m"
echo -e "\033[32m 綠色字 \033[0m"
echo -e "\033[33m 黃色字 \033[0m"
echo -e "\033[34m 藍色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天藍字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 紅底白字 \033[0m"
echo -e "\033[42;37m 綠底白字 \033[0m"
echo -e "\033[43;37m 黃底白字 \033[0m"
echo -e "\033[44;37m 藍底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天藍底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"
控制選項說明 :
\33[0m 關閉所有屬性
\33[1m 設置高亮度
\33[4m 下劃線
\33[5m 閃爍
\33[7m 反顯
\33[8m 消隱
\33[30m — \33[37m 設置前景色
\33[40m — \33[47m 設置背景色
\33[nA 光標上移n行
\33[nB 光標下移n行
\33[nC 光標右移n行
\33[nD 光標左移n行
\33[y;xH設置光標位置
\33[2J 清屏
\33[K 清除從光標到行尾的內容
\33[s 保存光標位置
\33[u 恢復光標位置
\33[?25l 隱藏光標
\33[?25h 顯示光標
echo -e "\033[1;40;37m 高亮黑底白字 \033[0m"
echo -e "\033[1;41;37m 高亮紅底白字 \033[0m"
echo -e "\033[1;42;37m 高亮綠底白字 \033[0m"
echo -e "\033[1;43;37m 高亮黃底白字 \033[0m"
echo -e "\033[1;44;37m 高亮藍底白字 \033[0m"
echo -e "\033[1;45;37m 高亮紫底白字 \033[0m"
echo -e "\033[1;46;37m 高亮天藍底白字 \033[0m"
echo -e "\033[1;47;30m 高亮白底黑字 \033[0m"
其它學習的小命令:
Cal –顯示日歷,特殊日子: 9 1752
Nano – 文本編輯
rpm -i 安裝RPM安裝包
/etc/issue
配置文件可以修改登錄提示信息 :可以修改歡迎界面文字!
原創文章,作者:linux_root,如若轉載,請注明出處:http://www.www58058.com/27676