當前位置:首頁 » 編程軟體 » shell腳本試題

shell腳本試題

發布時間: 2022-11-17 02:46:43

㈠ shell腳本問題

正確答案,這個是清睿的面試題:
awk '$4>"[13/Apr/2017:15:00:00"&&$4<"[13/Apr/2017:17:00:00"' access.log|awk '{print $1}'|sort|uniq -c|sort -n -k 1 -r|head -n 5

㈡ shell 腳本 if 的用法小問題

1. 執行shell腳本的時候加上 -x ,執行腳本時會把過程列出來!(有利於我這種新手學習)sh -x shell (./shell 也可以執行shell腳本 但是沒有-x參數)2. 傳的值的個數大於 read 定義的接受變數的時候會把多餘的值都給最後一個變數!!3. expr 對整數型變數進行運算 如果運算結果不是整數小數點後面的全部省去 (乘號要用轉意字元'/') .4. 在shell腳本裡面 執行一條輸出的命令(pgrep mysqld)怎麼吧輸出的結果作為值賦給變數?web=$(/usr/bin/pgrep mysqld) #可以用 變數=$(命令) 和 變數=`命令` 來吧命令執行的結果賦給變數
if [ $web = ]
then
/etc/init.d/mysql start
fi

5.查看某個命令所在的位置可以用 whereis /which/type 三個命令來查看6.awk命令的應用作用:分段提取! (一行為單位來進行分段)awk -F [分隔符] '條件 動作' /對象例: awk -F : '$3==0 {print $1}' /etc/passwd例: awk -F : '$1 == root {print $1} ' /etc/passwd# -F : 用:分割passwd每行的內容 ($1 指第一段內容 $2 指第二段內容$n 指第n段內容)# ' 匹配 動作' 單引號裡面寫的是 匹配命令和列印動作 匹配$3==0 第三段等於0 列印{print $1} 列印第一段內容 ($3 == 0 匹配出行 在列印出這些行的第一段內容 )

linux試題求大神幫解一下趕時間謝謝了

