shell編程練習題

  1. 求2個數之和
  2. 計算1-100的和
  3. 將一目錄下所有的文件的擴展名改為bak
  4. 編譯當前目錄下的所有.c文件:
  5. 打印root可以使用可執行文件數,處理結果: root's bins: 2306
  6. 打印當前sshd的端口和進程id,處理結果: sshd Port&&pid: 22 5412
  7. 輸出本機創建20000個目錄所用的時間,處理結果:

real??? 0m3.367s

user??? 0m0.066s

sys???? 0m1.925s

  1. 打印本機的交換分區大小,處理結果: Swap:1024M
  2. 文本分析,取出/etc/password中shell出現的次數

第一種方法結果:

??? 4? /bin/bash

??? 1? /bin/sync

??? 1? /sbin/halt

??? 31 /sbin/nologin

??? 1? /sbin/shutdown

第二種方法結果:

/bin/sync?????? 1

/bin/bash?????? 1

/sbin/nologin?? 30

/sbin/halt????? 1

/sbin/shutdown? 1

  1. 文件整理,employee文件中記錄了工號和姓名, bonus文件中記錄工號和工資要求把兩個文件合并并輸出如下,處理結果:(提示join)

400 ashok sharma $1,250

100 jason smith? $5,000

200 john doe? $500

300 sanjay gupta? $3,000

?

employee.txt:

100 Jason Smith

200 John Doe

300 Sanjay Gupta

400 Ashok Sharma

bonus.txt:

100 $5,000

200 $500

300 $3,000

400 $1,250

  1. 寫一個shell腳本來得到當前的日期,時間,用戶名和當前工作目錄。
  2. 編寫shell腳本獲取本機的網絡地址。
  3. 編寫個shell腳本將當前目錄下大于10K的文件轉移到/tmp目錄下
  4. 編寫一個名為myfirstshell.sh的腳本,它包括以下內容。

a) 包含一段注釋,列出您的姓名、腳本的名稱和編寫這個腳本的目的。

b) 問候用戶。

c) 顯示日期和時間。

d) 顯示這個月的日歷。

e) 顯示您的機器名。

f) 顯示當前這個操作系統的名稱和版本。

g) 顯示父目錄中的所有文件的列表。

h) 顯示root正在運行的所有進程。

i) 顯示變量TERM、PATH和HOME的值。

j) 顯示磁盤使用情況。

k) 用id命令打印出您的組ID。

m) 跟用戶說“Good bye”

  1. 文件移動拷貝,有m1.txt m2.txt m3.txt m4.txt,分別創建出對應的目錄,m1 m2 m3 m4 并把文件移動到對應的目錄下。
  2. root用戶今天登陸了多長時間
  3. 終端輸入一個文件名,判斷是否是設備文件
  4. 統計IP訪問:要求分析apache訪問日志,找出訪問頁面數量在前100位的IP數。日志大小在78M左右。以下是apache的訪問日志節選

202.101.129.218 - - [26/Mar/2006:23:59:55 +0800] "GET /online/stat_inst.php?pid=d065 HTTP/1.1" 302 20-"-" "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"

  1. 設計一個Shell程序,在/userdata目錄下建立50個目錄,即user1~user50,并設置每個目錄的權限,其中其他用戶的權限為:讀;文件所有者的權限為:讀、寫、執行;文件所有者所在組的權限為:讀、執行。
  2. 設計一個shell程序,添加一個新組為class1,然后添加屬于這個組的30個用戶,用戶名的形式為stdxx,其中xx從01到30,并設置密碼為對應的stdxx。
  3. 編寫shell程序,實現自動刪除30個賬號的功能。賬號名為std01至std30。
  4. 用戶清理,清除本機除了當前登陸用戶以外的所有用戶
  5. 設計一個shell程序,在每月第一天備份并壓縮/etc目錄的所有內容,存放在/root/bak目錄里,且文件名,為如下形式yymmdd_etc,yy為年,mm為月,dd為日。Shell程序fileback存放在/usr/bin目錄下。
  6. 對于一個用戶日志文件,每行記錄了一個用戶查詢串,長度為1-255字節,共幾千萬行,請排出查詢最多的前100條。 日志可以自己構造> 。 (提示:awk sort uniq head)
  7. 編寫自己的ubuntu環境安裝腳本
  8. 編寫服務器守護進程管理腳本。

轉載于:https://www.cnblogs.com/wanghao-boke/p/11568733.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/384824.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/384824.shtml
英文地址,請注明出處:http://en.pswp.cn/news/384824.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

shell編程題(一)

求2個數之和 #!/bin/bashfunction add {if(( $# < 2 )); thenecho "The arg int correct"elsesum$(($1$2))echo $sumfi }add 1 add 1 2 運行結果&#xff1a; exbotubuntu:~/shareWin/linux/shell$ ./sum.sh 1 2The arg int correct3 $#&#xff1a;相當于C語言…

vimset

vim ~./vimrc set nocompatible "去掉有關vi一致性模式&#xff0c;避免以前版本的bug和局限 set nu! "顯示行號 set guifontLuxi/ Mono/ 9 " 設置字體&#xff0c;字體名稱和字號 filetype on …

shell編程題(二)

計算1-100之和 #!/bin/bashsum0 for i in seq 1 100;do #符號不是單引號 是 1左邊的符號sum$[$i $sum ] done echo $sum #!/bin/bashi0 n1              #定義循環變量 while [ $n -lt 101 ];do  #循環變量小于101 i$(( $i $n))        #累加 n$(( …

vim命令大全

1. vim模式 正常模式&#xff08;按Esc或Ctrl[進入&#xff09; 左下角顯示文件名或為空 插入模式&#xff08;按i進入&#xff09; 左下角顯示--INSERT-- 可視模式&#xff08;按v進入&#xff09; 左下角顯示--VISUAL-- 替換模式&#xff08;按r或R開始&#xff09; 左下角顯…

