找回密码
 立即注册
首页 业界区 安全 收藏好!大厂工作中用到的超实用linux进阶命令组合和快 ...

收藏好!大厂工作中用到的超实用linux进阶命令组合和快捷键(持续更新中)

咫噎 5 天前
命令


  • grep获取目录下某一类型文件的对应参数
  1. grep -rn --include=*.conf "srcip"
复制代码
1.png

说明:此命令可以查看当前文件夹下面(含子文件夹)的包含srcip参数的行,并且限定了文件类型为conf结尾的文件,避免搜出太多不相关内容

  • sed备份并修改文件
  1. sed -i.bak "s/variable=.*/variable=具体值/g" 123.conf
复制代码
说明:sed -i.bak会在修改时创建一个同名带.bak后追的备份文件,再也不用担心改错了。

  • 批量修改某一目录下的所有配置文件中的某个参数
  1. grep -rnl --include=*.conf "srcip" |xargs -i sed -i.bak 's/srcip=.*/srcip=121.162.168.124/g' {}
复制代码
说明:把当前目录下所有conf文件里面的srcip参数修改为121.162.168.124,这个在srcip参数是一行时可以用

  • 将目录下的所有txt文件转换为unix格式
  1. find ./ -name "*.txt" | xargs -i dos2unix {}
复制代码
说明:可以将txt文件从windows格式转为unix格式,用于把windows桌面上的文件和文件夹传到linux服务器上使用出现乱码语法错误的情况。

  • 删除大量文件
  1. chown vmax:root /ubas/tmp/    # 这个文件夹是个空目录,修改前要修改权限和要删除的/opt/vmax权限一致
  2. chmod 755 /ubas/tmp/
  3. rsync -a --delete --progress /ubas/tmp/ /opt/vmax
复制代码
说明:这条命令用于删除/opt/vmax下面的所有内容,注意严格"/"一定要和语句一致。rsync删除比rm -rf命令速度更快,用于删除大量文件时。

  • 查看当前文件夹下面的文件夹大小并排序
  1. du -h --max-depth=1 |sort -hr
复制代码
2.png

说明:限定了文件夹只有一层--max-depth=1 ,因此可以直观看到每个文件夹大小

  • 查找大于1G的文件
  1. find /home -size +1G |xargs du -h
复制代码

  • 将docker里面的文件夹拷贝出来
  1. docker cp 容器ID:/root/123.gz ./
复制代码
说明:docker cp  不支持正则表达式,如果拷贝多个文件可以提前把文件打包

  • 删除指定数量的文件
  1. find /path/to/directory -type f -maxdepth 1 -name "abc" | head -n 10 | xargs rm -f;
复制代码
说明:删除路径下名称包含abc的文件,只删除10个

  • 查找某一时间段的日志
  1. cat test.log |awk '/2024-09-20 16:04:48/,/2024-09-23 20:29:22/'
复制代码

  • 反复执行某一个命令查看差异
  1. watch -n 1 "xxx"
复制代码
说明:1秒钟执行一次引号里面的命令,主要配合一些其他命令使用。

  • 获取shell脚本所在的当前路径
  1. SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
复制代码
说明:用于不同的脚本调用,并且脚本里面写的一些路径为相对路径时。

  • 获取文件完整路径(带文件名称)
  1. realpath "xxx"
复制代码

  • 获取当前路径
  1. pwd
复制代码

  • 查看端口号(以22端口为例)
  1. netstat -tunlp | grep 22
复制代码

  • 查看进程(以java为例)
  1. ps -ef | grep java
复制代码

  • 查看进程启动时间(以java为例)
  1. ps -eo pid,lstart,command | grep  java
复制代码

  • tar压缩文件
  1. tar -zcf abc.tar.gz abc.txt
复制代码

  • tar解压文件
  1. tar -zxf abc.tar.gz
复制代码

  • zip压缩文件
  1. zip abc.zip abc.txt
复制代码

  • unzip解压文件
  1. unzip -q abc.gz
复制代码

  • cp复制备份文件夹   -r递归复制  -p保留原有的用户属主属组权限
  1. cp -rp base base_bak
复制代码
3.png


  • 从源文件夹拷贝文件到目标文件夹,只拷贝目标文件夹没有的文件(rsync对文件夹后面的/比较严格,如果带斜杠都带斜杠,如果不带都不带)
  1. rsync -av --update /home/user/source/ /home/user/destination/
复制代码

  • 从源文件夹拷贝文件到目标文件夹,保留目标文件夹里面的原有权限,对于目标文件夹没有的文件是根据系统的umask创建的权限(使用背景:源文件夹是从linux上打包压缩后到windows系统下解压修改的再打包的,这个时候压缩包里面的文件权限已经和最开始时不一致了,因此拷贝时需要考虑权限问题,否则直接拷过去可能有些脚本或者命令没有对应权限导致服务有问题)
  1. rsync -av --no-perms --no-owner --no-group /home/user/source/ /home/user/destination/
复制代码

  • 模拟磁盘占用,dd命令创建固定大小的文件(例子为创建一个10M大小的mydata文件   1M*10=10M)
  1. dd if=/dev/zero of=mydata bs=1M count=10
复制代码

  • sftp连接到远程服务器和下载文件
  1. # 连接到远程sftp服务器
  2. sftp -oPort=51001 damsftp@x.x.x.x
  3. # 上传文件到sftp服务器
  4. sftp> put local_file.txt remote_file.txt
  5. sftp> put -r local_directory remote_directory
  6. 下载文件到本地
  7. sftp> get remote_file.txt local_file.txt
  8. sftp> get -r remote_directory local_directory
复制代码
快捷键

Ctrl+←:快速移动光标
Ctrl+a:移动光标到最前面
Ctrl+e:移动光标到最后面
Ctrl+u:删除光标之前的内容
Ctrl+k:删除光标之后的内容
Ctrl+w:删除光标前一段内容(以空格作为分隔)
Tab:命令联想
vim编辑

:set nu  显示行号
:123     跳到123行
/123     当前光标向后面查找123
?123   当前光标向前面查找123
shift+g   移动到文末
shift+d   删除光标到行尾内容
gg         移动到开头
u          撤销上一次修改
dd       删除光标所在的一行
如果对您有帮助或者解决了您的问题请点赞一下吧


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册