一点命令行笔记

看《linux命令行大全》做的一点笔记。

链接

硬链接

每个文件默认会有一个硬链接,这个硬链接给予文件名字。每创建一个硬链接,就为一个文件创建了一个额外的目录项。通过使用ls -li可以查看到硬链接和它关联的文件的索引节点号是相同的。
硬链接有2个局限:

  1. 硬链接不能关联与链接本身不在同一个磁盘分区上的文件。
  2. 硬链接不能关联目录。

删除硬链接时,文件本身将继续存在,直到其所有链接被删除。
使用ln file link创建。

符号链接

符号链接克服上述硬链接的局限性,即它可以关联目录且可以跨越设备。
当写符号链接时,相关联的文件也会被写入。删除符号链接时,和硬链接相同,文件本身将继续存在。而若先于符号链接直接删除文件,那么该链接将继续存在,只是不指向任何东西,这被称为坏链接。
和硬链接不同,符号链接和它关联的文件的索引节点号三不同的。
使用ln -s item lin创建。

通配符

使用字符类(如[:lower:])来代替范围表示(如[a-z])。

重定向

使用>重定向标准输出,但每次都会重写,因此可以使用> xxx.txt这个技巧来清空文件。
使用>>则不会重写,而是追加模式。

文件描述符0,1和2分别表示标准输入、标准输出和标准错误。
要将标准输出和错误重定向到同一个文件,使用&> xxx.txt

/dev/null是一个特殊文件,叫做位存储桶,它可以接受输入,但不会多任何处理。
可以将错误重定向到这里2> /dev/null

cat接受标准输入并显示,可以用<重定向。

管道

使用|将前面命令的输出重定向到后面命令的输入。用管道连接起来的命令叫做过滤器

历史命令

使用history查看历史命令,配合grep搜索,如history | grep sudo
得到的命令历史列表中每个命令会有一个编号,可以使用!200来执行200号命令。
也可以使用history后,输入Ctrl-r启动增量搜索,然后输入要查找的命令内容,可以按回车来执行,也可以输入Ctrl-j将其复制到命令行。若要退出增量搜索则输入Ctrl-c

vi

移动光标

快捷键作用
h左移一个字符
l右移一个字符
j下移一行
k上移一行
0到当前行的行首
^到当前行的第一个非空字符
$到当前行的行尾
%查找匹配的括号
w到下一个单词或标点
W到下一个单词
b到上一个单词或标点
B到上一个单词
Ctrl-f下一页
Ctrl-b上一页
Ctrl-Rundo the undo
数字n+G到第n行,如输入10G则移动到第10行
G到文件末尾
gg到文件开头
v选择文本,类似于平时用的shift

很多命令都可以加上数字,如5l表示右移5个字符

删除、复制和粘贴

快捷键作用
x删除当前字符
dd剪切除当前行
dW(yw)剪切(复制)到下一个单词
d$(y$)剪切(复制)到行尾
d0(y0)剪切(复制)到行首
dG(yG)剪切(复制)到文件末尾
p粘贴到光标之后
P粘贴到光标之前

其他快捷键

快捷键作用
i插入模式
a从当前字符开始追加模式
A从当前行开始追加模式
u撤销一次修改
/从前往后查找
?从后往前查找
n下一个
N上一个
rreplace
Rreplace模式
: s/old/new一次替换
: s/old/new/g本行替换
: %s/old/new/g全文替换
: %s/old/new/gc每次替换询问

查找

输入/进入查找模式,输入正则表达式以进行搜索

包管理

ubuntu的上层工具是apt-get,底层工具是dpkg。前者从资源库下载软件及其依赖项,后者依靠现有的.deb文件下载,且不下载依赖项。

正则表达式

POSIX把正则表达式分为2类:基本正则表达式(BRE)和扩展正则表达式(ERE)。
BRE可以辨认^$.[]*,而ERE则添加了(){}?+|

元字符含义
^开头
$结尾
.一个任意字符
*0个或多个任意字符
?1个或0个任意字符
+1个或多个任意字符
{}前面元素出现的次数

shell脚本

在赋值时,变量名、等号和变量值之间必须没有空格。
使用关键词local声明局部变量。
变量展开时可以加{}:

str="hello"
echo $str	# 输出hello
echo $str!	# 输出空,将创建变量str!,并给其赋值空
echo ${str}!	# 输出hello!

控制流

if:

if [条件]; then
	# do something
elif [条件]; then
	# do something
else
	# do something
fi

while:

while [条件]; do
	# do something
done

tips

  • 使用rm之前,先使用ls查看是否是要删除的文件。
  • whatis命令提供简洁的命令说明。
  • 使用""可以阻止命令行的单词分割,例如ls -l "two words.txt"。但注意,在""中参数展开、表达式展开和命令替换仍然有效。
  • 使用''则可以阻止上述三个展开。
  • 使用cat -n可以给文本添加行号
快捷键作用
Ctrl-a光标到行首
Ctrl-e光标到行尾
Alt-f光标到前一个字
Alt-b光标到后一个字
Ctrl-k从光标到行尾剪切
Ctrl-y粘贴
Ctrl-z停止前台进程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值