Linux 使用者、許可權 Linux之文件與目錄結構
目錄結構
Linux和Windows目錄結構的組織形式有很大不同,
Windows
劃分出了“盤”的概念(C盤、D盤、E盤),已經建立檔案系統的硬碟分割槽被掛載到某一個目錄下,使用者通過操作目錄來實現磁碟讀寫。
以反斜槓(\)分割目錄
Linux
首先是建立一個根(/)檔案系統,所有的目錄頁都是有根目錄衍生出來的,
以斜槓(/)分割目錄
在Linux底下,所有的檔案與目錄都是由根目錄開始,是目錄與檔案的源頭,然後一個個的分支下來,如同樹枝狀,因此稱為這種目錄配置為:目錄樹。
目錄樹的特點是什麼呢?
- 目錄樹的起始點是根目錄(/,root);
- 每一個目錄不止能使用本地的檔案系統,也可以使用網路上的檔案系統,可以利用NFS伺服器掛載特定目錄。
- 每一個檔案在此目錄樹中的檔名,包含完整路徑都是獨一無二的。
/bin: bin是Binary的縮寫, 這個目錄存放著最經常使用的命令。 /boot: 這裡存放的是啟動Linux時使用的一些核心檔案,包括一些連線檔案以及映象檔案。 /dev : dev是Device(裝置)的縮寫, 該目錄下存放的是Linux的外部裝置,在Linux中訪問裝置的方式和訪問檔案的方式是相同的。 /etc: 這個目錄用來存放所有的系統管理所需要的配置檔案和子目錄。目錄的詳細解釋/home: 使用者的主目錄,在Linux中,每個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬號命名的。 /lib: 這個目錄裡存放著系統最基本的動態連線共享庫,其作用類似於Windows裡的DLL檔案。幾乎所有的應用程式都需要用到這些共享庫。 /lost+found: 這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。 /media: linux系統會自動識別一些裝置,例如U盤、光碟機等等,當識別後,linux會把識別的裝置掛載到這個目錄下。 /mnt: 系統提供該目錄是為了讓使用者臨時掛載別的檔案系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以檢視光碟機裡的內容了。/opt: 這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。 /proc: 這個目錄是一個虛擬的目錄,它是系統記憶體的對映,我們可以通過直接訪問這個目錄來獲取系統資訊。 這個目錄的內容不在硬碟上而是在記憶體裡,我們也可以直接修改裡面的某些檔案,比如可以通過下面的命令來遮蔽主機的ping命令,使別人無法ping你的機器: echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all /root: 該目錄為系統管理員,也稱作超級許可權者的使用者主目錄。 /sbin: s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。 /selinux: 這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的檔案的。 /srv: 該目錄存放一些服務啟動之後需要提取的資料。 /sys: 這是linux2.6核心的一個很大的變化。該目錄下安裝了2.6核心中新出現的一個檔案系統 sysfs 。 sysfs檔案系統集成了下面3種檔案系統的資訊:針對程序資訊的proc檔案系統、針對裝置的devfs檔案系統以及針對偽終端的devpts檔案系統。 該檔案系統是核心裝置樹的一個直觀反映。 當一個核心物件被建立的時候,對應的檔案和目錄也在核心物件子系統中被建立。 /tmp: 這個目錄是用來存放一些臨時檔案的。 /usr: 這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似於windows下的program files目錄。 /usr/bin: 系統使用者使用的應用程式。 /usr/sbin: 超級使用者使用的比較高階的管理程式和系統守護程式。 /usr/src:核心原始碼預設的放置目錄。 /var: 這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌檔案。
在linux系統中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內部檔案。
/etc: 上邊也提到了,這個是系統中的配置檔案,如果你更改了該目錄下的某個檔案可能會導致系統不能啟動。
/bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行檔案的放置目錄,比如 ls 就是在/bin/ls 目錄下的。
值得提出的是,/bin, /usr/bin 是給系統使用者使用的指令(除root外的通使用者),而/sbin, /usr/sbin 則是給root使用的指令。
/var: 這是一個非常重要的目錄,系統上跑了很多程式,那麼每個程式都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裡。
目錄的相關操作
檢視命令
ls 檢視目錄檔案
ls -la 檢視所有目錄(包括隱藏檔案)
stat 檔案(目錄) 檢視檔案(目錄)的詳細資訊
lsattr 檔案 檢視檔案的隱藏屬性
. 當前目錄
.. 上一層目錄
- 前一個工作目錄
~ 當前【使用者】所在的家目錄
資料夾操作
增
mkdir 資料夾名稱 建立資料夾
touch .py檔案 建立一個檔案
可以使用遞迴來生成資料夾結構
全是資料夾的 mkdir -p(引數) 資料夾1/資料夾2/資料夾3
資料夾下的檔案 mkdir -p(引數) 資料夾4/{資料夾5,檔案夾6,檔案夾7} (資料夾5、6、7並列)
刪
rmdir 資料夾名稱(空的)
想要刪除非空的資料夾 rm -rf ./*
改
mv 原檔名 新檔名(也有可能是移動)
執行第一個python命令
touch .py檔案 建立一個py檔案
vi py檔案 進入檔案中
按下鍵 i 進入編輯模式
按下鍵o (在游標所在的下一行進入編輯模式)
按下鍵 Esc 進入命令模式
輸入命令 :wq! 儲存退出
輸入命令 :q! 退出,不儲存
絕對路徑與相對路徑
Linux中非常重要的概念--路徑,路徑用來定位如何找到某個檔案。
- 絕對路徑:由根目錄(/)為開始寫起的檔名或者目錄名稱,如/home/oldboy/test.py;
- 相對路徑:相對於目前路徑的檔名寫法。例如./home/oldboy/exam.py或../../home/oldboy/exam.py,簡單來說只要開頭不是/,就是屬於相對路徑
Linux的檔案系統
使用者在硬體儲存裝置中執行的檔案建立,寫入,讀取,修改,轉存與控制等操作都是依賴檔案系統完成的。檔案系統的作用是合理規劃硬碟,保證使用者正常使用。
Linux系統支援數十種檔案系統,常見檔案系統如下。
- Ext3 是一款日誌檔案系統,能夠在系統異常宕機時避免檔案系統資料丟失,並能 自動修復資料的不一致與錯誤。
- Ext4 Ext3 的改進版本,作為 RHEL 6 系統中的預設檔案管理系統,它支援的儲存容 量高達 1EB(1EB=1,073,741,824GB),且能夠有無限多的子目錄。另外,Ext4 檔案系統能夠批量分配 block 塊,從而極大地提高了讀寫效率。
- XFS 是一種高效能的日誌檔案系統,而且是 RHEL 7 中預設的檔案管理系統,它的優勢在發生意外宕機後尤其明顯,即可以快速地恢復可能被破壞的檔案,而且強大的 日誌功能只用花費極低的計算和儲存效能。並且它最大可支援的儲存容量為 18EB, 這幾乎滿足了所有需求。
/etc/fstab是用來存放檔案系統的靜態資訊的檔案
cat /etc/fstab #檢查linux的檔案系統
使用者管理與檔案許可權篇
現代作業系統一般屬於多使用者的作業系統,也就是說,同一臺機器可以為多個使用者建立賬戶,一般這些使用者都是為普通使用者,這些普通使用者能同時登入這臺計算機,計算機對這些使用者分配一定的資源。
普通使用者在所分配到的資源內進行各自的操作,相互之間不受影響。但是這些普通使用者的許可權是有限制的,且使用者太多的話,管理就不便,從而引入root使用者。
root使用者是唯一的,且擁有系統的所有許可權。root使用者所在的組稱為root組。“組”是具有相似許可權的多個使用者的集合。
root的權利
Linux系統的特性就是可以滿足多個使用者,同時工作,因此Linux系統必須具備很好的安全性。
在安裝RHEL7時設定的root管理員密碼,這個root管理員就是所有UNIX系統中的超級使用者,它擁有最高的系統所有權,能夠管理系統的各項功能,如新增/刪除使用者,啟動/關閉程序,開啟/禁用硬體裝置等等。
因此“能力越大,責任越大”,root許可權必須很好的掌握,否則一個錯誤的命令可能會摧毀整個系統。
關於使用者的id
在Linux系統中,
使用者也有自己的UID身份賬號且唯一
系統管理員UID為0 ,系統使用者UID為1~999
Linux安裝的服務程式都會建立獨有的使用者負責執行。
普通使用者UID從1000開始:由管理員建立
使用者組GID
為了方便管理屬於同一組的使用者,Linux 系統中還引入了使用者組的概念。通過使用使用者組號碼(GID,Group IDentification),我們可以把多個使用者加入到同一個組中,從而方便為組中的使用者統一規劃許可權或指定任務。
假設有一個公司中有多個部門,每個部門中又 有很多員工。如果只想讓員工訪問本部門內的資源,則可以針對部門而非具體的員工來設 置許可權。
例如,可以通過對技術部門設定許可權,使得只有技術部門的員工可以訪問公司的 資料庫資訊等。Linux管理員在建立使用者時,將自動建立一個與其同名的使用者組,這個使用者組只有該使用者一個人
普通使用者的建立
useradd 使用者名稱 #新增使用者
passwd 使用者名稱 #設定密碼
root使用者可以修改其他所有人的密碼,且不需要驗證
groupadd 組名 # 新增使用者組
切換使用者
su命令可以切換使用者身份的需求
su - username su命令中間的-號很重要,意味著完全切換到新的使用者,即環境變數資訊也變更為新使用者的資訊
一般的順序是(可以不用遵循)
whoami 先看下當前使用者
第一種方法
第二種方法
ctrl + d (logout)退出登入
ssh [email protected] 再輸入密碼登入
小結
1、超級使用者root切換普通使用者無需密碼
2、普通使用者切換超級使用者root需要root的密碼
3、普通使用者許可權較小,只能檢視基本資訊
4、$是普通使用者的命令提示符,#是超級使用者的命令提示符
- 一般情況下,在生產環境避免直接用root使用者,除非有特殊系統維護需求,使用完立刻退回普通使用者
- 非互動式設定密碼(echo "redhat"|passwd --stdin oldboy && history -c)
刪除使用者(只有root可以刪除)
userdel 引數 使用者名稱
-r 同時刪除使用者以及家目錄
-f 強制刪除使用者
sudo命令
在/etc/sudoers
中設定了可執行sudo指令的使用者,可以使用其他身份來執行命令,預設身份為root
若其未經授權的使用者企圖使用sudo,則會發出警告的郵件給管理員。使用者使用sudo時,必須先輸入密碼,之後有5分鐘的有效期限,超過期限則必須重新輸入密碼。
sudo 選項 引數
-b:在後臺執行指令;
-h:顯示幫助;
-H:將HOME環境變數設為新身份的HOME環境變數;
-k:結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼;。
-l:列出目前使用者可執行與無法執行的指令;
-p:改變詢問密碼的提示符號;
-s<shell>:執行指定的shell;
-u<使用者>:以指定的使用者作為新的身份。若不加上此引數,則預設以root作為新的身份;
-v:延長密碼有效期限5分鐘;
-V :顯示版本資訊。
shdo命令用在什麼時候?
許可權不夠,這時候需要sudo ls /root 以root身份去執行,chaoge權利小,root總可以了吧!!
這是由於配置sudo必須編輯/etc/sudoers檔案,並且只有root才能修改,咱們可以通過visudo命令直接編輯sudoers檔案,使用這個命令還可以檢查語法,比直接編輯 vim /etc/sudoers更安全
visudo 編輯sudoers檔案 寫入 ## Allow root to run any commands anywhere root ALL=(ALL) ALL chaoge ALL=(ALL) ALL #允許chaoge在任何地方,執行任何命令
然後切換使用者,就可以使用sudo ls /root/ 的命令了
小結:
想要檢視超出許可權的命令必須有sudo
必須使用密碼登入(當前使用者的密碼)
時間限制5分鐘,超出重新登入
檔案與目錄許可權
Linux許可權的目的是(保護賬戶的資料)
Linux許可權主要依據三種身份來決定:
- user/owner 檔案使用者,檔案屬於哪個使用者
- group 屬組,檔案屬於哪個組
- others 既不是user,也不再group,就是other,其他人
什麼是許可權
在Linux中,每個檔案都有所屬的所有者,和所有組,並且規定了檔案的所有者,所有組以及其他人對檔案的,可讀,可寫,可執行等許可權。
對於目錄的許可權來說,可讀(r)是讀取目錄檔案列表,可寫(w)是表示在目錄內新增,修改,刪除檔案。可執行(x)表示可以進入目錄
許可權,第一個字母為檔案型別,後續9個字母,每3個一組,是三種身份的許可權 檔案連結數 檔案擁有者-屬主 檔案擁有組-屬組 檔案大小 最後一次被修改的時間日期 檔名解讀上圖:
先分析一下檔案的型別
- 一般檔案
d 資料夾
l 軟連線(快捷方式)
b 塊裝置,儲存媒體檔案為主
c 代表鍵盤,滑鼠等裝置
檔案許可權
r read 可讀 4 w write 寫入,編輯 2 x executable 可以執行 1
檔案許可權與數字轉化
ls -l /var/log/mysqld.log -rw-r--r-- 1 mysql mysql 6735642 8月 11 14:19 /var/log/mysqld.log 這個就代表mysqld.log檔案屬主是mysql,屬組是mysql,只有mysql使用者可以讀取編寫這個檔案,其他人只能讀此檔案。
每種身份最低是0分,最高是r+w+x 7分
因此三種身份,最高許可權是777,最低是000
-rw-rw-r-- 1 root root 0 8月 11 16:41 pyyu.txt 因此可知mysqld.log的許可權是 屬主是6 r+w(4+2) 屬組是4 r(4) 其他人是4 r(4)
檢視使用者許可權命令
id 使用者 [[email protected]_python ~ 16:34:52]#id root uid=0(root) gid=0(root) 組=0(root)
修改檔案許可權屬性
修改屬主 chown 要修改的屬主 檔案
修改陣列 chgrp 要修改的屬組 檔案
修改許可權的命令 chmod
chmod 身份 引數 檔案
u(user,屬主) +(新增)
g(group,屬組) -(減去)
o(other,其他人) =(賦值) ?????
a(all,全部)
當前許可權 -rw-rw-r-- 1 root root 0 8月 11 16:41 pyyu.txt
方法1
減去屬主的寫許可權
chmod u-w pyyu.txt
檢視許可權
-r--rw-r-- 1 root root 0 8月 11 16:41 pyyu.txt
方法2
屬主新增可讀可寫可執行許可權
chmod 700 pyyu.txt
屬主可讀可寫可執行 屬組可讀可執行 其他人可讀可執行
chmod 755 pyyu.txt
修改檔名,修改檔案更改日期 ?????
mv pyyu.txt chaoge.txt
#觸控,修改時間 touch chaoge.txt
軟連線(類似於Windows的快捷方式)
軟連線也叫做符號連結,常用於安裝軟體的快捷方式配置,如python,nginx等
ln -s 目標檔案(目錄) 別名
示例
原始檔案
建立軟連線
結果
ps1
echo $PS1
[\[email protected]\h \W]\$ 這就是linux底下的PS1變數,用於對命令提示符的修改
\u 使用者名稱
@ 是佔位符
\h 代表主機名
\W 代表最後一個資料夾路徑
\w 當前路徑的,絕對路徑寫法
\t 時間
[ ]
$ 代表使用者身份
如何修改PS1變數
PS1="[\[email protected]\h \w \t]\$"
永久生效的方法
vim /etc/profile 相當於合同檔案一樣,每次開機登入的時候,都會載入這個檔案的變數
PS1="[\[email protected]\h \w \t]\$"
修改主機名
hostnamectl set-hostname 主機名 (重新登入會話,主機名即生效)
遇見了yum報錯的問題,yum install nginx 的時候,說已經有yum程序存在了,並且pid是 2544
為什麼呢?
這是因為你之前用了yum命令,並且沒有正確退出,後臺已經有yum程序了
如果你不需要他了,弄死他
kill 2544 殺死已經存在的yum程序
如果你執行這個命令反覆的失敗,程序無法殺死
kill -9 強制殺死程序,一定會殺掉
儘量少用kill -9 ,因為這是流氓命令,會強制禍害到其他程序
咱們在公司中,儘量kill pid 即可
tar命令:壓縮,解壓縮
tar命令:用來壓縮和解壓檔案,tar本身不具有壓縮功能,他是呼叫壓縮功能實現的
-A或--catenate:新增檔案到以存在的備份檔案; -B:設定區塊大小; -c或--create:建立新的備份檔案; -C <目錄>:這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。 -d:記錄檔案的差別; -x或--extract或--get:從備份檔案中還原檔案; -t或--list:列出備份檔案的內容; -z或--gzip或--ungzip:通過gzip指令處理備份檔案; -Z或--compress或--uncompress:通過compress指令處理備份檔案; -f<備份檔案>或--file=<備份檔案>:指定備份檔案; -v或--verbose:顯示指令執行過程; -r:新增檔案到已經壓縮的檔案; -u:新增改變了和現有的檔案到已經存在的壓縮檔案; -j:支援bzip2解壓檔案; -v:顯示操作過程; -l:檔案系統邊界設定; -k:保留原有檔案不覆蓋; -m:保留檔案不被覆蓋; -w:確認壓縮檔案的正確性; -p或--same-permissions:用原來的檔案許可權還原檔案; -P或--absolute-names:檔名使用絕對名稱,不移除檔名稱前的“/”號; -N <日期格式> 或 --newer=<日期時間>:只將較指定日期更新的檔案儲存到備份檔案裡; --exclude=<範本樣式>:排除符合範本樣式的檔案。tar 引數
常用引數
-x 解壓
-c 壓縮
-z 以gzip格式壓縮,完全可以代替gzip命令(必須註明是 .gz 讓別人知道是什麼格式)
-v或--verbose:顯示指令執行過程;
-f<備份檔案>或--file=<備份檔案>:指定備份檔案;
壓縮
tar 引數 壓縮後的檔名 要壓縮的檔案
示例:
tar -cf all.tar *
tar -zcf all.tar.gz *
gzip命令
gzip用來壓縮檔案,是個使用廣泛的壓縮程式,被壓縮的以".gz"副檔名
gzip可以壓縮較大的檔案,以60%~70%壓縮率來節省磁碟空間
-d或--decompress或----uncompress:解開壓縮檔案; -f或——force:強行壓縮檔案。 -h或——help:線上幫助; -l或——list:列出壓縮檔案的相關資訊; -L或——license:顯示版本與版權資訊; -r或——recursive:遞迴處理,將指定目錄下的所有檔案及子目錄一併處理; -v或——verbose:顯示指令執行過程;gzip命令
tar -zcf all.tar.gz *
實際上執行的是
tar -cf all.tar *
gzip all.tar (對壓縮檔案再次進行壓縮)
gzip -dv all.tar.gz (對all.tar.gz檔案解壓,解壓後得到 all.tar)
gzip -l 檔案 (顯示壓縮檔案資訊,但並不解壓)
解壓
tar 引數 壓縮後的檔案(不管什麼格式)
示例:
tar -xf all.tar
tar -xf all.tar.gz
netstat命令
netstat命令是用來列印Linux中網路系統的狀態資訊(埠資訊),可讓你得知整個Linux系統的網路情況
示例:
netstat 引數
netstat -tunlp -t或--tcp:顯示TCP傳輸協議的連線狀況; -u或--udp:顯示UDP傳輸協議的連線狀況; -n或--numeric:直接使用ip地址,而不通過域名伺服器; -l或--listening:顯示監控中的伺服器的Socket; -p或--programs:顯示正在使用Socket的程式識別碼和程式名稱; -a或--all:顯示所有連線中的Socket;
netstat -tunlp |grep 80 #過濾出web頁面的命令
netstat -tunlp |grep 8000 #過濾出django的埠命令
ps命令
ps 命令用於檢視系統中的程序狀態,格式為“ps [引數]”。
ps 命令常用引數 -a 顯示所有程序 -u 使用者以及其他詳細資訊 -x 顯示沒有控制終端的程序
ps -ef|grep nginx #過濾出nginx程序
ps -ef|grep python #過濾出python程序
kill命令,殺死程序
kill命令用來刪除執行中的程式或工作。kill可將指定的資訊送至程式。
選項
-a:當處理當前程序時,不限制命令名和程序號的對應關係; -l <資訊編號>:若不加<資訊編號>選項,則-l引數會列出全部的資訊名稱; -p:指定kill 命令只打印相關程序的程序號,而不傳送任何訊號; -s <資訊名稱或編號>:指定要送出的資訊; -u:指定使用者。
只有第9種訊號(SIGKILL)才可以無條件終止程序,其他訊號程序都有權利忽略,下面是常用的訊號:
HUP 1 終端斷線
INT 2 中斷(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 終止
KILL 9 強制終止 (慎用)
CONT 18 繼續(與STOP相反, fg/bg命令)
STOP 19 暫停(同 Ctrl + Z)
例項
先用ps查詢程序,然後用kill殺掉: ps -ef | grep vim root 3268 2884 0 16:21 pts/1 00:00:00 vim install.log root 3370 2822 0 16:21 pts/0 00:00:00 grep vim kill 3268
killall命令
通常來講,複雜軟體的服務程式會有多個程序協同為使用者提供服務,如果逐個去結束這 些程序會比較麻煩,此時可以使用 killall 命令來批量結束某個服務程式帶有的全部程序。
例如nginx啟動後有2個程序 killall nginx
Linux中文顯示設定(防止中文亂碼)
此項優化為可選項,根據個人情況選擇是否調整Linux系統的字符集,字符集就是一套文字元號以及編碼。
Linux下常用字符集有:
- GBK 實際企業應用較少
- UTF-8 廣泛支援,MYSQL也使用UTF-8,企業廣泛使用
#檢視系統當前字符集
echo $LANG
#檢查xshell crt的字符集
#命令修改字符集
export LANG=en_US.utf8
1.修改配置檔案/etc/locale.confLANG="zh_CN.UTF-8"
2.更改後檢視系統語言變數
locale
亂碼核心解決辦法
1.系統字符集utf8 2.xshell字符集utf8 3.檔案字符集一致zh_CN.UTF-8
linux中文設定:
可以修改變數,臨時生效
或者修改寫入配置檔案
LANG="zh_CN.UTF-8"咱們修改的PATH變數,PS1變數,LANG語言變數,
PATH=""
PS1=""
LANG=""
但是這樣重啟就失效了,那咱們需要他永久生效,因此需要寫入配置檔案
那麼和使用者環境變數有關的配置檔案,叫做/etc/profile ,
因此把更改變數的命令,寫入到這個檔案,以後每次開機,都會讀取,達到永久生效的作用export PS1="[\[email protected]\h \w \t]\$"
DNS
linux的dns配置檔案 /etc/resolv.conf
cat /etc/resolv.conf
命令檢視解析dnsnslookup baidu.com
nslookup www.a.shifen.com (百度網址)新增DNS
vim 編輯配置檔案 /etc/resolv.conf
# 新增DNS伺服器
nameserver 119.29.29.29
nameserver 223.5.5.5
nslookup命令是常用域名查詢工具,就是查DNS資訊用的命令。 nslookup4有兩種工作模式,即“互動模式”和“非互動模式”。在“互動模式”下,使用者可以向域名伺服器查詢各類主機、域名的資訊,或者輸出域名中的主機列表。而在“非互動模式”下,使用者可以針對一個主機或域名僅僅獲取特定的名稱或所需資訊。 進入互動模式,直接輸入nslookup命令,不加任何引數,則直接進入互動模式,此時nslookup會連線到預設的域名伺服器(即/etc/resolv.conf的第一個dns地址)。或者輸入nslookup -nameserver/ip。進入非互動模式,就直接輸入nslookup 域名就可以了。
計劃任務crond服務
什麼是計劃任務:
後臺執行,到了預定的時間就會自動執行的任務,前提是:事先手動將計劃任務設定好。這就用到了crond服務
檢視計劃任務
tail -f /var/log/cron
新增計劃任務
crontab配置檔案
在/etc目錄下有一個crontab檔案,這個就是系統任務排程的配置檔案 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed
分 時 日 月 周
語法
crontab (選項)(引數)
-e:編輯該使用者的計時器設定; -l:列出該使用者的計時器設定; -r:刪除該使用者的計時器設定; -u<使用者名稱稱>:指定要設定計時器的使用者名稱稱。
寫計劃任務時,命令必須加上絕對路徑,否則會出現這種情況:從日誌中看,確實觸發了計劃任務的執行,但是命令卻沒有執行成功,比如* * * * * reboot就會出現這種情況,需要將reboot寫成/usr/sbin/reboot
呼叫crontab -e 編輯該使用者的計時器 設定
進入編輯模式,並輸入命令(每分鐘向wenjian.txt插入‘你好啊‘)
結果
crontab任務配置基本格式: * * * * * command 分鐘(0-59) 小時(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天) 命令 第1列表示分鐘1~59 每分鐘用*或者 */1表示 第2列表示小時1~23(0表示0點) 第3列表示日期1~31 第4列表示月份1~12 第5列標識號星期0~6(0表示星期天) 第6列要執行的命令 星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。 逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9” 中槓(-):可以用整數之間的中槓表示一個整數範圍,例如“2-6”表示“2,3,4,5,6” 正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。
使用者