1. 用grep命令顯示在文件a中所有包含每個字元串至少有5個連續小寫字元的字元串的行。
cat a | grep -E "[a-z]{5,}"
2. $ find / -name "test.c" -type f -mtime +3 -user greek -exec rm {} \;的含義。
找出並且刪除根目錄及其子目錄下 所有文件名為test.c的普通的文本文件 ,且該文件的最後修改時間以當前時間為參照大於3天時間
3. 在一個程序崩潰時,它一般會在指定目錄下生成一個core文件。如果沒生成core文件,可能是什麼原因?怎麼解決?
答:用「ulimit -c」命令查看當前系統設置的core文件的大小門限值
一般情況是core文件的大小超過了這個值
執行 「ulimit -c unlimited」命令後,操作系統不在限制core文件大小,或者把unlimited 替換成一個適當的值。
4. 執行命令 ls –l 時,某行顯示如下:
-rw-r--r-- 1 chris chris 207 jul 20 11:58 mydata
(1)用戶chris對該文件具有什麼許可權?
答:chris對mydata文件具有讀寫的許可權
(2)如何使任何用戶都可以讀寫執行該文件?
答:chmod 777 mydata
5. 大學校門處要求來客登記,只有一張登記表,登記表同時只能由一個人使用,用P、V原語描述一個校外人員進入大學的過程。
三、程序填空題(每小題10分,共20分)1.閱讀下面程序,請將其補充完整。
#define SHMDATASIZE 1000 //共享內存大小,以位元組為單位
void server(void)
{
union semun sunion;
int semid, shmid;
void *shmdata;
char *buffer;
semid=semget(_________________);//創建兩個信號量
sunion.val=1;
semctl(____________________);//設置信號量編號為0的值
sunion.val=0;semctl(____________________);//設置信號量編號為1的值
shmid=shmget(____________________);
shmdata=shmat(___________________);
*(int *)shmdata=semid;
buffer=shmdata+sizeof(int);
printf("Server is running with SHM id ** %d**\n", shmid);}
2.閱讀下面程序,請將其補充完整。
#define BUFFERSIZE 1024
void locksem(int semid, int semnum)
{
struct sembuf sb;
sb.sem_num=semnum;
sb.sem_op=________;//P操作
sb.sem_flg=SEM_UNDO;
semop(_______________________);
}
void unlocksem(int semid, int semnum)
{
struct sembuf sb;
sb.sem_num=semnum;
sb.sem_op=________;//V操作
sb.sem_flg=SEM_UNDO;
semop(______________________);
}
void clientwrite(int semid, char *buffer){
locksem(semid, 0);
printf("Enter Message: ");
fgets(_______________);//從鍵盤輸入一個字元串
unlocksem(semid, 1);
}
四、閱讀程序題(共3小題,每小題10分,共30分)
1. 運行下面程序,最多運行多少個進程?畫出進程家族樹。
#include "stdio.h"
#include "sys/types.h"
#include "unistd.h"
int main()
{
pid_t pid1;
pid_t pid2;
pid1 = fork();
pid2 = fork();
}
答最多有4個進程
首先第一次調用fork 主進程會產生一個pid1的子進程
然後pid1和主進程會分別調用一次pid2 = fork(); 分別再產生一個子進程因此一共最多4個進程
2. 下面給出了一個SHELL程序,試對其行後有#(n)形式的語句進行解釋,並說明程序完成的功能。
#!/bin/bash #(1)定義該shell腳本由哪中類型的shell解釋器解析
dir=$1 #(2)將shell程序的第一個命令行參數付給變數dir
if [ -d $dir ] #(3)判斷dir的值是否是一個目錄
then cd $dir #(4)如果dir是目錄則進入該目錄
for file in *
do
if [-f $file ] #(5)判斷file是否為一個文件
then
cat $file #(6)打開文件,將文件內容輸出到標准輸出流中
echo 「end of file $file」
fi
done
else
echo 「bad directory name $dir」
fi
3. 閱讀Makefile文件,回答以下問題:
(1) 此Makefile文件的主要功能是什麼?
編譯f1.c f2.c f3.c三個文件,最終生成動態鏈接庫libmys.so
(2) 此Makefile文件包含多少個規則?它們分別是什麼?
包含4個規則
第一個 「TGT = $(patsubst %.c, %.o, $(SRC))」
將$(SRC)目錄下的所有以.c為後綴的文件替換成.o結尾,且存入TGT變數中
第二個 「%.o : %.c
cc -c $<」
用cc命令依次將三個源文件編譯成目標文件
第三個
libmys.so : $(TGT)
cc -shared -o $@ $(TGT)
用上一步生成的3個中間文件生成動態鏈接庫libmys.so
第四個
clean:
rm -f $(TGT)
執行 make clean 後 會刪除所有的中間文件即.o文件
(3) 使用此Makefile文件可以生成目標文件f2.o嗎?為什麼?
答:可以,因為該makefile的邏輯是先生成所有的.o文件,然後再生成動態鏈接庫。
all : libmys.so
SRC = f1.c f2.c f3.c
TGT = $(patsubst %.c, %.o, $(SRC))
%.o : %.c
cc -c $<
libmys.so : $(TGT)
cc -shared -o $@ $(TGT)
clean:
rm -f $(TGT)

編程題沒做,樓主一、見諒,有時間做了補充下答案

㈣ 分享70個經典的 Shell 腳本面試題與答案

1) 如何向腳本傳遞參數 ?

./script argument

2) 如何在腳本中使用參數 ?

第一個參數 : $1 ,第二個參數 : $2

cp $1 $2

3) 如何計算傳遞進來的參數 ?

$#

4) 如何在腳本中獲取腳本名稱 ?

$0

5) 如何檢查之前的命令是否運行成功 ?

$?

6) 如何獲取文件的最後一行 ?

tail-1

7) 如何獲取文件的第一行 ?

head-1

8) 如何獲取一個文件每一行的第三個元素 ?

awk'{print $3}'

9) 假如文件中每行第一個元素是 FIND,如何獲取第二個元素

awk'{ if ($1 == "FIND") print $2}'

10) 如何調試 bash 腳本

將 -xv 參數加到 #!/bin/bash 後

例子:

#!/bin/bash –xv

11) 舉例如何寫一個函數 ?

12) 如何向連接兩個字元串 ?

輸出

HelloWorld

13) 如何進行兩個整數相加 ?

14) 如何檢查文件系統中是否存在某個文件 ?

15) 寫出 shell 腳本中所有循環語法 ?

for 循環 :

while 循環 :

until 循環 :

