第二周博客之小白懵了

2019.3.18 severus.va

软链接
ln -s
创建软链接ls -s f2 f2_link

软链接和原始链接不是同一个文件,但是原文件删除后所有软链接皆失效,但是如果有新的文件文件名与软链接指向名相同就会被顶替。
软链接可以跨分区创建,文件路径决定软链接文件大小。
软链接连接数增加不会影响原文件连接数。
软链接可以对文件夹(目录)进行创建。

  • 软链接时相对路径一定要相对于软链接而非工作目录

软、硬链接定义
硬链接:一个文件多个名字
软链接:一个文件对应的快捷方式

软、硬链接区别:
硬链接会增长连接数,软链接不会
硬链接不支持跨分区,软链接支持
硬链接对目录创建,软链接支持
原始文件和链接文件的关系:
硬链接:原始文件与链接文件无差异
软链接:软链接文件依赖于原始文件
删除原文件:
硬链接:硬链接不受任何影响
软链接:软链接皆失效,但是如果有新的仅同名文件会被新的同名文件顶替

  • readlink + 软链接 可以直接看软链接原始文件路径

软链接生产中经常用作软件升级、调试

mv和inode
• 在同一个文件系统内进行mv相当于换个文件名,inode表不会有任何改动,磁盘上的位置也没有任何法改动
• 如果mv目标和源不在同一个文件系统,相当于先cp到源然后再rm

标准I/O和管道
程序:指令+数据

  • 三种I/O设备
    标准输入(STDIN) - 0 默认接受来自键盘的输入
    标准输出(STDOUT) - 1 默认输出到终端窗口
    标准错误(STDERR) - 2 默认输出到终端窗口
  • I/O重定向:改变默认位置
    支持的操作符号包括:
    > 把标准输出重定向到文件
    2> 把标准错误重定向到文件
    &> 把所有输出重定向到文件
    符号 > 文件内容会被覆盖
    set -C 禁止将内容覆盖已有文件内,但可以追加
    >|file 强制覆盖
    set +C 允许覆盖
    符号 >> 原有内容基础上追加内容

pts/1 将内容重定向到 pts/2

[root@CentOS7 ~]# tty
/dev/pts/1
[root@CentOS7 ~]# tty
/dev/pts/2
[root@CentOS7 ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos
[root@CentOS7 ~]# ls > /dev/pts/2
[root@CentOS7 ~]# 
[root@CentOS7 ~]# tty
/dev/pts/2
[root@CentOS7 ~]# anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos

符号 >> 可以将标准输出追加到文件内而不是覆盖

[root@CentOS7 data]# hostname > va.txt
[root@CentOS7 data]# cat va.txt
CentOS7
[root@CentOS7 data]# uname -r >> va.txt
[root@CentOS7 data]# cat va.txt
CentOS7
3.10.0-957.el7.x86_64

具有标准输出/标准错误的cmd > 文件

  • 标准输出cmd > 文件
  • > FILE 此命令将会清空文件
  • cmd > /dev/null /dev/null 相当于垃圾桶
  • cat /dev/null > FILE 与清空文件相同,但是这条比较通用
  • >> 空文件 可以创建空文件,且比> 空文件更安全些
  • 标准错误cmd 2> 文件
  • 执行命令时既有标准输出也有标准错误
[root@CentOS7 data]# ls /rrr /boot
ls: cannot access /rrr: No such file or directory
/boot:
config-3.10.0-957.el7.x86_64
efi
grub
grub2
initramfs-0-rescue-d4dfbc62a3aa42a88abe0d0e43d8b817.img
initramfs-3.10.0-957.el7.x86_64.img
symvers-3.10.0-957.el7.x86_64.gz
System.map-3.10.0-957.el7.x86_64
vmlinuz-0-rescue-d4dfbc62a3aa42a88abe0d0e43d8b817
vmlinuz-3.10.0-957.el7.x86_64
[root@CentOS7 data]# ls /rrr /boot > va.txt 2> vv.txt
[root@CentOS7 data]# cat va.txt
/boot:
config-3.10.0-957.el7.x86_64
efi
grub
grub2
initramfs-0-rescue-d4dfbc62a3aa42a88abe0d0e43d8b817.img
initramfs-3.10.0-957.el7.x86_64.img
symvers-3.10.0-957.el7.x86_64.gz
System.map-3.10.0-957.el7.x86_64
vmlinuz-0-rescue-d4dfbc62a3aa42a88abe0d0e43d8b817
vmlinuz-3.10.0-957.el7.x86_64
[root@CentOS7 data]# cat vv.txt
ls: cannot access /rrr: No such file or directory

  • &> 该cmd将标准输出和标准错误归到一个文件内
[root@CentOS7 data]# ls /rrr /boot &> vz.txt
[root@CentOS7 data]# cat vz.txt
ls: cannot access /rrr: No such file or directory
/boot:
config-3.10.0-957.el7.x86_64
efi
grub
grub2
initramfs-0-rescue-d4dfbc62a3aa42a88abe0d0e43d8b817.img
initramfs-3.10.0-957.el7.x86_64.img
symvers-3.10.0-957.el7.x86_64.gz
System.map-3.10.0-957.el7.x86_64
vmlinuz-0-rescue-d4dfbc62a3aa42a88abe0d0e43d8b817
vmlinuz-3.10.0-957.el7.x86_64

以下四个选项哪个结果不同:

  1. cmd &> file
  2. cmd > file 2>&1
  3. cmd 2>&1 >file xxx 顺序不同
  4. cmd 2>file 1>&2

  • 也可以用(cmd;cmd;cmd)来同时执行输出多个命令
[root@CentOS7 data]# hostname
CentOS7
[root@CentOS7 data]# uname -r
3.10.0-957.el7.x86_64
[root@CentOS7 data]# (hostname;uname -r) > vb.txt
[root@CentOS7 data]# cat vb.txt
CentOS7
3.10.0-957.el7.x86_64

打开的文件都有一个fd:filedescriport(文件描述符)

tail -d FILE 持续打开不关闭文件
查看/var/log/massages的fd(文件描述符)

[root@CentOS7 ~]# tail -f /var/log/messages
Mar 12 16:49:08 CentOS7 systemd: Unit iscsi.service cannot be reloaded because it is inactive.
Mar 12 16:49:17 CentOS7 dbus[6181]: [system] Failed to activate service 'org.bluez': timed out
Mar 12 16:49:17 CentOS7 pulseaudio: GetManagedObjects() failed: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Mar 12 16:50:01 CentOS7 systemd: Started Session 2 of user root.
Mar 12 16:50:15 CentOS7 systemd-logind: New session 3 of user root.
Mar 12 16:50:15 CentOS7 systemd: Started Session 3 of user root.
Mar 12 16:51:15 CentOS7 systemd: Started Session 4 of user root.
Mar 12 16:51:15 CentOS7 systemd-logind: New session 4 of user root.
Mar 12 16:54:13 CentOS7 journal: JS WARNING: [resource:///org/gnome/shell/ui/popupMenu.js 717]: reference to undefined property "_delegate"
Mar 12 16:54:23 CentOS7 journal: g_simple_action_set_enabled: assertion 'G_IS_SIMPLE_ACTION (simple)' failed
[root@CentOS7 ~
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值