shell 常用命令3

这篇具有很好参考价值的文章主要介绍了shell 常用命令3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

# 默认会使用原来的目录名,如果原来的文件名被占用了会报错
[root@poc-2 smy]# mv -i aa/ ./shellTest
mv:是否覆盖"./shellTest/aa"? y
mv: 无法将"aa/" 移动至"./shellTest/aa": 文件已存在

# 解决方法,指定一个新的不存在的目录,让他自己创建
mv -i aa/ ./shellTest/bb # 成功执行 mv 动作

options:

  • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
  • -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
  • -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
  • -n: 不要覆盖任何已存在的文件或目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

5 cp

复制本地文件或者目录,从a路径复制到b路径,存在两个文件

cp [OPTION] SOURCE DIRECTORY
cp [OPTION] SOURCE... DIRECTORY

cp aaa.txt ./aa # 复制文件, 复制当前路径下的aaa.txt文件 到./aa目录中
cp -r aa ../  # 递归的复制目录

cp -r aa ./shellTest # cp的目标目录中存在重名的目录,默认会提示

OPTION:

  • -r:递归的复制目录
  • -p:保持文件或目录属性
  • -a:相当于同时使用参数-d,-p,-r
  • -i:提示是否覆盖的确认
  • -d:如果复制的源文件为链接文件,仅复制符号链接本身,且保留符号链接所指向的目标文件或目录

6 多个if使用case优化

case $service in
init)
	echo "init" 
	;;
check)
	echo "check"
	;;	
install)
	echo "install"
	;;
start)
	echo "start"
	;;
stop)
	echo "stop"
	;;
status)
	echo "status"
	;;
*)
    usage  # 输出使用方法,相当于 --help
    exit 0
    ;;
esac

case工作方式如上所示。取值后面必须为关键字,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。

;; 与其他语言中的 break 类似,意思是跳到整个 case 语句的最后。

取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。

7 软连接

为某一个文件在另外一个位置建立一个同步的链接。

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间

语法:
ln [参数][源文件或目录][目标文件或目录]

软链接

  • 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
  • 2.软链接可以 跨文件系统 ,硬链接不可以
  • 3.软链接可以对一个不存在的文件名进行链接
  • 4.软链接可以对目录进行链接

硬链接

  • 1.硬链接,以文件副本的形式存在。但不占用实际空间。
  • 2.不允许给目录创建硬链接
  • 3.硬链接只有在同一个文件系统中才能创建

命令参数:文章来源地址https://www.toymoban.com/news/detail-460853.html

  • -f 强制执行
  • -i 交互模式,文件存在则提示用户是否覆盖
  • -n 把符号链接视为一般目录
  • -s 软链接(符号链接)
  • -v 显示详细的处理过程
# 在当前目录下新建一个软链接 link2013 ,链接到 log2013.log这个文件
[root@localhost test]# ln -s log2013.log link2013

到了这里,关于shell 常用命令3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop Shell常用命令

    Hadoop Shell命令在管理HDFS的时候还是比较常用的,Hadoop Shell命令与shell命令极为相似,但是方便查询,在这里总结分享,大家enjoy~~ 语法格式:hadoop fs -cat URI [URI …] 含义:将路径指定文件的内容输出到stdout。 示例: 语法格式:hadoop fs -chgrp [-R] GROUP URI [URI …] 含义:改变文件所

    2024年02月06日
    浏览(42)
  • HBase常用Shell命令

    在使用具体的Shell命令操作HBase数据之前,需要首先启动Hadoop,然后再启动HBase,并且启动HBase Shell,进入Shell命令提示符状态,具体命令如下: 1.在HBase中创建表 假设这里要创建一个表student,该表包含Sname、Ssex、Sage、Sdept、course等字段。需要注意的是,在关系型数据库(比如

    2023年04月09日
    浏览(44)
  • ​Windows常用shell命令大全​

      Windows常用shell命令大全 基于鼠标操作的后果就是OS界面外观发生改变,  就得多花学习成本。更主要的是基于界面引导Path与命令行直达速度是难以比拟的。另外Geek很大一部分是键盘控,而非鼠标流的。 整理Windows的常用Shell命令,一方面帮助深入学习Mysql,另一方面准备尝

    2024年02月04日
    浏览(54)
  • HBase 常用的Shell命令

    进入shell命令行 基础命令 命令 解释 status 查看集群状态 version 查看当前版本 whoami 查看当前用户 命令演示  ddl命令 命令 解释 create 创建表 list 列出所有表 disable / is_disabled 禁用表/验证表是否被禁用 enable / is_enabled 启用表/验证表是否已启用 desc 查看表的详细信息 alter 修改表结

    2024年02月06日
    浏览(37)
  • HBase常用的Shell命令

    1、创建t1表,列族为f1,版本号为5 create ‘t1’ , {NAME =’f1’ ,VERSION = 5 } 2、创建t1表,3个列族分别为f1、f2、f3 create ‘t1’ , {NAME =’f1’ ,NAME =’f2’ ,NAME =’f3’} 或者 create ‘t1’ , ’f1’ , ’f2’ , ’f3’ 3、创建t1表,将表依据分割算法 HexStringSplit 分布在15个Region里 create ‘

    2024年02月05日
    浏览(42)
  • Linux的shell脚本常用命令

    使用shell脚本可以将所要执行的命令行进行汇总,统一执行,制作为脚本工具,简化重复性工作 1.1.1、启动命令 假设我们拥有一个halloWord.sh的脚本,通过cd 命令进入相对应的目录下 1.1.2、记录日志 将脚本执行的内容以及输出记录在log.txt文件中,同时也控制台显示器也要输出

    2024年02月13日
    浏览(44)
  • HDFS操作常用的Shell命令

    目录 (1)   向HDFS 中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件; (2)   从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名; (3)   将HDFS中指定文件的内容输出到终端中

    2023年04月10日
    浏览(43)
  • Shell 分析服务器日志常用命令

    1、查看有多少个IP访问: 日志文件的第一列是IP地址 2、查看某一个页面被访问的次数: 3、查看每一个IP访问了多少个页面: 4、将每个IP访问的页面数进行从小到大排序: 5、查看某一个IP访问了哪些页面: 6、去掉搜索引擎统计的页面: 7、查看2015年8月16日14时这一个小时内

    2024年02月14日
    浏览(42)
  • 大数据:HDFS的Shell常用命令操作

    HDFS允许用户数据组织成文件和文件夹的方式,它提供一个叫DFSShell的接口,使用户可以和HDFS中的数据交互。命令集的语法跟其他用户熟悉的shells(bash,csh)相似。 Shell在计算机科学中俗称“壳”,是提供给使用者使用界面的进行与系统交互的软件,通过接收用户输入的命令执

    2023年04月09日
    浏览(51)
  • Hadoop HDFS shell 命令行常用操作

    前言:Hadoop HDFS shell的命令和Linux的shell命令有类似的地方,基本上会使用Linux命令的话,把HDFS的理论理解一下就可以了。 一、创建文件夹  path为待创建的目录  -p选项的行为与unix mkdir -p类似,他会沿着路经创建父目录 二、查看指定目录下的内容  Path指定目录路径 -h人性化显

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包