RHCSA_DAY04
软连接与硬连接
- Linux中的链接文件类似于windows中的快捷方式
- 软连接特点:软连接可以跨分区,可以对目录进行链接,源文件删除后,链接文件不可用
- 软连接命令格式:ln -s 源文件路径 目标路径
- 注意:创建链接时一定要写目录或文件的绝对路径,哪怕是在当前路径下,也要写绝对路径·
[root@localhost ~]# touch hello.soft
[root@localhost ~]# ls
#创建软连接(必须要绝对路径创建)
[root@localhost ~]# ln -s /root/hello.soft /opt
[root@localhost ~]# ls /opt
#查看连接文件详细属性
[root@localhost ~]# ls -l /opt/hello.soft
lrwxrwxrwx. 1 root root 16 3月 21 14:28 /opt/hello.soft -> /root/hello.soft
#提示:链接文件的权限最终取决于源文件的权限
#普通用户验证
[lisi@localhost ~]$ ls /opt
hello.soft
[lisi@localhost ~]$ ls -l /opt/hello.soft
lrwxrwxrwx. 1 root root 16 3月 21 14:28 /opt/hello.soft -> /root/hello.soft
[lisi@localhost ~]$ cat /opt/hello.soft
cat: /opt/hello.soft: 权限不够
#提示:由于源文件存放于/root目录下,而普通用户对/root目录没有任何权限,所以普通用户无法查看
#删除源文件
[root@localhost ~]# rm -f /root/hello.soft
[root@localhost ~]# ls
#山粗源文件后,软链接文件不可用
[root@localhost ~]# ls -l /opt/hello.soft
lrwxrwxrwx. 1 root root 16 3月 21 14:28 /opt/hello.soft -> /root/hello.soft
#创建文件并创建软连接
[root@localhost ~]# touch hello.soft
[root@localhost ~]# ln -s /root/hello.soft /opt
[root@localhost ~]# ls -l /opt/hello.soft
lrwxrwxrwx. 1 root root 16 3月 21 14:39 /opt/hello.soft -> /root/hello.soft
#删除链接文件后,源文件仍然可用
[root@localhost ~]# rm -f /opt/hello.soft
[root@localhost ~]# ls
[root@localhost ~]# cat hello.soft
#对目录创建软连接
[root@localhost ~]# ln -s /root/test1 /opt/
[root@localhost ~]# ls -ld /opt/test1
lrwxrwxrwx. 1 root root 11 3月 21 14:44 /opt/test1 -> /root/test1
3创建链接时一定要写目录或文件的绝对路径,哪怕是在当前路径下,也要写绝对路径
[root@localhost ~]# ln -s hello.soft /opt
[root@localhost ~]# ls /opt
hello.soft test1
[root@localhost ~]# ls -l /opt/hello.soft
lrwxrwxrwx. 1 root root 10 3月 21 14:47 /opt/hello.soft -> hello.soft
- 硬链接特点:硬连接不可以跨分区,不可以对目录进行链接,源文件删除后,链接文件仍然可用
- 硬连接命令格式:ln 源文件路径 目标路径
#创建文件,并创建硬连接
[root@localhost ~]# touch hello.hard
[root@localhost ~]# ln /root/hello.hard /opt/
[root@localhost ~]# ls /opt
hello.hard hello.soft test1
#向硬连接的源文件写入内容
root@localhost ~]# echo 123 > /root/hello.hard
#查看源文件内容
[root@localhost ~]# cat /root/hello.hard
123
#查看链接文件内容,以同步更新
[root@localhost ~]# cat /opt/hello.hard
123
#向链接文件写入内容,查看源文件以同步更新
[root@localhost ~]# echo xx >> /opt/hello.hard
#擦看源文件,以同步更新
[root@localhost ~]# cat /root/hello.hard
123
xx
#硬连接文件的特点可以保持文件属性不发生改变
[root@localhost ~]# ls -l /root/hello.hard
-rw-r--r--. 2 root root 7 3月 21 14:55 /root/hello.hard
[root@localhost ~]# ls -l /opt/hello.hard
-rw-r--r--. 2 root root 7 3月 21 14:55 /opt/hello.hard
#并且硬连接文件的i节点号相同
[root@localhost ~]# ls -i /root/hello.hard
33711090 /root/hello.hard
[root@localhost ~]# ls -i /opt/hello.hard
33711090 /opt/hello.hard
#硬连接不允许对目录进行连接
root@localhost ~]# ln /root/test1 /opt
ln: "/root/test1": 不允许将硬链接指向目录
#硬连接源文件删除后,链接文件仍然可用
[root@localhost ~]# rm -f /root/hello.hard
[root@localhost ~]# cat /opt/hello.hard
123
xx
#向硬连接文件写入内容
[root@localhost ~]# echo abc >> /opt/hello.hard
[root@localhost ~]# cat /opt/hello.hard
123
xx
abc
#硬连接不允许跨分区
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.3G 0 rom
[root@localhost ~]# ln /root/hello.soft /boot
ln: 无法创建硬链接"/boot/hello.soft" => "/root/hello.soft": 无效的跨设备连接
内部命令与外部命令
- 什么是命令:用来实现某一种功能的指令或程序
- 命令的执行依赖于解释器(例如:/bin/bash),/etc/shells文件存放系统可用的shell
- 用户——解释器(shell外壳)——内核
- [root@localhost~]# shell 终端 交互接口 用户接口
#搜索命令所在的绝对路径
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
root@localhost ~]# ls /usr/bin/ls
/usr/bin/ls
#直接运行程序文件
[root@localhost ~]# /usr/bin/ls
[root@localhost ~]# /usr/bin/ls /opt
hello.hard hello.soft t1 test1 test.txt
[root@localhost ~]# which cat
[root@localhost ~]# ls /usr/bin/cat
/usr/bin/cat
[root@localhost ~]# which pwd
/usr/bin/pwd
Linux命令的分类
- 内部命令:shell程序自带的基本管理命令
- 外部命令:有独立的外部可执行程序文件命令
- type 用于区别内部命令与外部命令
- which 用于查找可以执行程序文件位置
[root@localhost opt]# type ls
[root@localhost opt]# type cat
[root@localhost opt]# type hash
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# hash
命中 命令
1 /usr/bin/cat
1 /usr/bin/ls
[root@localhost opt]# hash -r
[root@localhost opt]#
[root@localhost opt]# hash
hash: 哈希表为空
[root@localhost opt]# ls
hello.hard hello.soft t1 test1 test.txt
[root@localhost opt]# hash
命中 命令
1 /usr/sbin/ls
- 总结:
- shell程序是用户和系统之间的接口,用于解释用户的命令
- 查找命令对应的程序文件所在位置:which 命令
- shell程序大多数存放在/etc/shells文件中
- 系统默认使用的shell为/bin/bash
- 查看当前使用的shell:echo $SHELL
- 区别内部命令与外部命令的方式:typt 命令
- shell程序查找可执行程序文件路径定义在$PATH环境变量中
- shell查找的外部命令路径结果会记录到缓存的hash表中
help 命令帮助手册
- help命令用于查看shell内部命令的帮助信息,包括使用方法、选项等…
- 命令格式:help [选项] 命令
#获取内部命令帮助信息
[root@localhost etc]# help cd
#help无法获取外部命令的帮助信息
root@localhost etc]# help ls
bash: help: 没有与 `ls' 匹配的帮助主题。尝试 `help help' 或者 `man -k ls' 或者 `info ls'。
[root@localhost etc]# type help
help 是 shell 内嵌
#获取help命令本身的帮助信息
[root@localhost etc]# help help
[root@localhost etc]# type cat
cat 是 /usr/bin/cat
[root@localhost etc]# help cat
bash: help: 没有与 `cat' 匹配的帮助主题。尝试 `help help' 或者 `man -k cat' 或者 `info cat'。
#查看命令帮助手册(命令自带)
[root@localhost etc]# cat --help
[root@localhost etc]# ls --help
man 获取命令帮助手册
- man 命令用于查看系统命令的帮助信息,包括使用方法、选项、使用例子等…,对比--help ,mna 输出的信息更加详细
- 命令格式:man [-选项] 命令
- 常用快捷操作
- 向下键向下移一行
- 向上键向上移一行
- [Page Down] 向下翻一页
- [Page Up] 向上翻一页
- /关键字 #搜索关键字,配合n(向下查询)、N(向上查询)
- q 退出
[root@localhost etc]# man ls
[root@localhost etc]# man cat
[root@localhost etc]# man touch
[root@localhost etc]# man mkdir
[root@localhost etc]# info ls
Google/百度(Google,算法)
Linux系统的运行级别
Linux系统运行级别:linux系统有7个运行级别,不同的运行级别运行的程序和功能都不一样,而Linux系统默认是运行在一个标准的级别上,系统运行级别文件/etc/inittab文件
运行级别 0:所有进程被终止,机器将有序的停止,关机时系统处于这个运行级别(关机)
运行级别 1:单用户模式,(root用户进行系统维护),系统里运行的所有服务也都不会启动
运行级别 2:多用户模式(网络文件系统NFS服务没有被启动)
运行级别 3:完全多用户模式,(有NFS网络文件系统)标准的运行级别
运行级别 4:系统未使用
运行级别 5:登录后,进入带GUI的图形化界面,标准的运行级别
运行级别 6:系统正常关闭并重启
runlevel: 查看当前系统运行级别
查看系统运行等级:[root@localhost ~]# systemctl get-default
graphical.target
[root@localhost ~]# systemctl set-default XXXX.target 更改系统运行级别
#查看当前系统运行级别
[root@localhost etc]# runlevel
N 5
#解释;当前系统处于的运行级别
#解释:N代表没有从任何级别跳转过来
#切换系统运行级别
[root@localhost ~]# init N
#查看运行级别文件内容
[root@localhost ~]# cat /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3 #运行级别3
# graphical.target: analogous to runlevel 5 #运行级别5
#
# To view current default target, run:
# systemctl get-default #查看当前系统默认的运行级别
#
# To set a default target, run:
# systemctl set-default TARGET.target #修改当前系统默认运行级别
#查看默认运行级别
[root@localhost ~]# systemctl get-default
graphical.target #默认运行级别为5
#修改默认运行级别为3
[root@localhost ~]# systemctl set-default multi-user.target
[root@localhost ~]# systemctl get-default
multi-user.target
#修改默认运行级别为5
[root@localhost ~]# systemctl set-default graphical.target
[root@localhost ~]# systemctl get-default
graphical.target
关机与重启
- linux下常用的关机命令有:shutdown、halt、poweroff、init
- init 0 关机
- halt #立刻关机
- poweroff #立刻关机 (记这个)
- shutdown –h now #立刻关机
- shutdown -h 10 #10分钟后自动关机
[root@localhost ~]# poweroff
- 重启命令:reboot shutdown
- reboot #立刻重启 (记这个)
- shutdown -r now #立刻重启
- shutdown -r 10 #过十分钟后重启
[root@localhost ~]# reboot
RHCSA_DAY04的更多相关文章
随机推荐
- 用python的matplotlib根据文件里面的数字画图像折线图
思路:用open打开文件,再用a=filename.readlines()提取每行的数据作为列表的值,然后传递列表给matplotlib并引入对应库画出图像 代码实现:import matplotli ...
- 12、Linux磁盘设备基础知识(2)
12.4.计算磁盘容量: 磁盘的大小=盘面大小*磁头数 盘面的大小=磁道大小*磁道数 磁道大小=512字节*扇区数 磁盘的大小=512字节*扇区数*磁道数*磁头数 磁盘的大小=柱面大小*柱面数 柱面大 ...
- 15、修改sqldeveloper的JDK路径
15.1.说明: 1.第一次使用Oracle SQL Developer时会提示选择JDK路径(只会在第一次使用时提示), 如果选择了高版本的JDK(1.8)路径,可能会出现了如下两种情况: (1)s ...
- 14、mysql主从复制实战
14. 1.服务器准备: 一台服务器,多实例,客户端编码是utf8,服务端编码是utf8; [root@backup 3308]#netstat -tunlp | grep 330 tcp 0 0 0 ...
- vue3,后台管理列表页面各组件之间的状态关系
技术栈 vite2 vue 3.0.5 vue-router 4.0.6 vue-data-state 0.1.1 element-plus 1.0.2-beta.39 前情回顾 表单控件 查询控件 ...
- C# datagridview 这是滚动条位置
1.datagridview 设置 表格内容铺满,内容自动换行 dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True; ...
- 『心善渊』Selenium3.0基础 — 26、unittest测试框架的断言
目录 1.断言介绍 2.常用的断言方法 3.断言示例 1.断言介绍 在执行测试用例的过程中,最终用例是否执行通过,是通过判断测试得到的实际结果和预期结果是否相等决定的,这时会用到断言方法. 本着没有消 ...
- QT. 学习之路 三
添加一个动作: Qt 使用QAction类作为动作.QAction包含了图标.菜单文字.快捷键.状态栏文字.浮动帮助等信息.当把一个QAction对象添加到程序中时,Qt 自己选择使用哪个属性来显示, ...
- python使用笔记008-模块
模块的原理: 1.就是一个python文件 2.标准模块是python自带的 3.第三方模块需要自己安装 导入模块的顺序: 1.从当前目录下找 2.从python的环境变量中找 一.自己定义的模块 1 ...
- Linux文件系统与日志分析
Linux文件系统与日志分析一.inode与block概述① 文件数据包括元信息(类似文件属性)与实际数据② 文件存储在硬盘上,硬盘最小存储单位是"扇区"(sector),每个扇区 ...