更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux命令 > Linux flock、file、firewall-cmd、finger命令的用法及解释

Linux flock、file、firewall-cmd、finger命令的用法及解释

更新时间:2022-01-22 11:07:25浏览次数:248+次

以下为你详细解释flock、file、firewall-cmd、finger命令的用法。

\

Linux flock命令的用法及解释

Linux flock是Linux下的文件锁。

当多个进程可能会对同样的数据执行操作时,这些进程需要保证其它进程没有也在操作,以免损坏数据。

通常,这样的进程会使用一个「锁文件」,也就是建立一个文件来告诉别的进程自己在运行,如果检测到那个文件存在则认为有操作同样数据的进程在工作。这样的问题是,进程不小心意外死亡了,没有清理掉那个锁文件,那么只能由用户手动来清理了。

1、参数

-s,--shared:获取一个共享锁,在定向为某文件的FD上设置共享锁而未释放锁的时间内,其他进程试图在定向为此文件的FD上设置独占锁的请求失败,而其他进程试图在定向为此文件的FD上设置共享锁的请求会成功。

-x,-e,--exclusive:获取一个排它锁,或者称为写入锁,为默认项。

-u,--unlock:手动释放锁,一般情况不必须,当FD关闭时,系统会自动解锁,此参数用于脚本命令一部分需要异步执行,一部分可以同步执行的情况。

-n,--nb, --nonblock:非阻塞模式,当获取锁失败时,返回1而不是等待。

-w, --wait, --timeout seconds:设置阻塞超时,当超过设置的秒数时,退出阻塞模式,返回1,并继续执行后面的语句。

-o, --close:表示当执行command前关闭设置锁的FD,以使command的子进程不保持锁。

-c, --command command:在shell中执行其后的语句。

2、实例

crontab运用flock防止重复执行:

0 23 * * * (flock -xn ./test.lock -c "sh /root/test.sh") #-n 为非阻塞模式

Linux file命令的用法及解释

Linux file命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。

1、语法

file(选项)(参数)

2、选项

-b:列出辨识结果时,不显示文件名称;

-c:详细显示指令执行过程,便于排错或分析程序执行的情形;

-f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称;

-L:直接显示符号连接所指向的文件类别;

-m<魔法数字文件>:指定魔法数字文件;

-v:显示版本信息;

-z:尝试去解读压缩文件的内容。

3、参数

文件:要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

4、实例

显示文件类型:

[root@localhost ~]# file install.log

install.log: UTF-8 Unicode text

[root@localhost ~]# file -b install.log      <== 不显示文件名称。

UTF-8 Unicode text

[root@localhost ~]# file -i install.log      <== 显示MIME类别。

install.log: text/plain; charset=utf-8

[root@localhost ~]# file -b -i install.log

text/plain; charset=utf-8

显示符号链接的文件类型:

[root@localhost ~]# ls -l /var/mail

lrwxrwxrwx 1 root root 10 08-13 00:11 /var/mail -> spool/mail

[root@localhost ~]# file /var/mail

/var/mail: symbolic link to `spool/mail'

[root@localhost ~]# file -L /var/mail

/var/mail: directory

[root@localhost ~]# file /var/spool/mail

/var/spool/mail: directory

[root@localhost ~]# file -L /var/spool/mail

/var/spool/mail: directory

Linux firewall-cmd命令的用法及解释

Linux firewall-cmd命令定义为启动CentOS/RHEL 7后,防火墙规则设置由firewalld服务进程默认管理。一个叫做firewall-cmd的命令行客户端支持和与这个守护进程通信以永久修改防火墙规则。

实例1:

# firewall-cmd --list-all-zones    #查看所有的zone信息

# firewall-cmd --get-default-zone     #查看默认zone是哪一个

# firewall-cmd --zone=internal --change-zone=p3p1  #临时修改接口p3p1所属的zone为internal

# firewall-cmd --add-service=http    #暂时开放http

# firewall-cmd --permanent --add-service=http  #永久开放http

# firewall-cmd --zone=public --add-port=80/tcp --permanent  #在public中永久开放80端口

# firewall-cmd --permanent --zone=public --remove-service=ssh   #从public zone中移除服务

# firewall-cmd --reload   #重新加载配置

实例2:

# firewall-cmd --zone=public --add-port=80/tcp --permanent    #开放80 端口

命令含义:

--zone #作用域

--add-port=80/tcp  #添加端口,格式为:端口/通讯协议

--permanent   #永久生效,没有此参数重启后失效

实例3:

1,查看 firewall 状态: 

$ firewall-cmd --state   # eg :running

2,查看 firewall 版本:

$ firewall-cmd --version #eg : 0.4.3.2

Linux finger命令的用法及解释

Linux finger命令用于查找并显示用户信息。包括本地与远端主机的用户皆可,帐号名称没有大小写的差别。单独执行finger指令,它会显示本地主机现在所有的用户的登陆信息。包括帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。

1、语法

finger(选项)(参数)

2、选项

-l:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容;

-m:排除查找用户的真实姓名;

-s:列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话;

-p:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容。

不指定finger的选项如果提供操作者的话,缺省设为-l输出风格,否则为-s风格,注意在两种格式中,如果信息不足,都有一些域可能丢失,如果没有指定参数finger会为当前登录的每个用户打印一个条目。

3、参数

用户名:指定要查询信息的用户。

4、实例

在计算机上使用finger:

[root@localhost root]# finger

login Name Tty Idle Login time Office Office Phone

root root tty1 2 Feb 18 13

root root pts/0 1 Feb 18 13

root root *pts/1 Feb 18 13

如果要查询远程机上的用户信息,需要在用户名后面接@主机名,采用用户名@主机名的格式,不过要查询的网络主机需要运行finger守护进程的支持。