设为首页 加入收藏

TOP

shell 常用命令3(一)
2023-07-23 13:29:48 】 浏览:41
Tags:shell 常用命

shell 常用命令3

1 sed

用来自动编辑文件,可以用来实现替换配置文件的配置

语法:
sed [-hnV][-e<script>][-f<script文件>][文本文件]

参数说明

  • -e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
  • -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
  • -h或--help 显示帮助。
  • -n或--quiet或--silent 仅显示script处理后的结果。
  • -V或--version 显示版本信息。

动作说明

  • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
  • d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
  • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
  • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
  • s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g 就是啦!
[root@poc-2 aa]cat aaa.txt
aa = aa
bb = bb
cc = cc

[root@poc-2 aa]sed -n '/aa/p' aaa.txt  # 查找aaa.txt文件的内容,并进行打印p


### 查找aaa.txt文件中的aa模式,大括号中的s是把aa替换为xx,g是全部替换,不加g只替换第一个匹配的;p是打印;q是退出
### 注意这只是完成了在内存中的替换,并没有写会到文件中
[root@poc-2 aa]# sed -n '/aa/{s/aa/xx/g;p;q}' aaa.txt 
xx = xx
[root@poc-2 aa]# sed -n '/aa/{s/aa/xx/;p;q}' aaa.txt 
xx = aa

[root@poc-2 aa]# cat aaa.txt 
aa = aa
bb = bb
cc = cc

# 使用选项 i 可以替换源文件
[root@poc-2 aa]# sed -i 's/aa/xx/g' aaa.txt
[root@poc-2 aa]# cat aaa.txt 
xx = xx
bb = bb
cc = cc

# 先打印匹配的行,再进行替换,支持正则表达式,最好使用^表示以什么开头,/需要转义,因为sed本省需要/

# 1 不替换源文件
sed -n '/advertised.listeners/p' ${parent_path}/testProjectName/conf/kafka.properties | sed 's/advertised.listeners/advertised.listeners=PLAINTEXT://${LAN_IP}:9093/g'
# 2 替换源文件
sed -i 's/^advertised.listeners.*/advertised.listeners=PLAINTEXT:\/\/1:9093/g' ./testProjectName/conf/kafka.properties

2 tar

用来 **压缩 ** 和 解压

tar -tvf test.tar # 列出打包文件中的文件列表
tar -czvf test.tar.gz ./test # 把 test 目录打包成 test.tar.gz   c 是指 create,创建一个 备份文件。压缩
tar -xzvf test.tar.gz ./test # 把 test 目录打包成 test.tar.gz,解压
*.Z:compress 程序压缩的文件。
*.gz:gzip 程序压缩的文件。
*.bz2:bzip2 程序压缩的文件。
*.tar:tar 程序打包的数据,没有被压缩过。
*.tar.gz(简写为 .tgz):tar 程序打包的数据,经过 gzip 的压缩。
*.tar.bz2(简写为 .tbz2):tar 程序打包的数据,经过 bzip2 的压缩
  • -z:通过gzip指令处理备份文件。文件名格式需为*.tar.gz
  • -c: 建立新的备份文件。
  • -x:或--extract或--get 从备份文件中还原文件。
  • -v:显示指令执行过程。
  • -f : 指定备份文件。
  • -t:列出备份文件的内容。
  • -j:通过bzip2指令处理备份文件。文件名格式需为*.tar.bz2(简写为 .tbz2)
  • -u: 仅置换较备份文件内的文件更新的文件
  • -C:<目的目录>或--directory=<目的目录> 切换到指定的目录。

3 scp

**公司局域网内服务器实现快速传输文件 **scp 是 secure copy,基于ssh登录进行的安全的远程文件拷贝密令

1、从本地复制到远程
# 复制文件 语法
scp local_file remote_username@remote_ip:remote_folder  # 1 指定一个目录,本地文件使用原命名
或者  
scp local_file remote_username@remote_ip:remote_file  # 2 指定一个文件,本地文件会被重命名为这个名字存放与远端中
或者 
scp local_file remote_ip:remote_folder # 3 不指定用户,需要手动输入用户名和密码
或者 
scp local_file remote_ip:remote_file # 4 不指定用户,需要手动输入用户名和密码

# 例如:scp /home/space/music/1.mp3 root@192.168.1.111 # 执行命令后输入密码

# 复制目录 语法
scp -r local_folder remote_username@remote_ip:remote_folder # 1 指定了用户名
或者 
scp -r local_folder remote_ip:remote_folder # 2 没有指定用户名

# 例如:scp -r /home/space/music/ root@192.168.1.111:/home/root/others/ 
# 将本地 music 目录复制到远程 others 目录下

2、从远程复制到本地
# 从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可
# 目录 例如:scp -r root@192.168.1.111:/home/root/others  /home/space/music
# 文件 例如:scp -r root@192.168.1.111:/home/root/aaa.txt  /home/space/music/aaa.txt
  • -C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
  • -p:保留原文件的修改时间,访问时间和访问权限。
  • -q: 不显示传输进度条。
  • -r: 递归复制整个目录。

4 mv

移动本地文件或者目录,也用来实现重命名

mv [options] source dest
mv [options] source... directory # 可以剪切多个文件到一个目录下

mv info/ logs # 将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs

# 默认会
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Linux工作原理3设备 下一篇Linux工作原理1简介

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目