16) 每個腳本開始的 #!/bin/sh 或 #!/bin/bash 表示什麼意思 ?

這一行說明要使用的 shell 。 #!/bin/bash 表示腳本使用 /bin/bash 。對於 python 腳本,就是 #!/usr/bin/python 。

17) 如何獲取文本文件的第 10 行 ?

head -10 file|tail -1

18) bash 腳本文件的第一個符號是什麼

#

19) 命令: [ -z "" ] && echo 0 || echo 1 的輸出是什麼

0

20) 命令 「export」 有什麼用 ?

使變數在子 shell 中可用。

21) 如何在後台運行腳本 ?

nohup command&

大部分時間我們可能是遠程使用Linux,我碰到過由於網路斷線使得在後台運行的 command & 沒了...

22) "chmod 500 script" 做什麼 ?

使腳本所有者擁有可執行許可權。

23) ">" 做什麼 ?

重定向輸出流到文件或另一個流。

24) & 和 && 有什麼區別

25) 什麼時候要在 [ condition ] 之前使用 「if」 ?

當條件滿足時需要運行多條命令的時候。

26) 命令: name=John && echo "My name is $name" 的輸出是什麼

My name is John

27) bash shell 腳本中哪個符號用於注釋 ?

#

28) 命令: echo ${new:-variable} 的輸出是什麼

variable

29) ' 和 " 引號有什麼區別 ?

30) 如何在腳本文件中重定向標准輸出和標准錯誤流到 log.txt 文件 ?

在腳本文件中添加 "exec >log.txt 2>&1" 命令。

31) 如何只用 echo 命令獲取字元串變數的一部分 ?

例子:

32) 如果給定字元串 variable="User:123:321:/home/dir" ,如何只用 echo 命令獲取 home_dir ?

echo ${variable#*:*:*:}

echo ${variable##*:}

33) 如何從上面的字元串中獲取 「User」 ?

echo ${variable%:*:*:*}

echo ${variable%%:*}

34) 如何使用 awk 列出 UID 小於 100 的用戶 ?

awk -F: '$3<100' /etc/passwd

35) 寫程序為用戶計算主組數目並顯示次數和組名

36) 如何在 bash shell 中更改標準的域分隔符為 ":" ?

IFS=":"

37) 如何獲取變數長度 ?

${#variable}

38) 如何列印變數的最後 5 個字元 ?

echo ${variable: -5}

39) ${variable:-10} 和 ${variable: -10} 有什麼區別?

40) 如何只用 echo 命令替換字元串的一部分 ?

echo ${variable//pattern/replacement}

41) 哪個命令將命令替換為大寫 ?

tr '[:lower:]' '[:upper:]'

42) 如何計算本地用戶數目 ?

wc -l /etc/passwd|cut -d" " -f1 或者 cat /etc/passwd|wc -l

43) 不用 wc 命令如何計算字元串中的單詞數目 ?

44) "export $variable" 或 "export variable" 哪個正確 ?

export variable

45) 如何列出第二個字母是 a 或 b 的文件 ?

ls -d ?[ab]*

46) 如何將整數 a 加到 b 並賦值給 c ?

47) 如何去除字元串中的所有空格 ?

echo $string|tr -d " "

48) 重寫這個命令,將輸出變數轉換為復數: item="car"; echo "I like $item" ?

item="car"; echo "I like ${item}s"

49) 寫出輸出數字 0 到 100 中 3 的倍數(0 3 6 9 …)的命令 ?

for i in {0..100..3}; do echo $i; done

for (( i=0; i<=100; i=i+3 )); do echo "Welcome $i times"; done

50) 如何列印傳遞給腳本的所有參數 ?

echo $*

echo $@

51) [ $a == $b ] 和 [ $a -eq $b ] 有什麼區別

52) = 和 == 有什麼區別

53) 寫出測試 $a 是否大於 12 的命令 ?

[ $a -gt 12 ]

54) 寫出測試 $b 是否小於等於 12 的命令 ?

[ $b -le 12 ]

55) 如何檢查字元串是否以字母 "abc" 開頭 ?

[[ $string == abc* ]]

56) [[ $string == abc* ]] 和 [[ $string == "abc*" ]] 有什麼區別

57) 如何列出以 ab 或 xy 開頭的用戶名 ?

egrep "^ab|^xy" /etc/passwd|cut -d: -f1

