随笔分类 - shell编程
摘要:题目: 终端输入一个文件名,判断是否是设备文件。 答案: #!/bin/bash echo -e "please input a filename to judge it is or not a device file.\n\n" read -p "Input a filename: " filen
阅读全文
摘要:题目: root用户今天登陆了多长时间 答案: #!/bin/bash cat /proc/uptime | awk -F . '{run_days=$1/86400; run_hour=($1%86400)/3600;run_minute=($1%3600)/60;run_second=$1%60
阅读全文
摘要:题目: 编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下。 答案: #!/bin/bash for FileName in `ls -l | awk '$5>10240 {print $9}'`; do mv $FileName /tmp done ls -al /tmp
阅读全文
摘要:题目: 文件移动拷贝,有m1.txt m2.txt m3.txt m4.txt,分别创建出对应的目录,m1 m2 m3 m4 并把文件移动到对应的目录下。 答案: #!/bin/bash touch m1.txt m2.txt m3.txt m4.txt I=1 while [ $I -le 4 ]
阅读全文
摘要:题目: 编写一个的脚本,它包括以下内容 a) 包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的。 b) 问候用户。 c) 显示日期和时间。 d) 显示这个月的日历。 e) 显示您的机器名。 f) 显示当前这个操作系统的名称和版本。 g) 显示父目录中的所有文件的列表。 h) 显示root正
阅读全文
摘要:题目: 编写shell脚本获取本机的网络地址。 答案: #!/bin/bash IP=`ifconfig | grep "inet addr" | sed '/127/d' | awk '{print $2}' | awk -F : '{print $2}'` MASK=`ifconfig | gr
阅读全文
摘要:题目:写一个shell脚本来得到当前的日期,时间,用户名和当前工作目录 答案: 解析:$LOGNAME 获取登录用户名 date 获取当前时间 who i am 获取用户名,用户数据所在磁盘号,以及日期和ip地址 pwd获取当前文件所在路径 注意点: 如果系统应用了中文语言包的话,who i am
阅读全文
摘要:有两个文件如下所示: 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 employee.tx
阅读全文
摘要:文本分析,取出/etc/password中shell出现的次数 答案1: cat /etc/passwd | awk -F: '{if ($7!="") print $7}' | sort | uniq -c /etc/passwd 中的数据是以:隔开的 sort是将文件中的每一行作为一个单位,互相
阅读全文
摘要:打印本机的交换分区大小 答案: free -m | sed -n '/Swap/p' | awk '{print $2}' 解析: free -m 查看系统内存使用情况 sed -n ‘/Swap/p’ 打印匹配Swap的行 awk '{print $2}' awk缺省的行分隔符是换行,缺省的列分隔
阅读全文
摘要:题目: shell编程题(六) 打印当前sshd的端口和进程id 例如:处理结果: sshd Port&&pid: 22 5412 答案: netstat -nltp | grep ssh |awk -F: '{print $2}'| grep -v "^$"|awk '{print "ssh:"$
阅读全文
摘要:输出本机创建20000个目录所用的时间 #! /bin/bash time ( for i in {1..2000} ; do mkdir /tmp/nnn$i done ) 运行记得删除 rm -rf /tmp/nnn*
阅读全文
摘要:打印root可以使用可执行文件数。 echo "root's bins: $(find ./ -type f | xargs ls -l | sed '/-..x/p' | wc -l)" 命令解释 1.echo 输出后面双引号的的内容 2. find ./ -type f 查找当前目录下文件类型为
阅读全文
摘要:编译当前目录下的所有.c文件 用于编译调试指定C代码。 ./make.sh 文件名(必选)debug(调试,可选) exbot@ubuntu:~/shareWin/shell/20190925$ ./4.sh file hello.ctarget hellohellofile world.ctarg
阅读全文
摘要:将一目录下所有的文件的扩展名改为bak ${i%%.*} 截掉一个变量字符串第一个"."以及其右侧的所有字符,即最短前缀匹配。
阅读全文
摘要:计算1-100之和 -eq(等于) -ne(不等于) -lt(小于) -le(小于等于) -gt(大于) -ge(大于等于)
阅读全文
摘要:求2个数之和 运行结果: exbot@ubuntu:~/shareWin/linux/shell$ ./sum.sh 1 2The arg in't correct3 $#:相当于C语言的mian函数的(argc-1)传入的参数列表的值,表示输入值的数量减1,这个减去的1就是argv[0]。 其中:
阅读全文
摘要:real 0m3.367s user 0m0.066s sys 0m1.925s 第一种方法结果: 4 /bin/bash 1 /bin/sync 1 /sbin/halt 31 /sbin/nologin 1 /sbin/shutdown 第二种方法结果: /bin/sync 1 /bin/bas
阅读全文
摘要:POSIX规定了正则表达式的C语言库函数,详见regex(3)。我们已经学习了很多C语言库函数的用法,读者应该具备自己看懂man手册的能力了。本章介绍了正则表达式在grep、sed、awk中的用法,学习要能够举一反三,请读者根据regex(3)自己总结正则表达式在C语言中的用法,写一些简单的程序,例
阅读全文
摘要:正则表达式 以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义。其实grep还可以找出符合某个模式(Pattern)的一类字符串。例如找出所有符合xxxxx@xxxx.xxx模式的字符串(也就是email地址),要求x字符可以是字母、数字、下划线、小数点或减号,ema
阅读全文