1. 程式人生 > >Linux 用戶、權限

Linux 用戶、權限

eat 9.png 小結 user ls -l 原來 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  用戶
[root@oldboy_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
[\u@\h \W]\$ 這就是linux底下的PS1變量,用於對命令提示符的修改
\u 用戶名
@ 是占位符
\h 代表主機名
\W 代表最後一個文件夾路徑
\w 當前路徑的,絕對路徑寫法
\t 時間
[ ]
$ 代表用戶身份



如何修改PS1變量
PS1="[\u@\h \w \t]\$"
永久生效的方法
vim /etc/profile 相當於合同文件一樣,每次開機登錄的時候,都會加載這個文件的變量
PS1="[\u@\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="[\u@\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字段,表示每十分鐘執行一次。

用戶

Linux 用戶、權限