58) bash 中 $! 表示什麼意思 ?

後台最近執行命令的 PID.

59) $? 表示什麼意思 ?

前台最近命令的結束狀態。

60) 如何輸出當前 shell 的 PID ?

echo $$

61) 如何獲取傳遞給腳本的參數數目 ?

echo $#

62) $* 和 $@ 有什麼區別

63) 如何在 bash 中定義數組 ?

array=("Hi" "my" "name" "is")

64) 如何列印數組的第一個元素 ?

echo ${array[0]}

65) 如何列印數組的所有元素 ?

echo ${array[@]}

66) 如何輸出所有數組索引 ?

echo ${!array[@]}

67) 如何移除數組中索引為 2 的元素 ?

unset array[2]

68) 如何在數組中添加 id 為 333 的元素 ?

array[333]="New_element"

69) shell 腳本如何獲取輸入的值 ?

a) 通過參數

./script param1 param2

b) 通過 read 命令

read -p "Destination backup Server : " desthost

70) 在腳本中如何使用 "expect" ?

㈤ shell腳本編程

系統管理員用的

1 省心省力
你要創建幾十個用戶,給他們家目錄,創建samba密碼,你一個個創建會搞死人的,寫個腳本,執行一遍就完了

2 自動工作
自動在晚上3點備份資料庫,你不可能晚上爬起來開電腦連接到公司伺服器上去操作吧,這個寫個腳本加到cronjob 完事

3 文本分析
給你一個很大的文本,分析裡面的郵件地址出現了多少次,你不可能一個個數吧,數一年都數不完,寫個腳本幾分鍾就統計出來了,awk只需要一行,這也是騰訊的一個面試題

做linux sa不會這個是不現實的,不僅會,而且要精通,但是你只會這個 shell也不行,因為搞linux的還要求會其他的東西

㈥ 編寫兩個shell 腳本s1,s2,其中s1能夠啟動3個進程,進程名稱分別為a,b,c,每個進程的代碼如下:

1) cat d1 d2 >d3 # 前提是文本文件,還可以使用join
2)
s1.sh
#!/bin/bash
/path/a &
/path/b &
/path/c &
s2.sh
#!/bin/bash
kill -9 $(pgrep a) #或者kill -9 $(ps aux | grep -w a | grep -v grep | awk '{print $2}')
kill -9 $(pgrep b) #同上
kill -9 $(pgrep c) #同上

㈦ linux(shell)腳本編程題目求教,謝謝(200分,滿意繼續追加分)

先佔下樓層,空了慢慢給你做!

先做第一題1月12日:

#!/bin/bash
echo this "date" :`date`;
echo this "cal" :`cal`;
echo this "pwd" :`pwd`;
echo this "ls" : `ls`.

第二題1月12日:

這個沒法寫了撒 太籠統;建議翻翻書。
我列個環境變數的例子吧:

#!/bin/bash
echo "第二題":
TEST_DIR=/root
export $TEST_DIR;
echo "環境變數TEST_DIR是/root".

第三題1月12日:

#!/bin/bash

echo "第三題for":
echo "3.1 for"
x=0
for ((i=1 ; i<101 ;i++));
do
x=$(($x+$i))
done
echo $x

echo "---------------------------------"
echo "第三題while":
echo "3.2 while"
x=0
i=1
while [ $i -lt 101 ]
do
i=$(($i+1))
x=$(($x+$i))
done
echo $x

第三題第二個

#!/bin/bash

echo "3.2"

function fib {
if [ $1 -lt 2 ]; then
echo -n $1
else
local n_2=$(($1 - 2))
local n_1=$(($1 - 1))
local f_n_2=$(fib $n_2)
local f_n_1=$(fib $n_1)
local f_n=$((f_n_2 + f_n_1))
echo -n $f_n
fi
}

n=10
for ((i = 0; i < $n; i++))
do
printf "fib(%2d) = %d\n" $i $(fib $i)
done

㈧ shell腳本

