Linux常见命令
vim快捷方式
- 删除:一行(dd),多行(数字+dd)
- 多行注释
- 按
Ctrl+V
进入visual block
模式,选中多行- 按大写字母I
(shift+i)
进入编辑模式,插入注释符- 按esc键
- 多行注释取消
- 按
Ctrl+V
进入visual block
模式,选中多行,按delete
- 跳转末行:
G
,跳转首行:gg
- 跳转行首:
Home
, 跳转行尾:End
查看主机端口
ss -lnutp
快捷方式
esc + .
两键组合,复制粘贴上一条命令的最后一个参数
curl命令
-k:允许连接到没有证书(H)的SSL站点
-O:使用远程文件的文件名作为本地文件名
-o:自定义下载后文件名字
hostname
临时:hostname <主机名>
永久:hostnamectl set-hostname <主机名>
firwalld
查看:systemctl status firewalld
临时关闭:systemctl stop firwalld
永久关闭:systemctl disable firewalld
scp
-r: 递归复制整个目录。
例如:scp -r /etc/profile root@192.168.206.132:/etc/profile
selinux
查看状态:getenforce
临时关闭:setenforce 0
永久关闭:sed -ri 's/(SELINUX=).*/\1disabled/g' /etc/selinux/config
echo $?
判断上一条命令是否执行正常,执行正常,返回0,不正常是非0
管道符 |
管道符主要用于多重命令处理,前面命令的打印结果作为后面命令的输入。
举例:
cat hello.sh | sort | uniq | grep 'better'
- 查看文本
- 排序
- 去重
- 过滤
- 第一道工序———查看文本
首先使用cat
命令查看文本,打印到屏幕上内容即为cat
命令的输出结果
- 第二道工序——排序
将前面cat
命令输出的结果通过管道丢给sort
命令,所以sort
命令是对前面cat
命令输出的文本进行排序
- 第三道工序——去重
sort
跟uniq
结合使用才能有效去重,通过管道将sort
处理后输出的文本丢给uniq
处理,所以uniq
处理的是排序好的文本,可以进行有效去重
- 第四道工序——过滤
最后一步过滤则同样是将前面命令即uniq
命令处理后输出的文本进行过滤
重定向
bash使用的三种标准输入输出流
字段 | 描述 | 文件描述符 |
---|---|---|
stdin | 标准输入流 | 0 |
stdout | 标准输出流 | 1 |
stderr | 标准错误输出流 | 2 |
命令执行过程:
对于任何一条Linux命令执行,都是这样一个过程:
(1)用户从键盘或其它输入设备输入,输入通过stdin交给命令,命令执行。
(2)如果命令执行成功,会把成功结果通过stdout输出到输出设备上;
(3)如果命令执行出错,会把错误结果通过stderr也输出到输出设备上。
输出重定向
将某个命令默认指向stdout
或stderr
的输出文件转而指向一个文件,即使得命令输出到某个指定文件中,而不是输出到终端屏幕或终端窗口。Linux中使用>
和>>
来重定向标准输出。
ls 1>stdout.txt
:重定向标准输出到stdout.txt文件。若该文件原本不存在,则文件将被创建;否则,文件内容将被强制覆盖。当然,如果不想文件内容被覆盖,可以使用将>
改为>>
,该命令将标准输出追加到文件末尾。ls 4.txt 2>stderr.txt
:重定向标准错误输出到stderr.txt文件。其它用法同上。ls 1.txt 4.txt 1>stdout.txt 2>stderr.txt
:分别重定向标准输出到stdout.txt文件,标准错误输出到stderr.txt文件。其它用法同上。ls 1.txt 4.txt &>std.txt
:使用&
重定向标准输出和错误输出到同一个文件。其它用法同上。
[root@localhost ~/test]# ls #重定向前的成功输出(直接在终端窗口显示)
1.txt 2.txt 3.txt
[root@localhost ~/test]# ls 4.txt #重定向前的错误输出(直接在终端窗口显示)
ls: cannot access 4.txt: No such file or directory
[root@localhost ~/test]# ls 1>stdout.txt #重定向标准输出到stdout.txt
[root@localhost ~/test]# cat stdout.txt
1.txt
2.txt
3.txt
stdout.txt
[root@localhost ~/test]# ls 1>>stdout.txt
[root@localhost ~/test]# cat stdout.txt
1.txt
2.txt
3.txt
stdout.txt
1.txt
2.txt
3.txt
stdout.txt
[root@localhost ~/test]# ls 4.txt 2>stderr.txt
[root@localhost ~/test]# cat stderr.txt
ls: cannot access 4.txt: No such file or directory
[root@localhost ~/test]# ls 1.txt 4.txt 1>stdout.txt 2>stderr.txt
[root@localhost ~/test]# cat stdout.txt
1.txt
[root@localhost ~/test]# cat stderr.txt
ls: cannot access 4.txt: No such file or directory
[root@localhost ~/test]# ls 1.txt 4.txt &>std.txt
[root@localhost ~/test]# cat std.txt
ls: cannot access 4.txt: No such file or directory
1.txt
文件输出重定向的应用
- 结合
echo
命令创建文本文件
例:
[root@localhost ~/test]# echo -e "1 apple\n2 pear\n3 banana" # 输出信息到终端窗口
1 apple
2 pear
3 banana
[root@localhost ~/test]# echo -e "1 apple\n2 pear\n3 banana" > fruit.txt # 重定向输出信息到文本文件
[root@localhost ~/test]# cat fruit.txt
1 apple
2 pear
3 banana
- 忽略命令错误输出
例:
[root@localhost ~/test]# ls 1.txt 4.txt
ls: cannot access 4.txt: No such file or directory
1.txt
[root@localhost ~/test]# ls 1.txt 4.txt 2>>/dev/null #将错误输出重定向到/dev/null,只查看正确输出
1.txt
/dev/null是一个非常特殊的块设备文件。可以视为系统的黑洞,写入到这个文件中的东西都会被丢弃掉,因此可以用来写入想忽略的错误输出。
输入重定向
输入重定向是指让命令从指定文件中获取输入,而非从stdin(常常指的是键盘输入)中获取输入。Linux中使用<
和<<
来重定向标准输入。
文件输入重定向的应用
- 结合
tr
命令使用。tr
命令往往用于从标准输入中替换特定字符,并将结果写到标准输出。
用法:
tr '准备要替换的字符' '要替换成的字符'
例:从fruit.txt获取输入,并将字符替换后的结果写到标准输出
tr ' ' '\t' <fruit.txt
2. 结合sort
命令使用。sort
命令用于对文本文件内容按照规定字段进行排序。
用法:
sort -k [关键字字段序号] [要排序的文本文件]
例:
(1)直接将fruit.txt文件传递给sort进行排序
sort -k2 <fruit.txt
(2)将界定符EOF之前的内容作为一个文件传递给sort进行排序
sort -k2 <<EOF
> 1 apple
> 2 pear
> 3 banana
> EOF
Linux系统常用终端快捷键
1. ctrl + f 向后移动光标
2. ctrl + b 向前移动光标
3. ctrl + a 光标移动到行首
4. ctrl + e 光标移动到行尾
5. ctrl + p 向上翻页,相当于pageUp
6. ctrl + n 向下翻页,相当于pageDown
7. ctrl + h 删除光标前一个字符
8. ctrl + d 删除光标所在字符
9. crtl + u 删除光标至开始全部内容(不包括光标所在字符)
10. ctrl + k 删除光标至末尾全部内容(包括光标所在字符)
11. ctrl + w 删除光标前单词
12. crtl + y 粘贴使用 crtl+w,ctrl+u和ctrl+k快捷键擦除的文本