1. 程式人生 > >Linux 使用者、許可權 Linux之文件與目錄結構

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的檔案系統

連結: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.conf
LANG="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
命令檢視解析dns

nslookup  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欄位,表示每十分鐘執行一次。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

使用者