老男孩教育-第3周課前測試考試題

第3章 第3周課前測試考試題node

3.1 取出文件的訪問權限掩碼linux

第1題如何取得/etiantian 文件的權限對應的數字內容,如-rw-r--r-- 爲 644,要求使用命令取得644 這樣的數字。git

思路:正則表達式

1.利用cut命令切割不一樣的字段出來,再利用tr命令將字母逐個轉化爲數字,再利用awk將不一樣的域相加後,再輸出結果shell

2.stat命令能夠查看到文件的詳細信息,再從內容裏面過濾出訪問權限掩碼c#

解答:安全

準備練習素材:bash

[root@lb01 ~]# touch /etiantian
[root@lb01 ~]# ll /etiantian # 看文件的屬性
-rw-r--r-- 1 root root 0 2016-08-26 12:17 /etiantian

方法一:cut + tr + awk服務器

[root@lb01 ~]# ls -l /etiantian |cut -c 2-10 
rw-r--r--# 先將文件的第2到第10個字符切割出來
[root@lb01 ~]# ls -l /etiantian |cut -c 2-10|tr "rwx-" "4210"
420400400# 將這幾個特殊的字符逐個替換爲數字
[root@lb01 ~]# ls -l /etiantian |cut -c 2-10|tr "rwx-" "4210"|awk -F '' '{print $1+$2+$3""$4+$5+$6""$7+$8+$9""}'
644

方法二:stat + sedide

[root@lb01 ~]# stat /etiantian # stat命令查看文件的詳細屬性
  File: "/etiantian"
  Size: 0               Blocks: 0          IO Block: 4096   普通空文件
Device: 803h/2051d      Inode: 10908       Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-08-26 12:17:39.548934495 +0800
Modify: 2016-08-26 12:17:39.548934495 +0800
Change: 2016-08-26 12:17:39.548934495 +0800
[root@lb01 ~]# stat /etiantian |sed -nr 's#.*\(0(.*)/-.*$#\1#gp'
644

# -n表示取消默認輸出,-r表示使用擴展的正則表達式。要查找的目標是644,因此思路是能夠先把目標前面的內容分隔出來,再把目標後面的內容分隔出來,再將目標先後的內容都替換爲空。而目標的內容能夠用小括號括起來,替換時利用後向引用原理,將目標內容顯示出來。

