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

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

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

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

思路:

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

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

解答:

準備練習素材:

[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 + sed

[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 6、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 + .           調用上一次命令的文件路徑



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章