Shell腳本基本知識
概述:shell其實是內核與用戶之間的一個介面,
shell腳本
如果有一系列經常使用的linux命令,你可以把它們存儲在一個文件腫。shenll可以讀取這個文件,並執行其中的命令。這樣的文件成為腳本文件。
執行shell腳本
要創建一個shell腳本,你要使用任何編輯器比如vi在文本文件中編寫他。
為了使用bashshell賴執行腳本magic,其命令是:bashmagic或者./magic
echo命令:
echo「!」
屏幕上就會回顯「!」
#符號
用於在shell腳本腫可以包含註解入口
echo「hello」
#thisisacommentline.thiswouldnotproceanyoutput!
echo「world!」
第二行是一個註解的例子。它將被shell忽略,而且不產生任何消息
變數:
可以在任何時間通過簡單的賦值來創建。
語法:
<variablename>-<value>
Linux中的所有變數都被當作字元串
引用變數:
$符號用於引用一個變數的內容
variable1=${variable2}
讀入值給變數
在執行shell腳本時,shell還允許用戶直接從鍵盤讀入一個值給變數,還可以使用read命令來作。
$readfname
本地和全局shell變數
局部變數
當引用shell時,只有創建它的shell能夠知道變數的存在
全局變數
稱為子shell
shell中創建的變數局部於創建它的shell,除非使用export命令特別指出是全局的。
環境變數:
通過改變這些變數的值,用戶能夠定製此環境
一些環境變數的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL
HOME變數
Linux系統中的每個用戶都有一個相關的稱作HOME的目錄
當一個用戶登錄後,進入相應的HOME的目錄
$echo$HOME
PATH變數
包含一列用冒號定界的目錄的路徑名字,便於可執行程序的搜索。
PS1變數
PS1(PromptString1)變數包含了shell提示符,$符號
$PS1=「HELLO>」
HELLO>
PS2變數
是為第二個提示符設置值的環境變數
LOGNAME變數
包含用戶的注冊名字
$echo「${LOGNAME}」
SHLVL變數
該變數包含當前工作的shelllevel
SHELL變數
環境變數存儲了用戶預設的shell
env命令
可用來查看所有的已移出的環境變數表和它們各自的值!
命令替換
在單個命令行中使用多個命令的另外一種方法(非Pipes)是通過命令替換
echo「thedatais`date`」
expr命令
用於求之算術表達式。該命令的輸出被送到標准輸出
$expr4+5
將在屏幕上顯示9
算術展開:
你可以在$((…))中括一個表達式,用下面的命令來計算它的值;
$((expression))
example1
編寫一個shell腳本用於計算呼叫中心未應答的詢問的數量。該腳本應該接受一天那所報告的詢問的總數和應答的詢問的數量,以便計算未應答的詢問的數量。
所有未應答的詢問總數=所有詢問的總數-應答的詢問的數量
<!--[if!supportLists]-->※<!--[endif]-->※※※※※※※※※※※※※※※※※※※※※※※
條件執行
test和[]
求值表達式,並返回true(0)或false()
數值測試:
-eq等於則為真
-ne不等於則為真
-gt大於則為真
-ge大於等於則為真
-lt小於則為真
-le小於等於則為真
if構造
Linuxshell提供了循環和判定的構造,可以在shell腳本中使用
算術測試
結合if構造,它可以用於測試變數的數字值
串測試
test命令也可以用於字元串
=等於則為真
!=不相等則為真
-z字元串長度為零則為真
-n字元串長度不為零則為真
文件測試
test命令也可以用於檢查文件的狀態
-e文件存在則為真
-r文件存在並且可讀則為真
-w文件存在並且可寫則為真
-x文件存在並且可執行則為真
-s文件存在並且至少有一個字元則為真
-d文件存在並且為目錄則為真
-f文件存在並且為普通文件則為真
-c文件存在並且為字元型文件則為真
-b文件存在並且為塊特殊文件則為真
-a並且-o或者!非
exit命令
用於終止shell腳本的執行並返回到$提示符下
case。。。esac
shell腳本中使用的這個構造依據變數的值而執行一組特定指令
當變數的值和其中的一個值匹配的時候,就執行寫在該值下的一組命令。
example3
迭代
while構造
while<條件>
do
<命令(s)>
done
只有條件為真的時候,才能執行do與done之間的命令
until構造
until循環構造的求值模式於while循環相反
until循環將繼續執行直到求值的條件為真的時候
for構造
forvariable_namein<list_of_values>
do

