linux腳本試題
① 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
② LINUX:編寫一個shell腳本,並利用函數實現數列求和運算
#!/bin/bash
sum=0
if[$#-ne2]
then
echo"Pleaseinputtwonumbers!"
elif[$1-gt$2]
then
echo"."
else
foriin$(seq$1$2)
do
sum=`expr$sum+$i`
done
echo""$1~$2"sumis$sum"
fi
#執行結果
#[root@localhostopt]#./b.sh36
#"3~6"sumis18
#[root@localhostopt]#./b.sh3
#Pleaseinputtwonumbers!
#[root@localhostopt]#./b.sh356
#Pleaseinputtwonumbers!
#[root@localhostopt]#./b.sh32
#.
#[root@localhostopt]#./b.sh325
#"3~25"sumis322
③ Linux基礎測試試題及答案
一、選擇題(非單選)
1、在正則表達式當中下面那一個字元集表示非空格字元( )
a. [:graph:]
b. [:digit:]
c. [:space:]
d. [:alpha:]
參考答案:A
2、關於bash變數論述正確的是:( )
a. 可以在/etc/porfile裡面設置對所有用戶生效,永久
b. 在用戶家目錄下的.bash_profile文件中添加變數對單一用戶生效,臨時生效
c. 可以使用export 定義,只對當前shell生效,永久有效
d. 以上說法都不對
參考答案:A
3、當登錄linux後,登錄的shell將查不同啟動文件來處理其中的命令,處理文件的順序是( )
a. /etc/profile --> ~/.bash_profile --> ~/.profile --> ~/.bash_login
b. /etc/profile --> ~/.bash_profile --> ~/.bash_login --> ~/.profile
a. ~/.bash_profile -->/etc/profile --> ~/.profile --> ~/.bash_login
a. ~/.bash_login --> ~/.profile --> ~/.bash_profile -->/etc/profile
參考答案:B
4、創建多級目錄命令是( )
A、mkdir -p
B、mkdir -v
C、mkdir -m
D、mkdir -Z
參考答案:A
5、有一些文件root用戶也無法直接修改,可使用說明命令看看其許可權( )
A、ls -lh
B、file
C、stat
D、lsattr
參考答案:D
6、linux上為了使用更多簡潔操作,可以使用別名來簡化命令,以下別名定義正確的是( )
A、LS=‘ls -lh’
B、set cnet ‘cd /etc/sysconfig/network-scripts/ifcfg-eth0’
C、alias die=‘rm -fr’
D、unalias die=‘rm -fr’
參考答案:C
7、常見的文本編輯器工具有哪些( )
A、nano
B、cat
C、cut
D、vim
參考答案:AD
8、使用find命令查找文件時,以下哪個選項代表套接字文件( )
A. d
B. l
C. p
D. s
參考答案:D
9、如一個文本文件的各許可權位是這樣的:-rw-r--r--,對該文件執行chmod g+s 後,其許可權位應顯示為( )
A. -rw-r-Sr--
B. -rw-r-sr--
C. -rw-r--r--
D. -rw-r-xr--
參考答案:A
10、使用fdisk對磁碟進行分區時,LVM分區的類型為( )
A. l
B. lvm
C. 9e
D. 8e
參考答案:D
11、使用tar命令對一個目錄只打包,不壓縮,應該使用如下哪條命令( )
A. tar -cvf
B. tar -zcvf
C. tar -jvf
D. tar -jcvf
參考答案:A
12、shell腳本的哪個位置參數可以表示腳本本身( )
A. $0
B. $1
C. $#
D. $@
參考答案:A
13、通常我常說的四層負載和七層負載對應OSI模型分別是?
A. 傳輸層,表示層
B. 網路層,應用層
C. 傳輸層,應用層
D. 網路層,表示層
參考答案:C
14、系統中存在兩個進程, 其pid分別為 110, 119, 此時希望當119需要佔用CPU時總是要優於110, 應如何做?( )
A. 調整進程119的nice值, nice -5 119
B. 調整進程119的nice值, renice -5 119
C. 調整進程110的nice值, nice -5 110
D. 調整進程119的nice值, renice -5 110
參考答案:B
15、如何在非互動式的情況下為用戶mage添加一條crontab任務?
A. 將任務寫入到/var/spool/cron/root
B. 將任務寫入到/var/spool/cron/mage
C. 將任務寫入到/var/spool/root/cron
D. 將任務寫入到/var/spool/mage/cron
參考答案:B
16、CentOS7系統中啟動網路服務的命令是:
A. service network start
B. /etc/init.d/network start
C. systemctl start network.service
D. /etc/init.d/rc.d/init.d start
參考答案:C
17、kernel實現自身初始化時,實現的任務為( )
A.探測可識別的所有硬體;
B.以只讀方式裝載“真正根文件系統”
C.按次序查找各引導設備,第一個有引導程序的設備即為啟動系統用到的設備
D.啟動用戶空間的第一個應用程序:/sbin/init
參考答案:C
18、CentOS 6系統中,Linux系統運行級別,關系對應不正確的是( )
A.4--維護模式,多用戶模式,需要用戶認讓,會啟動網路功能,但不支持使用NFS;
B.1--維護模式,單用戶模式,sigle模式;此級別可允許root用戶直接登錄而無須認證;
C.3--正常級別,完全多用戶模式,文本界面;
D.5--正常級別,完全多用戶模式,圖形界面;
參考答案:A
19、下面命令,可以輸出/etc/passwd文件中root用戶所在行的`是( )
A.awk '{if($1=/root/) print }' /etc/passwd
B.awk -F: '{if($1==/root/) print }' /etc/passwd
C.awk -F: '{if($1=/root/) print }' /etc/passwd
D.awk -F: '{if($1~/root/) print }' /etc/passwd
參考答案:D
20、以下不是/ect/rc.d/rc.sysinit的功能的是()
A.根據配置文件中的設定來設定主機名
B.配置伺服器ip地址
C.列印文本歡迎信息
D.激活LVM和RAID設備
參考答案:B
判斷題(如有興趣的同學可以分析為什麼對錯)
1、在對稱加密中,加密與解密使用同一密鑰,主要演算法有md5,sha1。
參考答案:錯
解析:md5與sha1演算法是單向加密的演算法,並非對稱加密的演算法
2、兩塊硬碟實現RAID1之後,整體寫性能會變差
參考答案:對
3、做RAID5至少需要3塊磁碟。
參考答案:對
4、keepalived 是基於VRRP協議為基礎實現的。
參考答案:對
5、進程A在啟動時,系統的可打開的最大文件描述符個數為1024, 此時將系統的可打開的最大文件描述符個數設置為65535, 之後如果進程A創建子進程後, 那麼子進程可打開的最大文件描述符個數為1024, 對嗎?
參考答案:錯
問答題
1、找出當前目錄下10天沒有改變,大小大於4K的普通文件或目錄
參考答案:
find ./ -type d -o -type f -size +4k ! -mtime -10
2、使用ss命令, 查看當前系統上處於time_wait 狀態的連接
參考答案:
ss -4 state time-wait 或者 ss -o state time-wait
3、請簡述centos6的啟動流程
參考答案:
POST --> BIOS(boot sequence) --> MBR (bootloader) --> kernel(ramdisk) --> /sbin/init
設定默認運行級別 --> 使用/etc/rc.d/rc.sysinit腳本進行系統初始化 -->分別關閉和啟動對應級別的所有服務 --> 啟動字元終端 --> 啟動圖形終端(如果默認級別為5)--> 顯示登錄提示;
4、 yum update和yum upgrade有什麼區別?
參考答案:
yum update:升級軟體包的同時也升級軟體和系統內核
yum upgrade:只升級軟體包,不升級軟體和系統內核
5、在每周二的凌晨1點5分執行腳本/data/get_username.sh,並將腳本的輸出寫至/tmp/get_username.log日誌文件中
參考答案:
5 1 * * 2 /bin/sh /data/get_username.sh &>> /tmp/get_username.log
或者
5 1 * * 2 /bin/sh /data/get_username.sh >> /tmp/get_username.log 2>&1
④ 求一個Linux腳本,判斷文件是否存在即
#!/bin/bash
Filename=/usr/123.txt
File_time=`stat -c %Y $Filename`;
Sys_time=`date +%s`;
if [ ! -f /usr/123.txt ]; then
echo "0"
else
exit 0
if [ $[ $Sys_time - $File_time ] -gt 300 ];then
echo "1";
else
echo "0";
fi
fi