linux学习笔记

当我们使用vim命令在进行文件编辑的时候,如果此时需要中断一下,可以使用ctrl+z命令来暂时跳出当前编辑页面,进行一些列操作之后,当我们需要回到编辑页面的时候 命令行输入fg就可以再次回到vim的编辑页面了

shell通配符详解
* 匹配任意多个字符
? 匹配任意一个字符
[] 匹配括号中的任意一个字符
() 在子shell中执行
{}集合  touch file {1..9}
shell 脚本中 命令模式下使用ctrl+v 快捷键可以竖向选择,使用delete可以将选择的内容进行删除,一般用来去除前面的空格
$PWD 用来获取当前脚本的所在绝对路径
日期格式化 $(date +%Y-%m-%d %H:%M:%S) +号表示格式的意思
""表示弱引用,其中的变量 n a m e 会被翻 译 ′ ′ 表示强引用,其中的 name会被翻译 ''表示强 引用,其中的 name会被翻′′表示强引用,其中的name 会作为字符串输出出来 ``表示优先执行 功能等同于$()

在这里插入图片描述
在这里插入图片描述

变量的运算 加减乘除
$[]

​ $[2+2] 4

​ $[2**10] 1024

let 并不明确要求运算结果的时候 比如let i++
以调试的方式执行脚本 bash -vx xxx.sh
获取当前程序内存占用百分比

在这里插入图片描述
在这里插p入图片描述

crontab -e 编辑定时任务

grep 精确匹配字符串开头

grep -E “^aa*” /etc/passwd
在这里插入图片描述

不仅仅匹配到了aa开头的用户 还匹配到了a开头的用户,此时我们要为搜索限定一个边界,使用>来表示查询的边界
grep -E "^aa>*" /etc/passwd 效果如下图
在这里插入图片描述
此处只输入 grep -E "^aa>" /etc/passwd 命令是完全匹配不到任何东西的

1 查找文件并删除指令 find/ -name “test*” exec rm -rf {} ; 查找以test开头的文件并将这些文件替换到{}部分从而进行删除。";"前的参数都作为rm的参数,\是对;的转义

2 添加用户组和用户

groupadd mysql 
useradd-r -g mysql mysql
groups mysql

3 查询指定名称的用户和组

sudo cat /etc/passwd |grep ‘name’
sudo cat /etc/group | grep mysql

4 du -sh 查看目录和文件的大小

5 将用户分配到指定的组

usermod -a -G [group] [user] 将一个已有用户添加到指定的组【group】中,但是不更新原主组
usermod -a -g [group] [user]
将一个已有用户user添加到apache组中并设置为用户的主组
gpasswd -d [user] [group]
将一个用户从某个组中删除

6 检索文件内容关键字

cat 文件名 | grep -C 20 '关键字' 显示文件里匹配关键字那行以及上下20行
cat 文件名 | grep -B 20 '关键字' 显示关键字及前20行
cat 文件名 | grep -A 20 '关键字' 显示关键字及后20行


grep 系列
grep '[关键字]' [文件名称] #当关键字中含有空格时 需要加单引号
grep  -r 'xxxx' path    #递归检查path路径下带有xxx关键字的文件

grep -C 10 'xxxx'  xxx.txt  检索xxxx上下10行数据
grep -B 10 'xxxx'  xxx.txt  检索xxxx上面10行数据
grep -A 10 'xxxx'  xxx.txt  检索xxxx下面10行数据
grep 'xxxx' -r -l .   再当前目录下检索存在xxxx关键字的文件

7 在某一路径下检索文件

find / -name [xxx] 在根目录下检索名为xxx的文件,会递归检索到每一个子目录中
find / -name a*a 在根目录下检索以a开头 以a结尾的文件,会递归检索到每一个子目录中
更快速的检索文件locate *.c

8 检索关键字之外的名字

ls |grep -v keep*   #检索除keep开头的其余文件/文件夹的名字
ls |grep -v keep* | xargs rm -rf  # xargs用于从 标准输入获得参数 并且传递给后面的命令 表示删除除keep开头文件之外的文件

9 -bash: export: `=': not a valid identifier linux 等号两边不能有空格

10 使用linux rz命令时传输文件乱码中断

10.1 原因是因为文件中包含控制字符
10.2 使用#8中方法删除保留文件之外的其余文件/2.使用inode进行删除,`ls -i`查询文件inode号,find ./ -inum 1234 | xargs rm -rf  进行删除
10.3  使用rz -be 命令进行传输,b表示使用二进制   -e表示强制escape(避开) 所有控制字符

11 使用tar -zxvf xxxx.tar文件时报错

使用tar -xvf  xxx.tar    -z 表示使用gzip命令进行压缩,tar后缀文件并没有使用gzip压缩,所以不能使用-z

12 xargs mv 命令高效移动文件

ls | grep -v itrusnccsite-3.0.2.jar  | xargs -I {}  mv {}  /usr/local/apache-tomcat-8.5.42/thirdlib   
-I 将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。(大写i)
find ./ -mtime -10 -type f| xargs -I {} mv {} …/yolo/
-mtime 根据时间单位天 -10 表示10天之内 +10 表示10天之前
-mmin 根据时间单位分钟 -10 表示10分钟之内 +10 表示10分钟之前
-type 查找类型 f 表示文件 d 表示文件夹

13 vim 复制一行

#将光标移动到要复制的行上,使用yy 复制一行
#将光标移动到要粘贴的位置,使用p 粘贴一行

14 统计文件夹下文件个数

ls -l | grep "^-" | wc -l(不包含子文件夹)
ls -lR | grep "^-" | wc -l(递归统计)

15 将文件夹下的文件按照时间排序

16 unzip 解压到指定文件

unzip xxxx.zip -d /tmp/test/ /test目录不存在时,会自动创建,但是/tmp/test路径不存在时 会报错 -d表示指定目录
unzip -l test.zip #查看压缩包文件
unzip -t test.zip #查看文件是否损坏
unzip test.zip #解压文件到当前目录
unzip 'test*.zip' # 解压test开头的所有zip文件。test*.zip 需要用单引号包裹起来

17 rar 文件解压和压缩

sudo apt install rar # 安装rar
rar l test.rar #查看压缩包文件内容
rar x test.rar /home/test 解压文件到指定目录
rar a test.rar test1 test2 将test1 test2两个文件压缩到test.rar

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值