.*\(0表明以任意字符開頭,真到(0結束

(.*)表明任意的字符(即要查找的內容644)

/-.*$表明以/-開頭,直到任意字符結束

\1表明【(.*)】

方法三:stat + awk

[root@lb01 ~]# stat /etiantian |awk -F '[0/]+' 'NR==4 {print $2}'      
644

# -F指定分隔符,[]裏面能夠指定多個分隔符,+表示重複「1個或1個以上」前面的字符,[0/]由於644前面是一個0,後面是斜槓,因此指定隔符時能夠指定這兩個,這個查找時就能快速定位到這個目標;加NR==4後,只匹配到第4行

方法四:stat + grep

[root@lb01 ~]# stat /etiantian |grep -o .*/-
Access: (0644/-
# -o表明僅顯示出匹配到的內容,先過濾出以任意字符開頭,而且以【/-】結尾的字符串
# -o, --only-matching
[root@lb01 ~]# stat /etiantian |grep -o .*/-|grep -o [4-6]*
644
# -o再過濾出4-6的數字中的任意一個數字, *表明重複0個或多個前面的一個字符

方法五:stat 參數:-c

[root@lb01 ~]# stat -c %a /etiantian
644
# -c表示指定特定的格式輸出,%a表示以八進制的方式顯示訪問權限
c   --format=FORMAT
    use the specified FORMAT instead of the default
%a  Access rights in octal(八進制)

總結:

1.三劍客均可以過濾出指定的內容,正則表達式的分隔符意義必需要理解,才能靈活應用。

2.若是一個命令的輸出結果裏有咱們想要的內容,那麼這條命令確定會有參數單獨把這個內容顯示出來。

3.2 硬連接數

第2題linux 下經過 mkdir 命令建立一個新目錄/oldboy/ett,它的硬連接數是多少,爲何?若是在/oldboy/ett 下面再建立一個目錄 test。再問/oldboy/ett 的硬連接數是多少?爲何。

思路:

考查硬連接的原理,硬連接至關於一個文件的多個入口,互爲硬連接的文件inode號是同樣的。

解答:

第1個問:它的硬連接數是2個。

[root@lb01 ~]# mkdir /oldboy/ett -p
[root@lb01 ~]# ll -id /oldboy/ett/ /oldboy/ett/.
142179 drwxr-xr-x 2 root root 4096 2016-08-26 16:20 /oldboy/ett/
142179 drwxr-xr-x 2 root root 4096 2016-08-26 16:20 /oldboy/ett/.
# 點表明當前目錄,這兩個文件的inode號同樣,因此是互爲硬連接文件

第2個問:它的硬連接數是3個。

[root@lb01 ~]# mkdir /oldboy/ett/test
[root@lb01 ~]# ll -id /oldboy/ett/ /oldboy/ett/. /oldboy/ett/test/..
142179 drwxr-xr-x 3 root root 4096 2016-08-26 16:22 /oldboy/ett/
142179 drwxr-xr-x 3 root root 4096 2016-08-26 16:22 /oldboy/ett/.
142179 drwxr-xr-x 3 root root 4096 2016-08-26 16:22 /oldboy/ett/test/..
# 每一個目錄裏,都有隱藏文件 . 和 ..   分別表明當前路徑和上級目錄
# 下一級目錄裏有一個..文件,用來指定上一級目錄所在的路徑

總結:

1.inode裏存放的是文件的屬性(inode大小共512個字節),但不存放文件的文件名,由於文件名是數據,文件名實際存放在上一級(父)目錄裏,因此刪除文件時(即刪除文件名),必需要看上一級目錄inode裏的文件權限屬性值。

2.若是一個目錄的硬連接數爲2(目錄自己,點),那麼它確定沒有子目錄。

3.若是一個目錄的硬連接數爲3(目錄自己,點,下一級子目錄點點),那麼它確定有1(3-2)個子目錄。

4.若是一個目錄的硬連接數爲5(目錄自己,點,下一級子目錄點點),那麼它確定有3(5-2)個子目錄。

5.互爲硬連接的文件,inode號同樣,至關於一個文件的多個入口,經常使用來備份重要的文件,可是,目錄不能作硬連接。

6.軟連接至關於快捷方式,它也是一個文件,因此inode號和源文件(或硬連接文件)的inode號是不同的,它是直接連接到源文件上的,因此,若是刪除了源文件,那麼軟連接就會失效。

7.刪除一個文件的原理:源文件和硬連接文件都被刪除,即文件的硬連接數爲0,當文件被進程調用時,是沒法被刪除的,這時能夠停掉這個進程或重啓服務,就會釋放進程。


3.3 取出IP

第3題請執行命令取出 linux 中 eth0 的 IP 地址(請用 cut,有能力者也可分別用 awk,sed 命令答)

思路:

(1)先把IP地址所在的行過濾出來,再用cut指定分隔符,輸出指定的列

(2)利用sed過濾,須要配合正則表達式

(3)利用awk過濾

解答:

[root@lb01 ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:55:2D:C1  
          inet addr:10.0.0.5  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe55:2dc1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:104907 errors:0 dropped:0 overruns:0 frame:0
          TX packets:161744 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:85629519 (81.6 MiB)  TX bytes:12035082 (11.4 MiB)

方法一:grep + cut

[root@lb01 ~]# ifconfig eth0|grep "inet addr"|cut -d: -f2|cut -d " " -f1
10.0.0.5
# 先過濾出IP所在的行,利用cut切割不一樣的列(-d指定分隔符(冒號),-f指定輸出的域),再指定分隔符(空格),只輸出第一列

如下這種解法更加方便,但路徑較長

[root@lb01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0|grep IPADDR
IPADDR=10.0.0.5
[root@lb01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0|grep IPADDR|cut -d= -f2
10.0.0.5


方法二:grep

[root@lb01 ~]# ifconfig eth0|grep -o "inet addr:[0-9.]*"
inet addr:10.0.0.5
[root@lb01 ~]# ifconfig eth0|grep -o "inet addr:[0-9.]*"|grep -o "[0-9.]*"
10.0.0.5
# 先過濾出以inet addr:開頭,後面加數字和點,[0-9.]*表明重複0個或多箇中括號裏面的內容,-o表明只輸出匹配到的內容


方法三:sed

[root@lb01 ~]# ifconfig eth0|sed -nr 's#^.*addr:(.*)  B.*$#\1#gp'
10.0.0.5
# B的前面有兩個空格  
sed過濾方法以下:
[root@lb01 ~]# ifconfig eth0|sed -nr '/inet addr/p'
          inet addr:10.0.0.5  Bcast:10.0.0.255  Mask:255.255.255.0
[root@lb01 ~]# ifconfig eth0|sed -nr '/inet addr/s#.*ddr:(.*)  B.*$#\1#gp'
10.0.0.5


方法四 :awk

[root@lb01 ~]# ifconfig eth0|awk -F '[ :]+' 'NR==2 {print $4}'
10.0.0.5


方法五:三劍客配合

[root@lb01 ~]# ifconfig eth0|grep "inet addr"|awk -F '[ :]+' '{print $4}'
10.0.0.5
[root@lb01 ~]# ifconfig eth0|sed -n '2p'|awk -F '[ :]+' '{print $4}'
10.0.0.5


總結:

(1)grep過濾指定字符,再用cut切割不一樣的列

(2)sed取行很方便

(3)awk能夠指定多分隔符


3.4 網卡及dns配置文件路徑

第4題請給出默認狀況 eth0 網卡配置文件的路徑及客戶端 DNS 的路徑。

解答:

cat /etc/sysconfig/network-scripts/ifcfg-eth0 # 網卡配置文件路徑
cat /etc/resolv.conf# 客戶端DNS配置文件路徑


總結:

若是網卡的配置文件裏配置了DNS地址,而這個文件【/etc/resolv.conf】裏也配置了DNS地址,那麼以網卡的配置文件爲準,即網卡的配置文件裏的DNS地址優先級更高。


3.5 find&&sed查找替換

第5題查找當前目錄下全部文件,並把文件中的 www.etiantian.org 字符串替換成 www.oldboy.cc。

思路:

利用find找出類型是文件的,再利用sed作查找替換對應的字符串

解答:

練習素材

echo "www.etiantian.org" >a.txt
echo "www.etiantian.org" >b.txt
echo "www.etiantian.org" >c.txt

兩種方法均可以

[root@lb01 ~]# find ./ -type f|xargs sed -i  's#www.etiantian.org#www.etiantian.cc#g'
[root@lb01 ~]# find ./ -type f -exec sed -i 's#www.etiantian.org#www.etiantian.cc#g' {} \;

檢查

[root@lb01 ~]# cat {a..c}.txt
www.etiantian.cc
www.etiantian.cc
www.etiantian.cc

總結:

sed查找替換時,先肯定結果後再加-i參數


3.6 考查文件權限位屬性

第6題如何賦予 oldboy 文件 -rw-r--r-x 權限屬性。

思路:

1.能夠直接用數字改(最佳)

2.也能夠用字符修改

解答:

練習文件

touch oldboy
[root@lb01 ~]# ll oldboy
-rw-r--r-- 1 root root 0 2016-08-26 17:09 oldboy


方法一

[root@lb01 ~]# chmod 645 oldboy
[root@lb01 ~]# ll oldboy       
-rw-r--r-x 1 root root 0 2016-08-26 17:09 oldboy


方法二

[root@lb01 ~]# ll oldboy

-rw-r--r-x 1 root root 0 2016-08-26 17:09 oldboy


方法三

[root@lb01 ~]# chmod o=rx oldboy
[root@lb01 ~]# ll oldboy
-rw-r--r-x 1 root root 0 2016-08-26 17:09 oldboy


總結:

1.建立新文件時,默認的權限是:644

2.建立新目錄時,默認的權限是:755

3.它們是由umask(權限掩碼默認是022)控制的

4.文件默認用666-umask,目錄默認用777-umask

5.還有setuid和setgid位,做用是無權執行二進制命令的用戶,會以root身份或相應的屬主/組身份去執行相對應的命令,典型的例子有:passwd  locate

6.chmod命令用來修改文件權限位,權限位字符的對應數字以下表

權限位字符對應數字

w4

r2

x1

-0


3.7 sudo su – 切換用戶 

第7題執行下面命令時發現提示須要輸入密碼,請問提示輸入的密碼是哪一個用戶的密碼。 

[test@oldboy ~]$ sudo su - oldboy

解答:普通用戶test,想切換到普通用戶oldboy,確定要輸入oldboy用戶的密碼。


3.8 考查echo參數-n:不換行輸出

第8題請問在一個命令上加什麼參數能夠實現下面命令的內容在同一行輸出。 

echo "oldboy";echo "oldboy"

解答:

[root@lb01 ~]# echo "oldboy";echo "oldboy"  
oldboy
oldboy
[root@lb01 ~]# echo -n "oldboy";echo "oldboy"  
oldboyoldboy


總結:

echo經常使用參數:

不換行輸出   -n  do not output the trailing newlinetrailing newline(換行)
使用轉義字符 -e  enable interpretation of backslash escapes
                 interpretation(翻譯)backslash(反斜槓)escapes(轉義符)
Tab鍵      \t  horizontal tab(製表符)
回車      \n  new line


3.9 考查date命令※※※※※

第9題請給出以下格式的 date 命令 例:11-02-26。再給出實現按周輸出 好比:週六輸出爲 6,請分別給出命令。 

解答:

[root@oldboy ~]# date -s 20110226# 修改日期爲2011-02-26
Sat Feb 26 00:00:00 CST 2011
[root@oldboy ~]# date +%y-%m-%d  # 設置日期的輸出格式(year-month-day)   
11-02-26
[root@oldboy ~]# date +%w# 週六輸出爲6(week)
6


總結:

[root@oldboy ~]# date# 查看當前的日期和時間
Thu May 12 07:09:13 CST 2016
# 2016-5-12 週四 CST( Central Standard Time)美中央時區
[root@oldboy ~]# date -s "2016/05/23 08:03"
# -s(set)參數能夠設置當前的日期與時間
Mon May 23 08:03:00 CST 2016
[root@oldboy ~]# date +%y-%m-%d# 年份只顯示前2位
16-05-23
[root@oldboy ~]# date +%Y-%m-%d# 年份正常顯示是%Y,只顯示年份後兩位是%y
2016-05-23
[root@oldboy ~]# date +%F# %F <==> %Y-%m-%d
2016-05-23
[root@oldboy ~]# date +%H:%M:%S# 完整的日期格式
08:47:31
[root@oldboy ~]# date +%X  # 完整的時間格式
08:47:37 AM
[root@oldboy ~]# date +%F\ %X# 日期 + 時間
2016-05-23 08:53:36 AM
[root@oldboy ~]# date +%F# 當前日期
2016-05-23
[root@oldboy ~]# date +%F -d "-1day"# 昨天
2016-05-22
[root@oldboy ~]# date +%F -d "-2day"# 前天
2016-05-21
[root@oldboy ~]# date +%F -d "+2day"# 後天
2016-05-25
-d, --date=STRINGdisplay time described by STRING, not ‘now’
用字符串內定義的格式顯示時間描述,不是如今的時間
[root@oldboy /]# date +%H:%M:%S# 當前的時間
10:32:54
[root@oldboy /]# date +%X# 當前時間的簡寫
10:33:00 AM
[root@oldboy /]# date +%F-%H -d "+2hour"# 兩個小時後
# %H這個參數必須加,不然就不顯示時間(小時)格式了
2016-05-23-12
[root@oldboy /]# date +%F-%H -d "-2hour"# 兩個小時前
2016-05-23-08


打包文件的案例

[root@oldboy ~]# tar zvcf test_`date +%F`.tar.gz ./test/ 
[root@oldboy ~]# tar zvcf test_$(date +%F).tar.gz ./test
[root@oldboy ~]# ll test_2016-05-23.tar.gz 
-rw-r--r--. 1 root root 204 May 23 09:03 test_2016-05-23.tar.gz


經常使用參數以下:

-s       # set參數能夠設置當前的日期與時間
-d--date=STRINGdisplay time described by STRING, not ‘now’
         # 用字符串內定義的格式顯示時間描述,不是如今的時間
%y     last two digits of year (00..99)# 年份最後2位:16
%Y     year# 年份正常格式:2016
%m     month (01..12)# 6月:06
%d     day of month (e.g, 01)# 5號:05
%F     full date; same as %Y-%m-%d# 完整的日期格式:2016-05-23
%X     locale’s time representation (e.g., 23:13:48)#完整的時間格式:23:13:48
%H     hour (00..23)# 早上8點:08
%M     minute (00..59)# 9分鐘:09
%S     second (00..60)# 第5秒:05
%w     day of week (0..6); 0 is Sunday# 週六:6


3.10 全局變量

第10題當從 root 用戶切到普通用戶時,執行 ifconfig 會提示。 

[oldboy@student ~]$ ifconfig 
-bash: ifconfig: command not found # 提示:c58會遇到,c64沒有此問題

請問這是爲何?如何解決,請給出詳細解決過程。 

解答:

緣由:沒有帶入全局變量。

解決辦法:全路徑執行命令。

3.11 date命令擴展

第11題擴展問題:打印三天前的日期格式如:2011-02-26 

解答:

[root@oldboy ~]# date +%F# 當前的日期
2016-05-23
[root@oldboy ~]# date +%Y-%m-%d -d "-3day"# 3天前的日期
2016-05-20
[root@oldboy ~]# date +%F -d "-3day"# 3天前的日期
2016-05-20


擴展:

[root@oldboy /]# date +%H:%M:%S# 當前的時間
10:32:54
[root@oldboy /]# date +%X# 當前的時間的簡寫
10:33:00 AM
[root@oldboy /]# date +%F-%H -d "+2hour"# 兩個小時後
# %H這個參數必須加,不然就不顯示時間(小時)格式了
2016-05-23-12
[root@oldboy /]# date +%F-%H -d "-2hour"# 兩個小時前
2016-05-23-08

3.12 grep如何過濾空格

第12題已知/oldboy/test.txt 文件內容爲: 

oldboy 
 
xizi
 
xiaochao

請問如何把文件中的空格過濾掉(要求命令行實現)。 

思路:

(1)利用字符點,匹配任意一個字符。

(2)先把空行過濾出來,再取反。

解答:

準備練習文件

cat >>/oldboy/test.txt<<EOF
oldboy
xizi
xiaochao
EOF


方法一:利用「.」過濾空格,點表明且只能表明任意一個字符

[root@lb01 ~]# grep . -n  /oldboy/test.txt
1:oldboy
3:xizi
5:xiaochao


方法二:過濾空行,再取反

[root@lb01 ~]# grep -vn "^$" /oldboy/test.txt
1:oldboy
3:xizi
5:xiaochao


總結:

1..     表明且只能表明任意一個字符

2.*     表明重複0個或多個前面的一個字符

3..*    匹配全部字符

4.^$     表明空行

5.-n     表明顯示行號

6.-v     表明取反


3.13 grep 或 egrep過濾

第13題已知/oldboy/ett.txt 文件內容爲: 

oldboy olldboooy 
test

請使用 grep 或 egrep 正則匹配的方式過濾出前兩行內容。


解答:

準備練習文件

cat >>/oldboy/ett.txt <<EOF
oldboy olldboooy
test
EOF

方法一:

[root@lb01 ~]# grep -En "^o|^t" /oldboy/ett.txt
1:oldboy olldboooy
2:test


方法二:

[root@lb01 ~]# egrep -n --color "^o|^t" /oldboy/ett.txt 
1:oldboy olldboooy
2:test


總結:

1.^表明一行的開頭

2.-n表明顯示行號

3.-E表明使用擴展的正則表達式


3.14 考查6個目錄結構知識

第14題請描述下列路徑的內容是作什麼的? 

/var/log/messages
/var/log/secure
/var/spool/clientmqueue
/proc/interrupts
/etc/fstab
/etc/profile


解答:

/var/log/messages系統信息默認日誌文件,按周自動輪循。

/var/log/secure記錄登錄系統存取信息的文件(無論認證成功仍是認證失敗都會記錄),它是系統安全的日誌文件,依賴於rsyglog服務開啓。

/var/spool/clientmqueue當郵件服務未啓動時,全部發給系統管理員的郵件都將堆放在此。

/proc/interrupts目前系統上面的 IRQ 分配狀態。

/etc/fstab開機自動掛載系統,(全部分區)開機都會自動掛載。

/etc/profile系統全局環境變量永久生效的配置文件,用來定義別名以及PATH變量等。

3.15 快速查到 ifconfig 的全路徑

第15題如何快速查到 ifconfig 的全路徑(假如你不知道其路徑),請給出命令。 


解答:

方法一:which - shows the full path of (shell) commands

[root@lb01 ~]# which ifconfig
/sbin/ifconfig


方法二:whereis - locate the binary, source, and manual page files for a command

[root@lb01 ~]# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz


方法三:locate - find files by name

[root@lb01 ~]# locate ifconfig
/sbin/ifconfig
/usr/sbin/pifconfig
/usr/share/man/de/man8/ifconfig.8.gz
/usr/share/man/fr/man8/ifconfig.8.gz
/usr/share/man/man8/ifconfig.8.gz
/usr/share/man/man8/pifconfig.8.gz
/usr/share/man/pt/man8/ifconfig.8.gz


總結:

1.which顯示shell命令的全路徑

2.whereis定位一個命令的二進制文件,源代碼,命令的幫助文件(manual page files)

3.locate按名字找出文件(只能查updatedb庫裏內容,locate從/var/lib/mlocate/mlocate.db查找路徑)


3.16 定時任務

第16題每週日上午 9:30 來老男孩 linux 培訓上課(用/oldboy.sh 代替),請用 linux 定時任務命令表示。

思路:

1.先在命令行測試

2.編寫腳本測試腳本

3.利用crontab -e 編輯定時任務的配置文件(/var/spool/cron/root)

4.測試crond

5.完成操做(若是有錯誤,應立馬排錯)


解答:

1.先在命令行測試

[root@lb01 ~]# echo "go to oldboy training to learn linux."

2.編寫腳本測試腳本

[root@oldboy ~]# echo 'echo "go to oldboy training to learn linux."' >/oldboy.sh
[root@oldboy ~]# /bin/sh /oldboy.sh
go to oldboy training to learn linux.

3.利用crontab -e 編輯定時任務的配置文件

[root@oldboy ~]# crontab -e# 分 時 日 月 周
#remind task by ChenDianHu at 2016.5.26
30 09 * * 0 /bin/sh /oldboy.sh >/dev/null 2>&1


總結:

1.命令的執行最好用腳原本代替

2.執行腳本時使用絕對路徑

3.利用crontab -e 編輯配置文件時,任務的書寫儘可能用複製

4.每一條任務最好加註釋,結尾最好無輸出(>/dev/null 2>&1)

3.17 如何查看當前有哪些用戶在線的 linux 命令

第17題請給出查看當前哪些用戶在線的 linux 命令。 

解答:

方法一:w - Show who is logged on and what they are doing

[root@oldboy ~]# w
 09:11:42 up 1 day,  5:29,  3 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                11May16 18days  0.11s  0.11s -bash # 處於命令行
chen     pts/0    10.1.8.77        09:11   17.00s  0.02s  0.02s -bash # 處於命令行
root     pts/1    10.1.8.77        07:56    0.00s  0.27s  0.00s w# 正在執行命令w


方法二:who - show who is logged on

[root@oldboy ~]# who
root     tty1         2016-05-11 14:13
chen     pts/0        2016-05-30 09:11 (10.1.8.77)
root     pts/1        2016-05-30 07:56 (10.1.8.77)


方法三:users - print the user names of users currently logged in to the current host

[root@oldboy ~]# users
chen root root


方法四:last:show listing of last logged in users

[root@lb01 ~]# last|grep "still logged in"
root     pts/1        10.0.0.1         Fri Aug 26 10:50   still logged in   
root     pts/0        10.0.0.1         Thu Aug 25 23:44   still logged in


總結:

1.w       顯示有哪一個用戶已登陸系統,以及用戶正在作的事

2.who       查看(登陸)用戶名,以及所啓動的進程

3.users      打印輸出登陸服務器的用戶名

4.last       顯示最近登陸的用戶

5.lastlog     顯示有哪些用戶遠程登陸過系統

lastlog - reports the most recent login of all users or of a given user


3.18 賬戶10內過時

第18題公司一開發人員申請對某一服務器 10 天的普通用戶權限,請問你如何操做?

思路:

1.利用useradd 命令添加新用戶時,指定-e參數便可。

2.能夠利用chage命令查看用戶的過時時間。

解答:

useradd chen -e `date +%F -d "+10day"`

檢查

[root@lb01 ~]# chage -l chen
Last password change                                    : Aug 26, 2016
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : Sep 05, 2016
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7
[root@lb01 ~]# date +%F
2016-08-26# 當前時間,10天后是9月5日


總結:

useradd參數

-e, --expiredate EXPIRE_DATE
    The date on which the user account will be disabled. The date is specified in the format YYYY-MM-DD.
-g  主組
-G  附加組
-d  指定家目錄
-M  不建立家目錄
-m  強制建立家目錄
-u  指定uid
-s  指定shell,經常使用/sbin/nologin
chage - change user password expiry information
-l, --list
   Show account aging information.

3.19 linux關機和重啓的命令

第19題請給出正確的關機和重啓服務器的命令。 

解答:

服務器關機的命令以下:

init 0、halt、poweroff、shutdown -h 0  # 馬上關機
shutdown -h +10             # 十分鐘後關機
shutdown -h 23:00            # 在23點時,關機


服務器重啓的命令以下: 

init 六、reboot、shutdown -r now  # 馬上重啓
shutdown -r +10           # 十分鐘後重啓
shutdown -r 23:00          # 在23點時,重啓


總結:

1.shutdown命令只有擁有root權限纔可使用。

2.若是是經過shutdown命令關機或重啓的話,能夠用shutdown -c命令取消重啓。


3.20 SecureCRT 命令行快捷鍵

第20題請寫出下面 linux SecureCRT 命令行快捷鍵命令的功能? 

Ctrl + a
Ctrl + c
Ctrl + d
Ctrl + e
Ctrl + l
Ctrl + u  
Ctrl + k 
tab 
Ctrl+shift+c 
Ctrl+shift+v


解答:

快捷鍵         功能

Ctrl + a == home    將光標定位到行首

Ctrl + c     終止當前任務

Ctrl + d     註銷當前用戶

Ctrl + e == end     將光標定們到行尾

Ctrl + l         清屏

Ctrl + u     刪除光標前面的內容

Ctrl + k     刪除光標後面的內容

Ctrl + w     刪除光標前面的單詞(一個一個刪)

tab         補全命令,提示幫助

Ctrl+shift+c     複製

Ctrl+shift+v     粘貼

Esc + .           調用上一次命令的文件路徑

相關文章
相關標籤/搜索