done
for循環取一列值作為輸入並對循環中每個值執行循環
break和contineu命令
同其他語言中的用法
example4
控制進程的執行
請求後台處理
用於請求後台進程的符號是(&)
$wctempfile&
[1]2082
$vinewfile
檢查後台進程
ps(進程狀態)命令為每個當前的活動的每個進程產生一行入口。
終止後台進程
可用kill,如下所示
kill278
查看完成一個命令所花的時間
你可以使用time命令來查看一個命令從開始到結束所花的時間
timefine/etc–name「passwd」2>/dev/null/dev/null表明忽略錯誤信息。
管道的介紹
垂直條(|)是管道字元
它只是shell:「|」前面命令的輸出作為「|」之後命令的輸入發送
ls–l|more
用管道組合命令,功能強大

㈨ 分享70個經典的 Shell 腳本面試題與答案

我們為你的面試准備選擇了 70 個你可能遇到的 shell 腳本面試問題及解答。了解腳本或至少知道基礎知識對系統管理員來說至關重要,它也有助於你在工作環境中自動完成很多任務。在過去的幾年裡,我們注意到所有的 linux 工作職位都要求腳本技能。

1) 如何向腳本傳遞參數 ?

./script argument

例子: 顯示文件名稱腳本

(LCTT 譯註:謝謝某匿名訪客的提醒,原題有誤,修改之。)

2) 如何在腳本中使用參數 ?

第一個參數 : 2

例子 : 腳本會復制文件(arg1) 到目標地址(arg2)

3) 如何計算傳遞進來的參數 ?

4) 如何在腳本中獲取腳本名稱 ?

5) 如何檢查之前的命令是否運行成功 ?

6) 如何獲取文件的最後一行 ?

7) 如何獲取文件的第一行 ?

8) 如何獲取一個文件每一行的第三個元素 ?

9) 假如文件中每行第一個元素是 FIND,如何獲取第二個元素

10) 如何調試 bash 腳本

將 -xv 參數加到 #!/bin/bash 後

例子:

11) 舉例如何寫一個函數 ?

12) 如何向連接兩個字元串 ?

輸出

HelloWorld

13) 如何進行兩個整數相加 ?

輸出

3

據 @kashu 的意見,本題的更佳回答為:

兩個整數相加,還有若干種方法實現:

14) 如何檢查文件系統中是否存在某個文件 ?

15) 寫出 shell 腳本中所有循環語法 ?

for 循環 :

while 循環 :

until 循環 :

16) 每個腳本開始的 #!/bin/sh 或 #!/bin/bash 表示什麼意思 ?

這一行說明要使用的 shell。#!/bin/bash 表示腳本使用 /bin/bash。對於 python 腳本,就是

17) 如何獲取文本文件的第 10 行 ?

18) bash 腳本文件的第一個符號是什麼

19) 命令:[ -z "" ] && echo 0 || echo 1 的輸出是什麼

20) 命令 「export」 有什麼用 ?

21) 如何在後台運行腳本 ?

在腳本後面添加 「&」。

據 @kashu 的意見,更好的答案是:

大部分時間我們可能是遠程使用Linux,我碰到過由於網路斷線使得在後台運行的command &沒了...

22) "chmod 500 script" 做什麼 ?

使腳本所有者擁有可執行許可權。

23) ">" 做什麼 ?

重定向輸出流到文件或另一個流。

24) & 和 && 有什麼區別

25) 什麼時候要在 [ condition ] 之前使用 「if」 ?

當條件滿足時需要運行多條命令的時候。

26) 命令: name=John && echo 'My name is $name' 的輸出是什麼

variable

27) bash shell 腳本中哪個符號用於注釋 ?

28) 命令: echo ${new:-variable} 的輸出是什麼

variable

29) ' 和 " 引號有什麼區別 ?

30) 如何在腳本文件中重定向標准輸出和標准錯誤流到 log.txt 文件 ?

在腳本文件中添加 "exec >log.txt 2>&1" 命令。

31) 如何只用 echo 命令獲取字元串變數的一部分 ?

例子:

32) 如果給定字元串 variable="User:123:321:/home/dir",如何只用 echo 命令獲取 home_dir ?

33) 如何從上面的字元串中獲取 「User」 ?

34) 如何使用 awk 列出 UID 小於 100 的用戶 ?

35) 寫程序為用戶計算主組數目並顯示次數和組名

36) 如何在 bash shell 中更改標準的域分隔符為 ":" ?

37) 如何獲取變數長度 ?

38) 如何列印變數的最後 5 個字元 ?

39) {variable: -10} 有什麼區別?

