linux命令记忆记录

来源

试题取自牛客网在线编程–shell篇
附加在线linux网址选择其他linux系统
linux常用命令

试题

统计文件的行数

wc -l

取自查看文件内容wc命令:wc [选项] [文件名]
-c 字节数
-l 行数
-L 最长行长度
-m 字符数
-w 文件字数

打印文件的最后5行

tail -5 nowcoder.txt

取自查看文件内容head与tail命令,head代表开头、tail代表结尾:head/tail [选项] [文件名]
-n n行内容,默认10
-c 输出文件大小(head选项)
-f 最尾部内容显示屏幕不断刷新(tail选项)

输出7的倍数

#!/bin/bash
for var in {0..500}
do
if ((var%7==0))
then
echo $var
else
continue
fi
done

取自文件操作echo显示提示
{0…500} #生成列表0,1,2…499,500
echo $变量 #输出变量值
变量=$变量 #变量赋值变量
unset 变量 #删除变量

输出第5行的内容

sed -n 5p

取自文件操作sed替换:sed [选项] ‘[命令]’ [文件名]
‘s/原字符串/替换字符串/’ 无选项,替换字符串
-n ‘5,7p’ 输出5-7行

打印空行的行号

awk '/^$/ {print NR}'

取自文件操作awk:awk ‘[命令]’ [文件名]
匹配含义
^ 开头
$ 结尾
命令含义
NF 字段数,行数
$NF 字段值

去掉空行

awk '!/^$/ {print $NF}'

取自文件操作awk:awk ‘[命令]’ [文件名],这里用了!非

打印字母数小于8的单词

awk '{for (i=1;i<=NF;i++){if (length($i) < 8) print $i}}'

取自文件操作awk:awk ‘[命令]’ [文件名]。
这里使用bash编程命令,$i代表第i个字段值

统计所有进程占用内存大小的和

awk '{a+=$6}END{print a}'

取自文件操作awk:awk ‘[命令]’ [文件名]。该命令是每读取文件一行就执行一次。
END 前部分执行玩再执行后面
示例文件每个值的划分

123456789
root20.00.000?S9月25 0:00 [kthreadd]
root40.00.000?I<9月25 0:00 [kworker/0:0H]
web16381.81.863113521?Sl10月16 21:52 test
web16392.01.863113522?Sl10月16 21:52 test
tangmiao-pc53360.01.491002403??S3:09下午 0:31.70 /Applications
tangmiao-pc53370.01.994777844??S3:09下午 2:14.60 /Applications/Google Chrome.app

确定第6个是内存大小的值$6。

统计每个单词出现的个数

awk '{for(i=1;i<=NF;i++){print $i}}'|sort|uniq -c|sort -n| awk '{print $2,$1}'

取自文件操作awk:awk ‘[命令]’ [文件名]。当以|划开命令时,awk的print执行为下一个命令的处理文件。
拆解命令

awk '{for(i=1;i<=NF;i++){print $i}}'

结果为

welcome
nowcoder
welcome
to
nowcoder
nowcoder
to
welcome
nowcoder
the

排序命令:sort [选项] [文件名]。默认以ASCII码升序排列
-n 依照数值升序排列

sort

结果为

nowcoder
nowcoder
nowcoder
nowcoder
the
to
to
welcome
welcome
welcome

统计命令:uniq [选项] [文件名]。将相邻重复行合并并统计。
-c 统计每一列显示该行重复数量

uniq -c

结果为

      4 nowcoder
      1 the
      2 to
      3 welcome

再使用sort -n结果如下:

      1 the
      2 to
      3 welcome
      4 nowcoder

最后将第二个值$2和第一个值$1互换位置输出即可。

第二列是否有重复

awk '{print $2}' |sort|uniq -c|sort -n|grep -v 1

在上一题的基础上又涉及
grep查找符合条件字符串的命令:sed [选项] [查找模式] [文件名]
选项
-n 显示查找匹配行及行号
-v 查找不包含匹配的行
查找模式:正则表达式

转置文件的内容

awk '{
for(i=1;i<=NF;i++){
if(NR==1)
{a[i]=$i;}
else
{a[i]=a[i]" "$i;}
}}END{
for(i=1;i<=NF;i++){
print a[i]
}}'

这里awk的命令,虽然类似c语言,但对于字段拼接直接使用" "连接,如果使用+就是计算数据的和变成一个字段。
命令含义
NF 字段数,行数
NR awk读取的次数,读取文件内容的行数

打印每一行出现的数字个数

awk '{gsub(/[^1-5]/,"",$0);print "line"NR "number: "length($0);sum+=length($0)}END{print "sum is "sum}'

这里的gsub处理字符串$0,length()计算字符串长度。

命令

关机重启
shutdown -h:关机
poweroff:关机
shutdown -r:重启
reboot:重启
help:帮助
目录文件
cd /:跳转目录
cd …/:返回上一个目录
cd ~:跳转home/用户目录
ls -a:显示该目录下所有目录和文件
ls -l:列表显示该目录下所有目录和文件
mkdir :增目录
touch:增文件
rm:删文件
rm -r:删目录
vi:修改文件
mv a b:a改目录为b
mv a /:剪切a目录到新目录
cp:复制成ios镜像文件
cat:>重定向,把>左边文件合并复制到右边文件
copy:文件目录的复制
find:找特定目录文件
文件权限
chmod:+赋予权限,r读取,w写入,x执行
chown:改变文件或目录的使用者或群组
用户
进程
网络

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值