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

本文介绍了Linux环境下常用的命令操作,包括wc命令的详细参数说明、条件判断语法、菜单输出技巧、who命令的应用、grep命令的使用方法及正则表达式的介绍等。此外还涉及到了变量判断、目录与文件判断、ping命令的高级用法、序列生成、文件逐行读取、命令别名设置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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'(记得用单引号,单引号表示原样输出)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值