restore

restore

所进行的操作和dump指令相反

补充说明

restore命令 是dump命令的逆过程,用于还原dump命令生成的备份文件。倾倒操作可用来备份文件,而还原操作则是写回这些已备份的文件。

语法

restore(选项)

选项

-b<区块大小>:设置区块大小,单位为Byte;
-c:不检查倾倒操作的备份格式,仅准许读取使用旧格式的备份文件;
-C:使用对比模式,将备份的文件与现行的文件相互对比;
-D<文件系统>:允许用户指定文件系统的名称;
-f<备份文件>:从指定的文件中读取备份数据,进行还原操作;
-h:仅解除目录而不包括与该目录相关的所有文件;
-i:使用互动模式,在进行还原操作时,restore指令将依序询问用户;
-m:解开符合指定的inode编号的文件或目录而非用文件名称指定;
-r:进行还原操作;
-R:全面还原文件系统时,检查应从何处开始进行;
-s<文件编号>:当备份数据超过一卷磁带时,用户可以指定备份文件的编号;
-t:指定文件名称,若该文件已存在备份文件中,则列出它们的名称;
-v:显示指令执行过程;
-x:设置文件名称,且从指定的存储媒体里读入它们,若该文件已存在在备份文件中,则将其还原到文件系统内;
-y:不询问任何问题,一律以同意回答并继续执行指令。

实例

dump -9 -u -f /dev/hda3 /home/frank/

用restore命令来恢复备份:

restore rf /dev/hda3 /home/frank

用restore命令来查看备份文件里的文件列表:

restore ft /dev/hda3
2024-08-08    
restorecon

restorecon

恢复文件的安全上下文

补充说明

restorecon命令 用来恢复SELinux文件属性即恢复文件的安全上下文。

语法

restorecon [-iFnrRv] [-e excludedir ] [-o filename ] [-f filename | pathname...]

选项

-i:忽略不存在的文件。
-f:infilename 文件 infilename 中记录要处理的文件。
-e:directory 排除目录。
-R/-r:递归处理目录。
-n:不改变文件标签。
-o/outfilename:保存文件列表到 outfilename,在文件不正确情况下。
-v:将过程显示到屏幕上。
-F:强制恢复文件安全语境。

实例

假设CentOS安装了apache,网页默认的主目录是/var/www/html,我们经常遇到这样的问题,在其他目录中创建了一个网页文件,然后用mv移动到网页默认目录/var/www/html中,但是在浏览器中却打不开这个文件,这很可能是因为这个文件的SELinux配置信息是继承原来那个目录的,与/var/www/html目录不同,使用mv移动的时候,这个SELinux配置信息也一起移动过来了,从而导致无法打开页面,具体请看下面的实例:

使用CentOS举例,如果默认没有安装apache,确保网络连接,使用下面的命令安装

[root@jsdig.com ~]# yum install httpd
 # 我们在root的家目录新建一个html文件 
[root@jsdig.com ~]# pwd
/root

[root@jsdig.com ~]# vi index.html

# 随便输入一段文字,保存退出 
welcome to www.jsdig.com

# 将这个文件mv到网页默认目录下 
[root@jsdig.com ~]# mv index.html /var/www/html/

# 
# 这个时候我们使用firefox浏览器输入127.0.0.1/index.html发现打不开,
# 查看一下SELinux的日志文件,发现了下面这一段报错信息,从这个报错信息不难看出,
# 进程httpd访问网页主目录中的index.html时被SELinux阻止,原因是因为,SELinux配置信息不正确,
# 正确的SELinux配置信息应该是scontext=后面的部分,
# 而index.html文件的SELinux配置信息却是tcontext=后面的部分,
# 从tcontext=的第三段“admin_home_t”不难看出,这个文件的SELinux配置信息是root用户家目录的。
# 
type=AVC msg=audit(1378974214.610:465): avc:  denied  { open } for  pid=2359 comm="httpd" path="/var/www/html/index.html" dev="sda1" ino=1317685 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file

使用ls -Z也可以看出,文件和目录的SELinux信息不匹配

2024-08-08    
return

return

从函数中退出并返回数值。

概要

return [n]

主要用途

  • 使得shell函数退出并返回数值,如果没有指定n的值,则默认为函数最后一条命令执行的返回状态。

参数

n(可选):整数。

返回值

返回值为你指定的参数n的值,如果你指定的参数大于255或小于0,那么会通过加或减256的方式使得返回值总是处于0到255之间。

在函数外执行return语句会返回失败。

例子

