Linux 用戶、權限

 

目錄結構

Linux和Windows目錄結構的組織形式有很大不一樣,html

  Windowspython

    劃分出了「盤」的概念(C盤、D盤、E盤),已經創建文件系統的硬盤分區被掛載到某一個目錄下,用戶經過操做目錄來實現磁盤讀寫。mysql

    以反斜槓(\)分割目錄linux

  Linuxnginx

    首先是創建一個根(/)文件系統,全部的目錄頁都是有根目錄衍生出來的,web

    以斜槓(/)分割目錄sql

在Linux底下,全部的文件與目錄都是由根目錄開始,是目錄與文件的源頭,而後一個個的分支下來,如同樹枝狀,所以稱爲這種目錄配置爲:目錄樹shell

目錄樹的特色是什麼呢?數據庫

  • 目錄樹的起始點是根目錄(/,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系統中,有幾個目錄是比較重要的,平時須要注意不要誤刪除或者隨意更改內部文件。django

/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} (文件夾五、六、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 xiao@10.0.0.10  再輸入密碼登陸

小結

  一、超級用戶root切換普通用戶無需密碼

  二、普通用戶切換超級用戶root須要root的密碼

  三、普通用戶權限較小,只能查看基本信息

  四、$是普通用戶的命令提示符,#是超級用戶的命令提示符

  • 通常狀況下,在生產環境避免直接用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字段,表示每十分鐘執行一次。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

用戶

相關文章
相關標籤/搜索