tar 命令是 Linux 中常用的归档命令,可以将多个文件归档到一个文件中,也可以从归档文件中提取这些文件。
归档方式有哪些?
.gz
结尾,最常用的压缩方式.bz2
结尾,压缩能力更强(压缩后的文件更小),使用较多.Z
结尾,使用较少.zip
结尾,压缩能力较低,跨平台做的较好,使用较少.rar
结尾,压缩能力较低,使用较少tar 命令的[选项] 参数
Vi 的改进版本,一个程序员文本编辑器,它主要有三种模式
以vim打开一个文件就直接进入一般模式(默认模式)可以使用上下左右移动光标来移动光标,也可以使用删除字符来处理文件内容,也可以使用复制、粘贴来处理文件数据。
指令 | 解释 |
---|---|
[h] | 或 ← |
[j] | 或 ↓ |
[k] | 或 ↑ |
[l] | 或 → |
[H] | 光标移到当前屏幕最上方行的第一个字符 |
[M] | 光标移到当前屏幕中间行的第一个字符 |
[L] | 光标移动到当前屏幕最下方行第一个字符 |
[G] | 移到此文件最后一行 |
n[G] | 移到第n行 |
n[Enter] | 光标下移n行 |
[Ctrl]+[f] | 屏幕向下移动一页 |
[Ctrl]+[b] | 屏幕向上移动一页 |
[0] 或 [Home] | 移动光标所在行的行首 |
[$] 或 [End] | 移到光标所在行的行尾 |
指令 | 解释 |
---|---|
[x] | 向后删除一个字符 |
n[x] | 向后删除n个字符(n为数字) |
[X] | 向前删除一个字符 |
[d][d] | 删除光标所在行 |
n[d][d] | 删除光标所在行以下n行(n为数字,包含当前行在内) |
[d][1][G] | 删除光标所在行到第一行所有数据 |
[d][G] | 删除光标所在行到最后一行 |
[d][$] | 删除光标所在处到同行最后一个字符 |
[d][0] | 删除光标所在处到同行第一个字符 |
指令 | 解释 |
---|---|
[y][y] | 复制光标所在行 |
n[y][y] | 复制光标所在向下n行(n为数字) |
[y][1][G] | 复制光标所在行到第一行所有数据 |
[y][G] | 复制光标所在行到最后一行所有数据 |
[y][$] | 复制光标所在处到同行最后一个字符 |
[y][0] | 复制光标所在处到同行第一个字符 |
[p] | 小写字母 p,将已复制的数据粘贴到光标所在下一行 |
[P] | 大写字母 p,将已复制的数据粘贴到光标所在上一行 |
[u] | 小写字母 u,复原前一个操作(类似于windows中的ctrl+z) |
[ctrl][r] | 恢复上一次撤销的内容(类似于windows中的ctrl+y) |
在一般模式中可以删除、复制、粘贴等,但无法编辑文件内容。按下i、I、o、O、a、A、r、R等任何一个字母后进入编辑模式。并在左下方出现INSERT或REPLACE。该模式下可以输入文件内容。按下返回一般模式。
指令 | 解释 |
---|---|
[i] | 从光标所在处插入 |
[I] | 从所在行第一个非空白字符处插入 |
[a] | 从光标所在下一个字符处插入 |
[A] | 从光标所在行最后一个字符处插入 |
[o] | 在光标所在处下一行插入新的一行 |
[O] | 在光标所在处上一行插入新的一行 |
[s] | 删除光标所在的字符并开始插入 |
[S] | 删除光标所在行并开始插入 |
[r] | 替换光标所在处字符一次 |
[R] | 一直替换光标所在处文字直到按下Esc |
在一般模式当中,输入:/?三个字符中的任何一个按钮,就可以将光标移动到最下面那一行。在这个模式当中,可以提供查询、替换等功能。同时存盘、离开vi、显示行号等等命令都是在此模式进行。例如,:wq即可保存退出。
指令 | 解释 |
---|---|
/word | 向下查找单词“word” |
?word | 向上查找单词“word” |
指令 | 解释 |
---|---|
:s/word1/word2/g | 在当前行将word1替换成word2 |
:%s/word1/word2/g | 在当前文件将word1替换成word2 |
:n1,n2s/word1/word2/g | 在n1到n2行查找word1替换成word2 (n1、n2为数字) |
:1,$s/word1/word2/g | 从第一行到最后一行查找word1替换成word2 |
:1,$s/word1/word2/gc | 同上,在替换前confirm是否替换 |
指令 | 解释 |
---|---|
:set nu | 显示行号 |
:set nonu | 取消显示行号 |
:w | 将文件存盘 |
:w [filename] | 另存为filename |
:r [filename] | 读取filename指定文件中的内容到光标所在的行 |
:n1,n2 w [filename] | 将n1到n2行另存为filename |
:wq | 保存后离开 |
:q! | 不保存,强制离开 |
:wq! | 强制保存退出 |
:! command | 临时切换到命令行模式下执行command命令。 |
例如 :!ls /home
即可在vim当中查看/home下面以ls输出的文件信息。
该指令是 OpenSSH SSH客户端,用于远程登录程序。在 window 10 的操作系统中也可用。
用法:ssh [用户名]@[目标主机 IP]
示例:ssh root@192.168.1.120
在每次使用 ssh
的时候,会被要求输入密码。如果多台操作系统中需要来回切换使用的话,就会很繁琐。我们可以使用 ssh-keygen
和 ssh-copy-id
两个命令来实现免密登录的配置,具体如下:
[root@h150 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:/SjKbSI59e5S7NmM/jmk9PJd8C1a9EebX3hmpyeRTCM root@h150.c7
The key's randomart image is:
+---[RSA 2048]----+
| |
| |
| |
| . E o |
| .S . .+.o.|
| . + .o ++=o|
| o =.O. . *+X|
| +.ooO.=o +.**|
| ooB=++.o .o.|
+----[SHA256]-----+
[root@h150 ~]#
[root@h150 ~]# ssh-copy-id root@h150.c7
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@h150.c7's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@h150.c7'"
and check to make sure that only the key(s) you wanted were added.
[root@h150 ~]#
完成之后,再次使用 ssh
进行远程登录时候,就不会再要求输入密码了。
该指令用于远程文件复制程序。在 window 10 的操作系统中也可用。
从 Linux 复制文件到 window:
scp root@192.168.1.120:/root/anaconda-ks.cfg C:/
示例上传:
scp C:/anaconda-ks.cfg root@192.168.1.120:/root/
在 RHEL7里有几种防火墙共存:firewalld、iptables、ebtables,默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等。
systemctl start firewalld
systemctl status firewalld
systemctl disable firewalld
systemctl stop firewalld
指令 | 解释 |
---|---|
firewall-cmd --list-ports | 查看开放的端口 |
firewall-cmd --add-port=9000/tcp --permanent | 永久开放指定端口 |
firewall-cmd --remove-port=9000/tcp --permanent | 永久移除指定端口 |
firewall-cmd --reload | 重启防火墙 |
利用 netstat 指令可让你得知整个 Linux 系统的网络情况,最常用的就是查看端口占用情况。例如:
netstat -antp
参数说明:
参数 | 解释 |
---|---|
-a 或 --all | 显示所有连线中的Socket。 |
-n 或 --numeric | 直接使用IP地址,而不通过域名服务器。 |
-t 或 --tcp | 显示TCP传输协议的连线状况。 |
-u 或 --udp | 显示UDP传输协议的连线状况。 |
-p 或 --programs | 显示正在使用Socket的程序识别码和程序名称。 |
列信息:
列名 | 描述 |
---|---|
Proto | 通信协议 |
Recv-Q | 已接收的队列 |
Send-Q | 已发送的队列 |
Local Address | 本地主机的地址(包括端口) |
Foreign Address | 外部主机的地址(包括端口) |
State | 当前状态 |
PID/Program name | 进程ID / 运行的程序的名称 |
指令 | 解释 |
---|---|
service network restart | 重启网卡 |
free | 查看当前主机的内存信息 |
df | 查看当前主机的磁盘信息 |
ps -aux | 查看当前主机正在运行的进程 |