文件比较运算符-e filename ? ? ?
如果 filename存在,则为真 ? ? ? [ -e /var/log/syslog ]-d filename ? ?
如果 filename为目录,则为真 ? ? ?[ -d /tmp/mydir ]-f filename ?
如果 filename为常规文件,则为真 ? ?[ -f /usr/bin/grep ]-L filename ? ? ?
如果 filename为符号链接,则为真 ? ?[ -L /usr/bin/grep ]-r filename ? ? ?
如果 filename可读,则为真 ? ? ? [ -r /var/log/syslog ]-w filename ? ?
如果 filename可写,则为真 ? ? ? [ -w /var/mytmp.txt ]-x filename ? ? ?
/boot/bzImage ]字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string 如果 string长度为零,则为真 [ -z "$myvar" ]-n string 如果 string长度非零,则为真 [ -n "$myvar" ]
拓展资料:
Linux操作系统
-f 作为选项参数在不同的命令中是不同的.
cp -f 这里-f代表强制性
tar -f 这里-f代表文件
......
强制
为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次
快照功能:记录当前的硬盘的状态.刚建快照时快照占用内存为0,标记了当前硬盘的存储状态.当虚拟机对快照标记的内容改写时,会将改写的内容存储进快照,与未改写的部分整合得到完整的快照.当快照标记的部分被完全改写,那么快照存储空间完整记录了当时拍摄时的内存状态.
参数形式
第一种:参数用一横的说明后面的参数是字符形式.
第二种:参数用两横的说明后面的参数是单词形式.
第三种:参数前有横的是 System V风格.
第四种:参数前没有横的是 BSD风格.
cat、more、less、head、tail命令的比较:
cat命令可以一次显示整个文件,如果文件比较大,使用不是很方便;
more命令可以让屏幕在显示满一屏幕时暂停,按空格往前翻页,按b往后翻页.
less命令也可以分页显示文件,和more命令的区别就在于: 支持上下键卷动屏幕、查找;不需要在一开始就读取整个文件,打开大文件时比more、vim更快.
head命令用于查看文件的前n行.
tail命令用于查看文件的后n行,加上-f命令,查看在线日志非常方便,可以打印最新增加的日志.
一般模式:
命令模式:
编码
①head:显示文件头部内容
②tail:输出文件尾部内容
注意:用vim和vi修改内容会删除源文件并生成新文件,所以tail -f会失效.需要用到
追加和覆盖语句(或),才能被tail -f监视到.
一般用于查看小文件
查看压缩文件中的文本内容
例:
①more:文件内容分屏查看器
②less:分屏显示文件内容,效率比more高
①.、简单读取
运行脚本如下
测试结果为:
echo [选项] [输出内容] (输出内容到控制台)
①显示当前时间信息
②显示当前时间年月日
③显示当前时间年月日时分秒
④显示昨天
⑤显示明天时间
⑥显示上个月时间
⑦修改系统时间
⑧获取当前时间戳
获取秒时间戳: date +%s
获取毫秒时间戳:$[ (date +%s%N) /1000000]
查看日历
(1)查看当前月的日历
对比gzip/gunzip,zip/unzip可以压缩文件和目录且保留源文件.
①zip:压缩
②unzip:解压缩
只能压缩文件不能压缩目录,不保留原来的文件.
gzip 文件 (只能将文件压缩为*.gz文件)
gunzip 文件.gz (解压缩文件命令)
例: crontab -e
*/1 * * * * /bin/echo "11" /root/bailongma.txt
查看日志
可以用tail -f /var/log/cron.log观察
Cron表达式见文章:
ls [选项] [目录或是文件]
cd [参数]
例: cd -P $(dirname $p1) ; pwd 先跳转到文件的所在目录,再打印$p1文件的实际路径
概述
①cp(copy):只能在本机中复制
②scp(secure copy):可以复制文件给远程主机
③rsync(remote sync):功能与scp相同,但是不会改文件属性
④nc(netcat):监听端口,可以实现机器之间传输文件.
强制覆盖不提示的方法:\cp
nc -lp 10000 nc_test.txt
远程登录时默认使用的私钥为~/.ssh/id_rsa
生成密钥对
将公钥发送到本机
将密钥发送到需要登录到本机的服务器上
修改密钥的权限
远程登陆
如果有多个节点需要远程登陆,可以在.ssh下创建config并输入
再次登陆
①正向代理:
②反向代理:
所谓"反向代理"就是让远端启动端口,把远端端口数据转发到本地.
HostA 将自己可以访问的 HostB:PortB 暴露给外网服务器 HostC:PortC,在 HostA 上运行:
那么链接 HostC:PortC 就相当于链接 HostB:PortB.
相当于内网穿透,比如 HostA 和 HostB 是同一个内网下的两台可以互相访问的机器,HostC是外网跳板机,HostC不能访问 HostA,但是 HostA 可以访问 HostC.
那么通过在内网 HostA 上运行 ssh -R 告诉 HostC,创建 PortC 端口监听,把该端口所有数据转发给我(HostA),我会再转发给同一个内网下的 HostB:PortB.
同内网下的 HostA/HostB 也可以是同一台机器,换句话说就是 内网 HostA 把自己可以访问的端口暴露给了外网 HostC.
③修改chenjie.asia服务器的ssh配置文件 /etc/ssh/sshd_config ,允许其他节点访问
然后重启sshd服务
这个进程在关闭session时会停止,可以添加启动参数 -CPfN
sudo setcap cap_net_bind_service=+eip /bigdata/nginx/sbin/nginx
正确的关机流程为 :sync shutdown reboot halt
(1)sync (功能描述:将数据由内存同步到硬盘中)
安装
yum install -y telnet-server telnet
ls -i 显示文件的节点号
find -inum 节点号 -delete 删除指定的节点即可删除对应的文件
启动一个服务: systemctl start postfix.service
关闭一个服务: systemctl stop postfix.service
重启一个服务: systemctl restart postfix.service
显示一个服务的状态: systemctl status postfix.service
在开机时启用一个服务: systemctl enable postfix.service
在开机时禁用一个服务: systemctl disable postfix.service
注:在enable的时候会打印出来该启动文件的位置
列出所有已经安装的服务及状态:
systemctl list-units
systemctl list-unit-files
查看服务列表状态:
systemctl list-units --type=service
查看服务是否开机启动: systemctl is-enabled postfix.service
查看已启动的服务列表: systemctl list-unit-files | grep enabled
查看启动失败的服务列表: systemctl --failed
查看服务日志: journalctl -u postfix -n 10 -f
命令类似systemctl,用于操作native service.
添加脚本为服务(需要指定启动级别和优先级): chkconfig --add [脚本]
删除服务: chkconfig --del [脚本]
单独查看某一服务是否开机启动的命令 : chkconfig --list [服务名]
单独开启某一服务的命令 : chkconfig [服务名] on
单独关闭某一服务的命令: chkconfig [服务名] off
查看某一服务的状态: /etc/intd.d/[服务名] status
启用服务就是在当前"runlevel"的配置文件目录 /etc/systemd/system/multi-user.target.wants 里,建立 /usr/lib/systemd/system 里面对应服务配置文件的软链接;禁用服务就是删除此软链接,添加服务就是添加软连接.
su 用户名称 (切换用户,只能获得用户的执行权限,不能获得环境变量)
su - 用户名称 (切换到用户并获得该用户的环境变量及执行权限)
echo $PATH 打印环境变量
设置普通用户具有root权限
或者配置成采用sudo命令时,不需要输入密码
修改完毕,现在可以用hxr 帐号登录,然后用命令 sudo ,即可获得root权限进行操作.
以azkaban用户执行引号中的命令
gpasswd -d [username] [groupname] 将用户从组中删除
gpasswd -a [username] [groupname] 将用户加入到组中
用户组的管理涉及用户组的添加、删除和修改.组的增加、删除和修改实际上就是对 /etc/group文件的更新.
0首位表示类型 - 代表文件 d 代表目录 l 链接文档(link file)
三种特殊权限suid、sgid、sticky
例子:
变更文件权限方式一
例:chmod u-x,o+x houge.txt
变更文件权限方式二
umask计算
上面就是一个umask的正常计算过程,但是这样实在是太麻烦了.我们使用如下的简单的方法快速计算.
上面的这个方法计算是非常方便的, 为何得到奇数要+1呢?
umask修改
如果想单独修改某个文件夹的新建文件的权限,可以使用setfacl命令.
例:递归改变文件所有者和所有组 chown -R hxr:hxr /mnt
①.、-f,
--file
F
tar
cf
a.tar
/opt(tar
-cf
/opt)
xf
a.tar(tar
-xf
a.tar)
当与-c选项一起使用时,创建的tar文件使用该选项的指定的文件名;
当与-x选项一起使用时,则解包该选项指定的归档.
标准的重启命令是:reboot,这将提示主机自动关闭,然后再重新打开.然而,如果想关掉设备,那么-p便是进行开关工作:reboot –p.
另一种选择是强制重启.如果应用程序或服务正在挂起,而需要快速重启,-f命令将非常有用:reboot –f,这将强制重新启动主机.
紧急选项:REISUB
当系统运行正常时,可以使用上面的所有命令.但是在崩溃或者正在挂起的状态,上面的命令可能就不适用了,这时候就键盘组合操作.
在Linux系统中,键盘组合为Alt + Print Screen + B以重新启动. 但是如果这不起作用,或者存在更复杂的问题,则可以使用最多六个键来更改组合,就是REISUB,是取以下词语的缩略语:
unraw -显示控制键盘.
terminate - 将终止信号SIGTERM发送到所有进程,以便正常终止.
kill - 如上所述,但SIGKILL信号强制立即终止进程.
Sync - 将数据刷新到磁盘.
Unmount- 这会将所有文件系统重新装入只读状态.
reboot - 按照期望的那样.
要使其起作用,应按下Alt + Print Screen,然后按顺序按下R E I S U B键. 在每个按键之间留一两秒. 请注意,此方法通常不适用于具有ARM体系结构的.
现在大家已经了解了如何取消关机或重启命令.然而当进程正在运行时,很容易启动shutdown命令,尤其是在远程主机上.解决这个问题的方法是安装molly-guard,它可以通过检查某些参数来覆盖关机.<
具体例如,有一个脚本检查SSH会话,如果发送重新启动、停止、关机或关机命令,molly-guard将要求要关闭的主机的名称.当molly-guard在后台运行时,它将检测poweroff之类的命令,并报告已检测到SSH会话. 然后用户可以选择输入主机名以确认关闭,或者按Ctrl + C取消.
以上就是土嘎嘎小编为大家整理的linux中-f命令相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!