#!/usr/bin/env bash
# 定义一个返回值大于255的函数
example() {
  return 259
}
# 执行函数
example
# 显示3
echo $?

注意

  1. 该命令是bash内建命令,相关的帮助信息请查看help命令。
2024-08-08    
rev

rev

将文件内容以字符为单位反序输出

补充说明

rev命令 将文件中的每行内容以字符为单位反序输出,即第一个字符最后输出,最后一个字符最先输出,依次类推。

语法

rev(参数)

参数

文件:指定要反序显示内容的文件。

实例

[root@localhost ~]# cat iptables.bak
# Generated by iptables-save v1.3.5 on Thu Dec 26 21:25:15 2013
*filter
:INPUT DROP [48113:2690676]
:FORWARD accept [0:0]
:OUTPUT ACCEPT [3381959:1818595115]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Thu Dec 26 21:25:15 2013

[root@localhost ~]# rev iptables.bak 
3102 51:52:12 62 ceD uhT no 5.3.1v evas-selbatpi yb detareneG #
retlif*
]6760962:31184[ PORD TUPNI:
]0:0[ TPECCA DRAWROF:
]5115958181:9591833[ TPECCA TUPTUO:
 TPECCA j- ol i- TUPNI A-
 TPECCA j- 22 tropd-- pct m- pct p- TUPNI A-
 TPECCA j- 08 tropd-- pct m- pct p- TUPNI A-
 TPECCA j- DEHSILBATSE,DETALER etats-- etats m- TUPNI A-
 TPECCA j- pmci p- TUPNI A-
 TPECCA j- ol o- TUPTUO A-
TIMMOC
3102 51:52:12 62 ceD uhT no detelpmoC #
2024-08-08    
rexec

rexec

远程执行Linux系统下命令

补充说明

rexec命令 用于在指定的远程Linux系统主机上执行命令,向远程rexec服务器发出执行命令的请求。

rexec命令通过检查$HOME/.netrc文件(包含远程主机上使用的用户名和密码)来提供自动登录的功能。如果没有发现此类项或系统在安全方式下操作(参阅 securetcpip 命令),rexec命令提示输入一个远程主机的有效用户名和密码。这两种情况下,rexec均导致远程系统上的rexecd使用缺省的compat用户登录认证方法。rexecd不会为了备用的认证方法去查找/etc/security/user文件。也可以指定-n标志到rexec命令行上来重设自动登录功能。

语法

rexec(选项)(参数)

选项

-a:表示远程命令的标准错误与标准输出相同,不支持发送任意信号到远程进程;
-l<用户名>:指定连接远程rexec服务器的用户名;
-p<密码>:指定连接远程rexec服务器的密码;
-n:明确地提示输入用户名和密码。

参数

  • 远程主机:指定远程主机(ip地址或主机名);
  • 命令:指定需要在远程主机上执行的命令。

实例

要在一个远程主机上执行date命令,输入:

rexec host1 date

date命令的输出现在显示在本地系统上。本示例中,在本地主机上的$HOME/.netrc文件包含远程主机上有效的用户名和密码。如果没有远程主机的$HOME/.netrc文件中的有效项,将提示输入登录标识和密码。输入所要求的登录信息后,date命令的输出显示在本地系统上。

要重设自动登录功能并执行远程主机上的date命令,输入:

rexec -nhost1 date

出现提示时输入用户名和密码,date命令的输出现在显示在本地系统上。

列出远程主机上另一个用户的目录,输入:

rexec host1 ls -l /home/karen

在远程主机host1上的karen 用户的目录列表显示在本地系统上。

如果没有远程主机的$HOME/.netrc文件中的有效项,将提示您输入登录标识和密码。输入要求的登录信息后,在远程主机host1上的karen用户的目录列表显示在本地系统上。

2024-08-08    
rlogin

rlogin

从当前终端登录到远程Linux主机

补充说明

rlogin命令 用于从当前终端登录到远程Linux主机。

语法

rlogin(选项)(参数)

选项

-8:允许输入8位字符数据;
-e脱离字符>:设置脱离字符;
-E:滤除脱离字符;
-l用户名称>:指定要登入远端主机的用户名称;
-L:使用litout模式进行远端登入阶段操作。

参数

远程主机:指定要登录的远程主机(ip地址或者域名)。

2024-08-08    
rm

rm

用于删除给定的文件和目录

补充说明

rm 命令 可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

语法

rm (选项)(参数)

选项

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。

参数

文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。

实例

交互式删除当前目录下的文件test和example

rm -i test example
Remove test ?n(不删除文件test)
Remove example ?y(删除文件example)

删除当前目录下除隐含文件外的所有文件和子目录

# rm -r *

应注意,这样做是非常危险的!

删除当前目录下的 package-lock.json 文件

find .  -name "package-lock.json" -exec rm -rf {} \;

*查找 .html 结尾的文件并删除

find ./docs -name "*.html" -exec rm -rf {} \;

*删除当前项目下 .html 结尾的文件

rm -rf *.html

删除当前目录下的 node_modules 目录

find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +

删除文件

2024-08-08    
rmdir

rmdir

用来删除空目录

补充说明

rmdir命令 用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或多个子目录,其中dirname佬表示目录名。如果dirname中没有指定路径,则删除当前目录下由dirname指定的目录;如dirname中包含路径,则删除指定位置的目录。删除目录时,必须具有对其父目录的写权限。

注意:子目录被删除之前应该是空目录。就是说,该目录中的所有文件必须用rm命令全部,另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。

虽然还可以用带有-r选项的rm命令递归删除一个目录中的所有文件和该目录本身,但是这样做存在很大的危险性。

语法

rmdir(选项)(参数)

选项

-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
--ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;
-v或-verboes:显示命令的详细执行过程;
--help:显示命令的帮助信息;
--version:显示命令的版本信息。

参数

目录列表:要删除的空目录列表。当删除多个空目录时,目录名之间使用空格隔开。

实例

将工作目录下,名为 www 的子目录删除 :

rmdir www

在工作目录下的 www 目录中,删除名为 Test 的子目录。若 Test 删除后,www 目录成为空目录,则 www 亦予删除。

rmdir -p www/Test

下面命令等价于 rmdir a/b/c, rmdir a/b, rmdir a

rmdir -p a/b/c
2024-08-08    
rmmod

rmmod

从运行的内核中移除指定的内核模块

补充说明

rmmod命令 用于从当前运行的内核中移除指定的内核模块。执行rmmod指令,可删除不需要的模块。Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放如核心。你可以将这些功能编译成一个个单独的模块,待有需要时再分别载入它们。

语法

rmmod(选项)(参数)

选项

-v:显示指令执行的详细信息;
-f:强制移除模块,使用此选项比较危险;
-w:等待着,直到模块能够被除时在移除模块;
-s:向系统日志(syslog)发送错误信息。

参数

模块名:要移除的模块名称。

实例

用rmmod命令主要用于卸载正在使用的Linux内核模块,与modprobe -r命令相似,如下所示:

[root@localhost boot]# lsmod | grep raid1
raid1                  25153  0

[root@localhost boot]# rmmod raid1
[root@localhost boot]# lsmod | grep raid1
2024-08-08    
route

route

显示并设置Linux中静态路由表

补充说明

route命令 用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。

在Linux系统中设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的ip地址设置为Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。

语法

route(选项)(参数)

选项

-A:设置地址类型;
-C:打印将Linux核心的路由缓存;
-v:详细信息模式;
-n:不执行DNS反向查找,直接显示数字形式的IP地址;
-e:netstat格式显示路由表;
-net:到一个网络的路由表;
-host:到一个主机的路由表。

参数

add:增加指定的路由记录;
del:删除指定的路由记录;
target:目的网络或目的主机;
gw:设置默认网关;
mss:设置TCP的最大区块长度(MSS),单位MB;
window:指定通过路由表的TCP连接的TCP窗口大小;
dev:路由记录所表示的网络接口。

实例

显示当前路由:

[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
112.124.12.0    *               255.255.252.0   U     0      0        0 eth1
10.160.0.0      *               255.255.240.0   U     0      0        0 eth0
192.168.0.0     10.160.15.247   255.255.0.0     UG    0      0        0 eth0
172.16.0.0      10.160.15.247   255.240.0.0     UG    0      0        0 eth0
10.0.0.0        10.160.15.247   255.0.0.0       UG    0      0        0 eth0
default         112.124.15.247  0.0.0.0         UG    0      0        0 eth1

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
112.124.12.0    0.0.0.0         255.255.252.0   U     0      0        0 eth1
10.160.0.0      0.0.0.0         255.255.240.0   U     0      0        0 eth0
192.168.0.0     10.160.15.247   255.255.0.0     UG    0      0        0 eth0
172.16.0.0      10.160.15.247   255.240.0.0     UG    0      0        0 eth0
10.0.0.0        10.160.15.247   255.0.0.0       UG    0      0        0 eth0
0.0.0.0         112.124.15.247  0.0.0.0         UG    0      0        0 eth1

其中Flags为路由标志,标记当前网络节点的状态,Flags标志说明:

2024-08-08