40) 如何只用 echo 命令替換字元串的一部分 ?

41) 哪個命令將命令替換為大寫 ?

42) 如何計算本地用戶數目 ?

43) 不用 wc 命令如何計算字元串中的單詞數目 ?

44) "export $variable" 或 "export variable" 哪個正確 ?

45) 如何列出第二個字母是 a 或 b 的文件 ?

46) 如何將整數 a 加到 b 並賦值給 c ?

47) 如何去除字元串中的所有空格 ?

48) 重寫這個命令,將輸出變數轉換為復數: item="car"; echo "I like $item" ?

49) 寫出輸出數字 0 到 100 中 3 的倍數(0 3 6 9 …)的命令 ?

50) 如何列印傳遞給腳本的所有參數 ?

51) [ b ] 和 [ b ] 有什麼區別

52) = 和 == 有什麼區別

53) 寫出測試 $a 是否大於 12 的命令 ?

[ $a -gt 12 ]

54) 寫出測試 $b 是否小於等於 12 的命令 ?

[ $b -le 12 ]

55) 如何檢查字元串是否以字母 "abc" 開頭 ?

[[ $string == abc* ]]

56) [[ string == "abc " ]] 有什麼區別*

57) 如何列出以 ab 或 xy 開頭的用戶名 ?

egrep " ab| xy" /etc/passwd|cut -d: -f1

58) bash 中 $! 表示什麼意思 ?

後台最近執行命令的 PID.

59) $? 表示什麼意思 ?

前台最近命令的結束狀態。

60) 如何輸出當前 shell 的 PID ?

echo $$

61) 如何獲取傳遞給腳本的參數數目 ?

echo $#

(LCTT 譯註:和第3題重復了。)

62) @ 有什麼區別

63) 如何在 bash 中定義數組 ?

64) 如何列印數組的第一個元素 ?

65) 如何列印數組的所有元素 ?

66) 如何輸出所有數組索引 ?

67) 如何移除數組中索引為 2 的元素 ?

68) 如何在數組中添加 id 為 333 的元素 ?

69) shell 腳本如何獲取輸入的值 ?

a) 通過參數

b) 通過 read 命令

70) 在腳本中如何使用 "expect" ?

㈩ 在虛擬機下 編寫三個shell腳本

1

#!/bin/bash

[$#-ne1]&&echo"usage:$0filename"&&exit-1

read-p"entercount:"count

i=1
while[$i-le$count]
do
date=`date-d"$idays"+"%Y%m%d"`
>$1_${date}
i=$(($i+1))
done

2

#!/bin/bash

if[$#-ne1];then
echo"usage:$0file1"
exit-1
fi

if[-e$1];then
now=`date+"%Y%m%d%H%M%S"`
mv$1$1_${now}
fi


awk-F':''{print$1}'/etc/passwd|grept>$1

3. 確保user.txt和pass.txt格式正確嗎?

user.txt :

user:passwd:UID:GID::/home/user:/bin/bash

pass.txt:

user:newpasswd

#!/bin/bash
if[$#-ne2];then
echo"usage:$0user_filepasswd_file"
exit-1
fi
read-p"inputaction[add/del]:"act
case$actin
"add")
newusers$1
cat$2|chpasswd
;;
"del")
forusrin`awk-F':''{print$1}'$1`
do
userdel$usr
done
;;
*)echo"ERRORFLAG";;
esac
熱點內容
動圖在線壓縮 發布:2025-05-14 03:35:24 瀏覽:132
w7共享無法訪問 發布:2025-05-14 03:35:24 瀏覽:482
為什麼微信會出現賬號密碼錯誤 發布:2025-05-14 03:03:30 瀏覽:692
幻影腳本官網 發布:2025-05-14 03:01:13 瀏覽:826
servlet的webxml怎麼配置 發布:2025-05-14 02:51:46 瀏覽:772
怎麼取消手勢密碼 發布:2025-05-14 02:51:11 瀏覽:639
openvpn搭建vpn伺服器搭建 發布:2025-05-14 02:47:52 瀏覽:998
密碼忘了從哪裡找 發布:2025-05-14 02:39:09 瀏覽:548
我的世界什麼伺服器有前途 發布:2025-05-14 02:30:31 瀏覽:528
java程序反編譯 發布:2025-05-14 02:18:46 瀏覽:459