云南酒店網(wǎng)站建設名優(yōu)網(wǎng)站關鍵詞優(yōu)化
課程回顧
-
操作系統(tǒng)
-
虛擬機安裝
本章重點
-
Linux系統(tǒng)目錄結構
-
常用命令
-
熟練區(qū)分Linux下各層目錄的作用
-
熟練掌握Linux的常用命令(文件命令、時間命令等)
一、Linux系統(tǒng)目錄結構
1.1 目錄結構
/: 根目錄,一般根目錄下只存放目錄,不要存放文件,/etc、/bin、/dev、/lib、/sbin應該和根目錄放置在一個分區(qū)中
/bin:bin是Binary的縮寫,這個目錄存放著最經(jīng)常使用的命令。
/boot:這里存放的是啟動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。
/dev:dev是Device(設備)的縮寫,該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。
/etc:這個目錄用來存放所有的系統(tǒng)管理所需要的配置文件和子目錄。
==/home==:用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。
/lib:這個目錄里存放著系統(tǒng)最基本的動態(tài)連接共享庫,其作用類似于Windows里的DLL文件。幾乎所有的應用程序都需要用到這些共享庫。
/sbin:s就是SuperUser的意思,這里存放的是系統(tǒng)管理員使用的系統(tǒng)管理程序。
/lost+found:這個目錄一般情況下是空的,當系統(tǒng)非法關機后,這里就存放了一些文件。
/media:linux系統(tǒng)會自動識別一些設備,例如U盤、光驅等等,當識別后,會把識別的設備掛載到這個目錄下。
/mnt:系統(tǒng)提供該目錄是為了讓用戶臨時掛載別的文件系統(tǒng)的,我們可以將光驅掛載在/mnt/上,然后進入該目錄就可以查看光驅里的內容了。
==/opt:這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE數(shù)據(jù)庫則就可以放到這個目錄下。默認是空的。==
/proc:這個目錄是一個虛擬的目錄,它是系統(tǒng)內存的映射,我們可以通過直接訪問這個目錄來獲取系統(tǒng)信息。
這個目錄的內容不在硬盤上而是在內存里,我們也可以直接修改里面的某些文件,比如可以通過下面的命令來屏蔽主機的ping命令,使別人無法ping你的機器:echo1>/proc/sys/net/ipv4/icmp_echo_ignore_all
/root:該目錄為系統(tǒng)管理員,也稱作超級權限者的用戶主目錄。
/selinux:這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似于windows的防火墻,但是這套機制比較復雜,這個目錄就是存放selinux相關的文件的。
/srv:該目錄存放一些服務啟動之后需要提取的數(shù)據(jù)。
/sys:這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現(xiàn)的一個文件系統(tǒng)sysfs。sysfs文件系統(tǒng)集成了下面3種文件系統(tǒng)的信息:針對進程信息的proc文件系統(tǒng)、針對設備的devfs文件系統(tǒng)以及針對偽終端的devpts文件系統(tǒng)。該文件系統(tǒng)是內核設備樹的一個直觀反映。當一個內核對象被創(chuàng)建的時候,對應的文件和目錄也在內核對象子系統(tǒng)中被創(chuàng)建。
/tmp:這個目錄是用來存放一些臨時文件的。
/usr:非常重要的目錄,用戶的很多應用程序和文件都放在這個目錄下,類似于windows下的programfiles。
/usr/bin:系統(tǒng)用戶使用的應用程序。
/usr/sbin:超級用戶使用的比較高級的管理程序和系統(tǒng)守護程序。
/usr/src:內核源代碼默認的放置目錄。
/var:這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經(jīng)常被修改的目錄放在這個目錄下。包括各種日志文件。
/run:是一個臨時文件系統(tǒng),存儲系統(tǒng)啟動以來的信息。當系統(tǒng)重啟時,這個目錄下的文件應該被刪掉或清除。如果你的系統(tǒng)上有/var/run目錄,應該讓它指向run。
1.2 說明
在Linux系統(tǒng)中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內部文件。
/etc:上邊也提到了,這個是系統(tǒng)中的配置文件,如果你更改了該目錄下的某個文件可能會導致系統(tǒng)不能啟動。
/bin,/sbin,/usr/bin,/usr/sbin:這是系統(tǒng)預設的執(zhí)行文件的放置目錄,比如ls就是在/bin/ls目錄下的。
值得提出的是,/bin,/usr/bin是給系統(tǒng)用戶使用的指令(除root外的通用戶),而/sbin,/usr/sbin則是給root使用的指令。
/var:這是一個非常重要的目錄,系統(tǒng)上跑了很多程序,那么每個程序都會有相應的日志產(chǎn)生,而這些日志就被記錄到這個目錄下,具體在/var/log目錄下,另外mail的預設放置也是在這里。
==綜上,日??梢圆僮鞯媚夸浭褂?home,/opt,/tmp==
自己的電腦:windows
服務器:Linux
二、常用命令
終端窗口
[root@localhost ~]# ? [當前用戶@服務器地址 當前位置]$ 命令
2.1 命令
格式
命令 【-參數(shù)選項】【參數(shù)】
參數(shù)選項:
-
-a:下所有文件和目錄
-
--all :下所有文件和目錄
如:ls -la /usr
分類
linux命令的分類
內部命令∶屬于Shell解析器的一部分
例如:cd切換目錄(change directory)
pwd顯示當前工作目錄(print working directory)
help幫助
外部命令:獨立于Shell解析器之外的文件程序
例如:ls顯示文件和目錄列表(list)
mkdir創(chuàng)建目錄(make directoriy)
cp復制文件或目錄(copy)
格式
命令名字 命令參數(shù) (--全拼|-簡寫)
2.2 cd切換目錄
cd(change directory)
[root@Linux ~]# cd 目錄
-
cd / :切換到根目錄
-
cd .. :切換到上層目錄
-
cd ~:切換到家目錄
-
cd -:切換到上一次目錄
-
cd bin:切換到bin目錄
2.3 文件常用命令
2.3.1 顯示當前工作目錄中的內容
要想知道當前的工作目錄中有些什么文件或目錄,在Windows的“命令提示符”中要使用“dir”命令,那么在Linux中就要使用“l(fā)s”命令
ls(list)
功能描述:顯示文件目錄
語法: ls 選項?【-ald】
-a 顯示所有文件,包括隱藏文件 (all)
-l 詳細信息顯示
-d 查看目錄屬性 (一般和l連用 可以查看詳細信息)
-h 以可讀性較高的形式顯示一般和l連用 ls -lh
-r 反序排列
-S 以文件大小排序
-t 以文件修改時間排序
[root@Linux ~]# ls anaconda-ks.cfg Desktop install.log install.log.syslog
這樣屏幕上就立刻顯示當前目錄下的所有文件及自目錄。文件顏色:
-
藍色:目錄
-
淺藍色:鏈接
-
紅色:壓縮包
-
白色|黑色:一般的文件
-
綠色:可執(zhí)行文件
顯示隱藏的文件
系統(tǒng)中一些文件,和Windows中的系統(tǒng)文件一樣,這些文件一般是不顯示出來的,那么我們可以使用“-a”參數(shù)來顯示隱藏的文件。如下所示:
[root@Linux ~]# ls -a
看看這樣顯示的文件就比較多了。可以發(fā)現(xiàn),隱藏文件是以“.”開頭的文件。這些文件一般都有特殊的作用,如果顯示出來,有可能被用戶不小心刪除。
# 文件的權限、所有者、文件大小等信息詳細列出來 [root@Linux ~]# ls -l
我們可以結合上面的兩個參數(shù)來顯示目錄下的文件,如下所示:
[root@Linux ~]# ls -al
顯示其他目錄中的文件
默認顯示當前路徑下的文件。
如果要顯示其他目錄中的文件,那么我們只要在“l(fā)s”后面加入所要顯示的目錄的路徑。如下所示:
[root@Linux ~]# ls / bin dev home lost+found misc net proc sbin srv tftpboot usr boot etc lib media mnt opt root selinux sys tmp var
這樣顯示的就是“/”目錄下的文件。當然我們也可以加入一下參數(shù),如下所示:
[root@Linux ~]# ls -l /bin
mkdir
mkdir(make directory)
功能描述:創(chuàng)建新目錄
[root@Linux ~]# mkdir myfile [root@Linux ~]# ll一次性創(chuàng)建多個目錄:mkdir 目錄1 目錄2 目錄3 …. ?
-p :遞歸創(chuàng)建文件夾
創(chuàng)建多層文件夾的時候使用的是 mkdir -p 文件夾/文件夾1
當一次性創(chuàng)建多層不存在的目錄的時候,添加-p參數(shù),否則會報錯
rmdir
刪除目錄
使用“rmdir”命令來刪除一個目錄
[root@Linux ~]# rmdir myfile ? # 刪除指定目錄后,若該目錄的上層目錄已變成空目錄,則將其一并刪除 [root@Linux ~]# rmdir -p a/b/c
注意的是,使用這個命令來刪除一個目錄的時候,那么這個目錄下必須是沒有任何文件和文件夾的。
rm(remove)
功能描述:刪除文件或目錄
-r 遞歸刪除
-d 目錄
-f force強制
[root@Linux ~]# rm -dr 目錄 ? # -d:文件夾 # -r:遞歸刪除 [root@Linux ~]# rm -dr a
cp(copy)
功能描述:復制文件或目錄
語法: cp -R 源文件或目錄
-R 復制目錄
cp [被復制的文檔路徑] [文檔被復制到的路徑]
當使用cp命令進行文件夾復制操作的時候需要添加選項“-r”【-r表示遞歸復制】,否則目錄將被忽略
復制的時候文件可以重新命名 但是如果非必須 不建議
mv(move)
功能描述:移動文件 更名
語法: mv 源文件或目錄
范例: mv file1 file 將當前目錄下文件file1更名為file ? ? mv file2 dir2 將文件file2 移動到目錄dir2下
touch
功能描述:創(chuàng)建空文件
范例: touch newfile
newfile可以是一個文件名也可以是一個包含文件路徑的文件名
使用touch來同時創(chuàng)建多個文件 touch 文件1 文件2
注意:不能創(chuàng)建多層文件
[root@Linux two]# touch 111.txt [root@Linux two]# touch 112.txt [root@Linux two]# touch 113.txt [root@Linux two]# ll
pwd(print working directory)
pwd命令,顯示當前所在的目錄
[root@Linux ~]# pwd /root [root@Linux ~]# cd one [root@Linux one]# pwd /root/one [root@Linux one]# cd ../two [root@Linux two]# pwd /root/two
locate
yum -y install mlocate
updatedb
默認不搜索/tmp下面的文件
語義描述: 搜索文件。
[root@Linux one]# locate install.log /root/install.log /root/install.log.syslog
cat
功能描述:顯示文件內容
語法: cat [文件名]
[root@Linux ~]# cat install.log
cat還可以對文件進行合并
語法2:
cat 待合并的文件路徑1 待合并的文件路徑2 …. 文件路徑n > 合并之后的文件路徑
cat testyyl.txt test2.txt > ./test3.txt
more
分頁顯示文件內容(只能向下分頁)
cat命令只能看到文件的部分或者只能看比較小的文件,more可以顯示比較大的文件。
[root@Linux ~]# more install.log [root@Linux ~]# more /etc/issue
--More--(2%)(注意:最下面顯示了一個提示,表示只顯示這個文件的2%,按下空格鍵就翻下一頁,當內容顯示完后,就自動的退出,還可以按下“Q”鍵也可以退出。)。
less
more雖然可以顯示比較大的文件,但是也有一個缺點,就是不能向上翻頁,看過的內容要重新看,必須在重新運行命令。less就解決了more命令這個命令的不足
[root@Linux ~]# less install.loginstall.log
最下面顯示的是這個文件的名稱,可以使用“PageUp”和“PageDown”可以進行上一頁和下一頁的翻頁。如果要知道具體的控制鍵,可以按下“H”鍵,可以顯示less命令的所有控制鍵,如果想結束,可以按“Q”鍵。
head
功能描述: 查看文件的前幾行
語法: head -num [文件名]
-num 顯示文件的前num行
默認10行
# 顯示前10行 [root@Linux ~]# head install.log [root@Linux ~]# head -20 install.log # 顯示前20行
tail
-
tail是顯示文件的末尾幾行,默認10行
語法: tail -num [文件名]
-num 顯示文件的后num行
-f 動態(tài)顯示文件內容
# 顯示后10行 [root@Linux ~]# tail install.log [root@Linux ~]# tail -20 install.log
2.4 時間設置
timedatectl命令對于RHEL / CentOS 7和基于Fedora 21+的分布式系統(tǒng)來說,是一個新工具,它作為systemd系統(tǒng)和服務管理器的一部分,代替舊的傳統(tǒng)的用在基于Linux分布式系統(tǒng)的sysvinit守護進程的date命令。
timedatectl命令可以查詢和更改系統(tǒng)時鐘和設置,可以使用此命令來設置或更改當前的日期,時間和時區(qū),或實現(xiàn)與遠程NTP服務器的自動系統(tǒng)時鐘同步。
通過使用來自于終端使用timedatectl命令的NTP,設置date、time、timezone和synchronize time來管理時間,它有以下優(yōu)點:
1)維護及時操作的系統(tǒng)任務,因為在Linux中的大多數(shù)任務都是由時間來控制的。
2)記錄事件和系統(tǒng)上其它信息等的正確時間。
2.4.1 設置本地時區(qū)
顯示系統(tǒng)的當前時間和日期
RTC time是硬件時鐘的時間。
# timedatectl status
查看當前時區(qū)
[root@localhost ~]$ timedatectl OR [root@localhost ~]$ timedatectl | grep Time
查看所有可用的時區(qū)
[root@localhost ~]$ timedatectl list-timezones
要根據(jù)地理位置找到本地的時區(qū)
[root@localhost ~]$ timedatectl list-timezones | grep -o ‘’Asia/B.*” [root@localhost ~]$ timedatectl list-timezones | grep -o “Europe/L.*” [root@localhost ~]$ timedatectl list-timezones | grep -o “America/N.*”
設置本地時區(qū)
使用set-timezone開關
[root@localhost ~]$ timedatectl set-timezone "Asia/Kolkata"
中國上海的時區(qū):
[root@localhost ~]$ timedatectl set-timezone "Asia/Shanghai"
????????推薦使用和設置協(xié)調世界時,即UTC。
[root@localhost ~]$ timedatectl set-timezone UTC
需要輸入正確命名的時區(qū),否者在改變時區(qū)的時候,可能會發(fā)生錯誤。由于 “Asia/Kalkata” 這個時區(qū)是不正確的,因此導致了錯誤。
2.4.2 設置時間和日期
設置時間
使用set-time開關以及HH:MM:SS(小時,分,秒)的時間格式。
[root@localhost ~]$ timedatectl set-time 15:58:30
設置日期
使用set-time開關以及YY:MM:DD(年,月,日)的日期格式。
[root@localhost ~]$ timedatectl set-time 20151120
設置日期和時間
[root@localhost ~]$ timedatectl set-time '2015-11-20 16:10:40'
2.4.3 硬件時鐘
要設置硬件時鐘以協(xié)調世界時,UTC,可以使用 set-local-rtc boolean-value選項,如下所示:
首先確定你的硬件時鐘是否設置為本地時區(qū):
[root@localhost ~]$ timedatectl | grep local
將硬件時鐘設置為本地時區(qū):
[root@localhost ~]$ timedatectl=
硬件時鐘設置為協(xié)調世界時(UTC):
[root@localhost ~]$ timedatectl set-local-rtc 0
2.4.4 同步時鐘到遠程NTP服務器
NTP即Network Time Protocol(網(wǎng)絡時間協(xié)議),是一個互聯(lián)網(wǎng)協(xié)議,用于同步計算機之間的系統(tǒng)時鐘。timedatectl實用程序可以自動同步你的Linux系統(tǒng)時鐘到使用NTP的遠程服務器。
注意,必須在系統(tǒng)上安裝NTP以實現(xiàn)與NTP服務器的自動時間同步。
要開始自動時間同步到遠程NTP服務器,在終端鍵入以下命令。
[root@localhost ~]$ timedatectl set-ntp true
要禁用NTP時間同步,在終端鍵入以下命令。
[root@localhost ~]$ timedatectl set-ntp false