Linux命令积累

菜狗汪汪:不熟悉的命令和坑都在这里,持续增加,抄自菜鸟教程

https://www.runoob.com/linux/linux-file-content-manage.html

其他参考资料单独附在相关部分下。

目录​​​​​​​

tail

vim 

tips

快捷键积累

移动: 

搜索替换:

删除、复制与贴上:​​​​​​​

 一般模式切换到指令行模式:

shell脚本传参

在vim中创建的sp.sh内容

执行

特殊符号

流程控制

if else

for 循环

while语句

printf命令的格式替代符

grep参数

自定义函数

自定义函数示例

函数参数 


tail

-n: 后面接数字,代表显示几行的意思

tail -5  /etc/man.config 

-f:表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测

tail -f test.log
会看到屏幕不断有内容被打印出来. 可以打印实时输入的文件。

更多详细说明:https://www.cnblogs.com/my-ShowTime/p/5404696.html

vim 

tips

 vi 后面一定要加文件名,不管该文件存在与否:vim 文件名.txt,否则最后保存时会显示:

此时,输入:qa!+ enter 来放弃所有change,退出

快捷键积累

要退出输入模式,在命令模式下使用。

移动: 

[Ctrl] + [f]屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b]屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
0 或功能键[Home]这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End]移动到这一行的最后面字符处(常用)
G

移动到这个档案的最后一行(常用)

搜索替换:

在底行输入。

/word向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word向光标之上寻找一个字符串名称为 word 的字符串。
n

这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!

N这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
:n1,n2s/word1/word2/gn1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:
『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g 或 :%s/word1/word2/g从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)

删除、复制与贴上:​​​​​​​

x, X在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
nxn 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
dd删除游标所在的那一整行(常用)
nddn 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
yy复制游标所在的那一行(常用)
nyyn 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
p, Pp 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
u复原前一个动作。(常用)
[Ctrl]+r重做上一个动作。(常用)
.小数点,意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)

 一般模式切换到指令行模式:

r, R进入取代模式(Replace mode):
r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
:w将编辑的数据写入硬盘档案中(常用)
:w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q离开 vi (常用)
:q!若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
:wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ这是大写的 Z 喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出)
ZQ不保存,强制退出。效果等同于 :q!。
:w [filename]将编辑的数据储存成另一个档案(类似另存新档)
:r [filename]在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename]将 n1 到 n2 的内容储存成 filename 这个档案。
:! command暂时离开 vi 到指令行模式下执行 command 的显示结果!例如
『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!


shell脚本传参

在vim中创建的sp.sh内容

tips:

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。

扩展名并不影响脚本执行。

执行脚本的两种方法:

1. 在有#!时,用:

chmod +x ./sp.sh #使脚本具有执行权限

./sp.sh #在当前目录找,执行脚本

传参时,必须先用执行权限这种方式,才能传参,不知道为啥

2. 在没有#!时,用:

/bin/sh sp.txt

这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。

执行

chmod +x sp.sh 

./sp.sh 1 2 3

特殊符号

$#传递到脚本的参数个数
$*以一个单字符串显示所有向脚本传递的参数。
如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@与$*相同,但是使用时加引号,并在引号中返回每个参数。
如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$?显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

结果:

 

$* 与 $@ 区别:

相同点:都是引用所有参数。

不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。

流程控制

if else

if condition1

then command1

elif condition2

then command2

else commandN

fi

for 循环

for var in item1 item2 ... itemN

do

   command1

   command2

   ...

   commandN

done

注意$符号

while语句

while condition
do
    command
done

注意:Bash let 命令,它用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量

printf命令的格式替代符

%s %c %d %f 都是格式替代符,%s 输出一个字符串,%d 整型输出,%c 输出一个字符,%f 输出实数,以小数形式输出。

%-10s 指一个宽度为 10 个字符(- 表示左对齐,没有则表示右对齐),任何字符都会被显示在 10 个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。

%-4.2f 指格式化为小数,其中 .2 指保留2位小数。

grep参数

grep [options]

[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。

grep ‘test’ d*
显示所有以d开头的文件中包含 test的行。
grep ‘test’ aa bb cc
显示在aa,bb,cc文件中匹配test的行。
grep ‘[a-z]\{5\}’ aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

参考博文:https://www.cnblogs.com/end/archive/2012/02/21/2360965.html

自定义函数

自定义函数示例

结果:

 

函数参数 

 在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值

注意,$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数:

结果: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值