软连接与硬连接

  • 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的更多相关文章

随机推荐

  1. Android Studio用上国产杰出代表夜神模拟器

    背景介绍 在Windows上除了官方的AVD(Android Virtual Device)我们还可以使用更加便捷的国产安卓模拟器,比如杰出的代表就是夜神模拟器. 我们现在是假设你已经安装好了Andr ...

  2. 42、mysql数据库(函数)

    1.mysql中提供的内置函数: (1)数学函数: 1)ROUND(x,y): 返回参数x的四舍五入的有y位小数的值.x不可转换时返回0,x为null时返回null. 2)RAND(): 返回0到1内 ...

  3. Docker搭建EFK日志收集系统,并自定义es索引名

    EFK架构图 一.EFK简介 EFK不是一个软件,而是一套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用,是目前主流的一种日志系统. EFK是三个开源软件的缩写,分 ...

  4. 资源:Kafka消息队列下载路径

    Kafka下载路径 http://kafka.apache.org/downloads.html

  5. STM32学习进程

    新建一个自己的工程模板,以我所用的MDK4为例 MDK4软件图标 (1)新建一个自己储存数据的文件夹.以我自己为例(文件夹名字任取自己记住熟悉就行,以下将以我的文件夹文件进行操作讲解) 新建的总体文件 ...

  6. FTP传输

    FTP传输                    一.FTP服务–用来传输文件的协议                    二.设置匿名用户访问的FTP服务(最大权限)                 ...

  7. 个人博客开发之blog-api 项目全局日志拦截记录

    前言 大型完善项目中肯定是需要一个全局日志拦截,记录每次接口访问相关信息,包括: 访问ip,访问设备,请求参数,响应结果,响应时间,开始请求时间,访问接口描述,访问的用户,接口地址,请求类型,便于项目 ...

  8. C语言:位域详解

    有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可.例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位.正是基于这种考虑,C语言又提供了一种叫做位域 ...

  9. 微信小程序云开发-云存储的应用-识别银行卡

    一.准备工作 1.创建云函数identify.自定义action=="2"的时候识别银行卡信息. 2.云函数identify中index.js代码 1 const cloud = ...

  10. Java 将Word转为XML,XML转为Word的方法

    本文介绍将Word和XML文档进行双向互转的方法.转换时,Word支持.docx/.doc等格式. 代码环境如下: Word测试文档:.docx或.doc 编译环境:IntelliJ IDEA JDK ...