signal()函數

函數原型 void (*signal(int sig,void(*func)(int)))(int); 指定使用sig指定的信號編號處理信號的方法。參數func指定程序可以處理信號的三種方式之一&#xff1a; l 默認處理(SIG_DFL)&#xff1a; 信號由該特定信號的默認動作處理l 忽略信號&#xff08;SIG_IGN&a…

setitimer()函數

定時器時間函數 struct itimerval&#xff1a;struct itimerval *new_value&#xff0c;其定義如下&#xff1a;struct itimerval {struct timeval it_interval; /*next value*/struct timeval it_value; /*current value*/};struct timeval {long tv_sec; /*seconds*/lonng t…

shell編程題(三)

將一目錄下所有的文件的擴展名改為bak #! /bin/bashfor i in ls domv $i ${i%%.*}.bak done ${i%%.*} 截掉一個變量字符串第一個"."以及其右側的所有字符&#xff0c;即最短前綴匹配。 #! /bin/bashdir./ #指定文件夾for file in $dir*.txt #指定文件夾下面文件類型…

VMware安裝VMwaretools

默認點擊“安裝VMware Tools&#xff08;T&#xff09;”選項下載好安裝包 下載的安裝包放在計算機的media目錄下 進入/media/ubuntu14-04/VMware Tools目錄&#xff1a; cd /media/ubuntu14-04/VMware Tools 將安裝包復制到tmp文件夾下&#xff1a; cp VMwareTools-10.0.5-322…

shell編程題(四)

編譯當前目錄下的所有.c文件 #!/bin/bashif [ $# -lt 1 ] ;then #如果輸入參數小于1則報錯 $# C語言中的argv[0] 輸入參數個數echo "Please follow up file.c!"echo "eg: ./make.sh xxx.c"exit fiif [[ $2 "debug" ]] ;then #如果第三個參數…

stat函數

int lstat(const char *path,struct stat*buf) 當文件是一個符號鏈接時&#xff0c;lstat返回的是該符號鏈接本身的信息&#xff0c;而stat返回的是該鏈接指向的文件的信息。 struct stat {dev_t st_dev; //設備號碼ino_t st_ino; //inode節點號mo…

字符串函數參數傳入傳出(字符串反轉)

/*** strstr.c ***/ #include<stdio.h> #include<string.h>//求字符串p中abcd出現的次數 //自定義函數接口完成業務函數和main函數分開 int getCount(char *mystr,char *sub,int *ncount) {int ret 0;if(mystr NULL || sub NULL || ncount NULL){ret -1;print…

字符串函數參數傳入傳出(去空格)

字符串作為函數參數傳入傳出 /*** delSpace.c ***/ #include<stdio.h> #include<string.h>int DelSpace(char *str) {int iRet -1;int i ;int j ;int ncount 0;char *out str;if(NULL str ){printf("the point in is NULL\n");return iRet;}i 0;j …

字符串的規范使用

有一個字符串”1a2b3d4z”,&#xff1b; 要求寫一個函數實現如下功能&#xff0c; 功能1&#xff1a;把偶數位字符挑選出來&#xff0c;組成一個字符串1。valude&#xff1b;20分 功能2&#xff1a;把奇數位字符挑選出來&#xff0c;組成一個字符串2&#xff0c;valude 20 功能…

字符串的規范使用(二)

鍵值對&#xff08;”key valude”&#xff09;字符串&#xff0c;在開發中經常使用&#xff1b; 要求1&#xff1a;請自己定義一個接口&#xff0c;實現根據key獲取valude&#xff1b;40分 要求2&#xff1a;編寫測試用例。30分 要求3&#xff1a;鍵值對中間可能有n多空格&am…

字符串逆序打印

版本1 兩個指針從頭到尾和從尾到頭交換內容逆序 /*** str_reverse.c ***/ #include<stdio.h> #include<string.h>int main() {char buf[] "abcdrfg";int len strlen(buf);char *p1 buf;char *p2 buf len - 1;while(p1 < p2){char c *p1;*p1 *p…

realloc()函數

原型&#xff1a;extern void *realloc(void *mem_address, unsigned int newsize); 參數&#xff1a; mem_address&#xff1a; 要改變內存大小的指針名newsize &#xff1a; 新的內存大小。 如果分配內存減少&#xff0c;realloc僅僅改變索引的信息。 如果將…

fgets()函數

聲明&#xff1a;  char *fgets(char *str&#xff0c;int n,FILE* stream) 參數&#xff1a;  str—這是指向一個字符數組的指針&#xff0c;該數組存儲了要讀取的字符串 n – 這是要讀取的最大字符數&#xff08;包括最后的空字符&#xff09;。通常是使用以str傳遞的數組…

C語言實現文件類型統計函數

#include<dirent.h> #include<limits.h> #include<sys/stat.h> #include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<string.h>#define FTW_F 1 //標記非目錄文件 #define FTW_D 2 //標…

C語言實現多線程排序

#include <stdio.h> #include <pthread.h> #include <stdlib.h> #include <string.h>/* 聲明變量 */ int array_length, file_length; int *array_master; FILE *freader;/* 用于從文件讀取數據 */ int *read_file(char *fname) {freader fopen(fnam…

linux線程操作

初始化條件變量 int pthread_cond_init(pthread_cond_t *cv,pthread_cond_attr *cattr); 函數返回值&#xff1a;返回0表示成功&#xff0c;返回其他表示失敗。 參數&#xff1a; pthread_cond_attr是用來設置pthread_cond_t的屬性&#xff0c;當傳入的值是NULL的時候表…