linux shell 编程 笔记(cat who wc grep ping seq)

来源:互联网 发布:手机怎么开通淘宝网店 编辑:程序博客网 时间:2024/06/05 14:45

1、wc  命令 

wc [OPTION]... [FILE]...

 wc命令用来打印文件的文本行数、单词数、字节数等(print the number of newlines, words, and bytes in files)

-c, --bytes   字节数
              print the byte counts

       -m, --chars  字符数
              print the character counts

       -l, --lines  统计行号
              print the newline counts

 统计行号 wc -l(小写的l)

2、

可以用 -eq、 -ne、-lt、 -le、 -gt 或 -ge比较算术值,它们分别表示等于、不等于、小于、小于等于、大于、大于等于。

可以分别用操作符 =、 !=、< 和 >比较字符串是否相等、不相等或者第一个字符串的排序在第二个字符串的前面或后面

注意:在[]结构中">"需要被转义

line="abc"

[$line = "abc" ] && echo "line =$line" 

输出line=abc

如果是[$line = "abc" ] && echo ’line =$line‘

则输出line=$line  注意单引号里面的变量不被识别,原样输出,而双引号里面可以加变量


3、cat 与EOF结合输出菜单 http://ribbonchen.blog.163.com/blog/static/11831650520127163235173/

   #!/bin/bash
#menu
i=1
while [ $i -eq 1 ]
do
cat<<EOF
   ----------------Menu-----------------
   1:List file in current dir
   2:mkfs
   3:cp
   W:who
   H:help
   Q:quit menu
   -------------------------------------
EOF
 echo "select your choice[1,2,3,H,Q]"
 read CHOICE
 case $CHOICE in
1)ls
;;
2)mke2fs /home/phf/file.img
;;
3)cp /home/phf/study.c ./
;;
W|w)who
;;
H|h)
cat<<EOF
 just help
EOF
;;
Q|q)exit 0
;;
*)echo "unknown select"
;;
esac
done

4、who 命令  打印当前登录用户

5、grep命令  匹配字符串

 who | grep -F phf   当前系统登录用户名匹配有phf的 

或者 who | grep phf

-n显示行号  匹配study.c里面是否有 main 且输出行号

 cat study.c |  grep -n main

-v是反向搜索(找不匹配的)

cat study.c | grep -vn main  找study.c里面不匹配到main的行

6、正则表达式

(1)  .匹配任意一个字符  比如ab.  匹配abc   、 ab1 等

(2)[字符]匹配括号中的任意一个字符  

(3)比如phf.txt中想匹配txt 和txy  可以

grep -n tx[ty] phf.txt

(4)[^ab] 匹配除去括号中任意一个字符以外的字符

  如果不想搜到bc前面有a的字符的话

 grep -n [^a]bc test.txt

  (5)括号里-表示字符范围 

注: 大写英文/小写英文/数字 可以使用 [a-z]/[A-Z]/[0-9]等方式来书写,也可以写在一起
[a-zA-Z0-9]表示要求字符串是数字以及英文

比如 我们不想匹配有数字的文本

grep -n [^0-9] test.txt

注:但考虑到语系对编码顺序的影响,因此除了连续编码使用减号[-]外,也可以用[:lower:]代替a-z 以及 [:digit:] 代替0-9 使用

比如 判断test.txt文件不含有数字的文本

grep -n [^[:digit:]] test.txt

匹配的字符高亮 grep --color

7、判断一个变量是不是空值  -z

比如 i=1

   unset i

 if[ -z $i ]

then echo "i is null"

fi



判断是不是目录 -d   [ -d test.txt ]

判断是不是文件 -f

8、ping

ping命令一般用于检测网络通与不通

ping -c 2 ip地址 表示ping 两次

ping -w 2 ip表示Specify a timeout, in seconds, before ping exits regardless of how many pack‐
              ets  have  been sent or received.

表示就ping 2秒 不管接受或者发送多了多少数据

9、seq

  用于产生从某个数到另外一个数之间的所有整数


10、将文件按行输出

   while read line

do

  echo $line

done <test.txt  (重定向)

或者

cat test.txt |

while read line

do

 echo $line

done

11、alias 别名

  比如进入mysql 的命令

 mysql -u root -p

命令太长  另取别名

alias mysql='mysql -u root -p'(记得用单引号,单引号表示原样输出)

0 0
原创粉丝点击