第二节 shell基础

第二节 shell基础

基本的终端操作

终端的命令行有的时候会很长,如果我们有敲错的地方肯定不能重新敲所有的地方,因此需要使用一些快捷键来帮助我们编辑,当然不使用也可以。

快捷键说明
ctrl+a跳到命令行的开头
ctrl+e跳到命令行的末尾
ctrl+u将光标处到命令行开头的内容清除
ctrl+k将光标到末尾的内容清除
Ctrl+H删除光标的前一个字符
Ctrl+W删除光标前的单词(Word, 不包含空格的字符串)
ctrl+r在历史记录中搜索某个曾经使用过的命令
ctrl+l清理屏幕
ctrl+c中断当前执行的程序
ctrl+p上翻历史执行命令,相当于光标上键
ctrl+n下翻命令,相当于光标下键
Ctrl+Z把当前进程放到后台(之后可用’‘fg’'命令回到前台)
Shift Insert粘贴(相当于Windows的Ctrl V)
鼠标中间在命令行窗口选中即复制,在命令行窗口中键即粘贴,可用Shift Insert代替

文本编辑器(vim)

vim脱胎于vi,是linux中最受欢迎的文本编辑器,vim的基本功能就已经非常的强大,然而它还支持各种扩展,甚至被当做ide来使用,这里面先给大家介绍基本功能,其实说是基本功能但是也已经够用了。vim的功能太多了,这里我们直接看别人的文档,我选一些简单的操作给大家讲解vim介绍

工作中常用的shell命令

shell的命令上千个,这里就简单介绍一些我们容易用到的命令,以及在脚本中用到频率较高的命令,同时也不提倡死记命令,这和高中学英语背单词没啥区别,不用的时候全都忘记了,但是依然给大家一个学习常见可以学习命令的地方:传送门

  1. echo

    bash中向终端打印的命令,用来输出我们想让别人在终端看到的信息,下面我们看下基本用法

# 打印字符串
>>> echo hello world 或
>>> echo "hello world"
out: hello world
# 打印变量
>>> a="hello world"
>>> echo $a
out:hell world

当然在脚本中,echo主要是用来输出函数执行信息和错误信息帮助我们判断脚本的执行情况,下面列举部分,当然更多的请看这里传送门,我们利用不同的颜色显示我们需要的信息级别,比如红色一般用于error信息,其他的可酌情考虑

>>>echo -e "\033[30m 黑色字 \033[0m"
>>>echo -e "\033[31m 红色字 \033[0m"
>>>echo -e "\033[32m 绿色字 \033[0m"
>>>echo -e "\033[33m 黄色字 \033[0m"
>>>echo -e "\033[34m 蓝色字 \033[0m"
>>>echo -e "\033[35m 紫色字 \033[0m"
>>>echo -e "\033[36m 天蓝字 \033[0m"
>>>echo -e "\033[37m 白色字 \033[0m"

在这里插入图片描述

  1. cat

    cat是bash中的输出文本内容之一,bash中输出文本的方式及其的多,cat是最常见之一,看下常见用法:

# 查看文件内容
>>>cat file
# 同时查看多个文件内容
>>>cat file1 file2
#拼接文档
>>>cat file1 file2 >file3

​ 当然还有一个常用的地方,就是在脚本中写文本,如果在脚本中直接写一个有内容的文本,让我们来看下

>>> cat >testfile <<EOF
>你好
>hello world
>EOF
#此时生成一个testfile文件,我们打开它
>>> cat testfile

在这里插入图片描述

2.tail

tail命令可以查看文件的内容,当然最常用的是tail -f 查看正在改变的日志文件

# 查看文件倒数几行
>>> tail -n 10 file
>>> tail -f /var/log/xx.log #连续输出新的日志内容

3.more/less

​ more和less的功能差不多,都是整屏显示文本,显示不下的可以回车向下显示,less比more有更多的查看功能,它的快捷键和vim是类似的

# 分页查看文件 按空格翻页 q退出
>>> more file
>>> less file

4.split

split作为运维常见的命令之一,用于切割文件,一般运维场景用于切割日志

#先创建一个100kb的测试文件,我们使用dd命令,当然这个命令在运维中不太使用
>>> dd if=/dev/zero bs=100k count=1 of=data.file
# 切割文件 -b 按字节数,字母命名
>>> split -b 10k data.file
#切割文件,数字命名
>>> split -b 10k data.file -d 
# 将file按每1000行切割为多个文件
>>> split -l 1000 file

5.diff

diff是一个好玩的命令,它可以比对两个文件的差异,vimdiff是它的升级版,可以使用vim来查看比对的文件,当然这里我们只介绍diff,这个命令有很多选项,但是别钻牛角尖,我们只要会一个就足够了:

# 按行比较两个文件
>>> diff file1 file2
>>> diff testfile1 testfile2>testfile.patch

5.patch

diff记住一种用法足以,就是因为这一种用法是可以配合patch使用,我们运维中经常改配置文件或者程序,我们可以通过patch解决,当然也可以通过替换整个文本解决,各有好处。俗称“打补丁”,注明的分布式代码管理工具git就是用此原理,patch也有很多的选项,一般我们可以不需要深究。

# 修补文件,可用于和diff配合
# 将testfile1修改为testfile2一样的文件
>>> diff testfile1 testfile2>testfile.patch #生产差异文件
>>> patch  testfile1 testfile.patch #把testfile1升级成testfile2,或
>>> patch testfile1 <testfile.patch

6.find

Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示 .这个命令也是选项超级多的,先知道简单的用法,复杂的百度即可

>>> find . -name "*.md" #查找当前目录的md结尾的文件
>>> find . -ctime -7 #查看最近七天内的修改过的文件
>>> find . cmin -30 #查看最近30分钟内修改过的文件
>>> find . -type f -perm 644 #查找类型为文件的,权限为读写权限的文件
>>> find . -size +512k #查找大于512k的文件
>>> find . -size -512k #查找小雨512k的文件
>>> find / -size +50M -size -100M #查看大小在50Mb到100Mb之间的文件
>>> find . -iregex ".*md" #按照正则表达式搜索文件(iregex 为regex区分大小写模式)

find 命令有另外一个组合用法file … exec…,exec用来处理find搜索到的执行文件

>>> find . -type f -exec ls -l {} \; #搜索当前文件夹的文件并ls -l打印
>>> find /tmp -type f -name "*.txt" -exec rm -f {} \;#删除tmp目录下txt结尾的普通文件

find 命令的另外一个组合用法是 find … ok… 。ok代表着执行后面的过程过先让用户确认,比如删除文件的时候

>>> find . -iregex ".*md" -ok ls -l {} \; #通过正则查询出md文件并提示是否显示他们
>>> find /tmp -type f -name "*.txt" -ok rm -f {} \; #查找txt结尾的普通文件并提示是否删除

7.watch

watch这个命令是超级实用的,可以帮我们动态监控一个本来是静态的命令输出

>>> watch -d free #查看内存的动态变化,free是内存查看命令,同样我们也可以查看自己想看的文件变化
>>> watch -n 2 -d free #每两秒刷新一次
>>> watch -n 2 -d cat /opt/fonsview/3D/data/nices #实际的生产场景的用法
课后练习

1.练习所有的命令,并感受bash 命令的 用法,以及学习使用–help命令和man方式查看文档

2.联系使用find 命令查找文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫慌搞安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值