命令分为两类
操作对象
注意:
查看bash内部命令帮助
[root@server ~]# help cd
命令 --help
[root@server ~]# cat ——help 示例如下:cat [OPTION]... [FILE]... 表明cat后面可以加上多个可选的选项以及多个可选的文件参数
man
[root@server ~]# cat /etc/NetworkManager/system-connections/ens160.nmconnection [root@server ~]# cat /etc/redhat-release [root@server ~]# uname -r
按键作用空格键,PaGe down向下翻一页PaGe up,b向上翻一页home直接前往首页end直接前往尾页/从上至下搜索某个关键词,如“/linux”?从下至上搜索某个关键词,如“?linux”n定位到下一个搜索到的关键词N定位到上一个搜索到的关键词q退出帮助文档
[root@server info]# info info
- 内置命令:由shell程序自带的命令
- 外部命令:有独立的可执行程序文件,文件名即命令名
-
参数
- 指定命令的运行特性,指明要运行命令中的哪一个功能代码。
- 短选项:例如:-l,-d,如果同一命令同时使用多个短选项,多数可合并。【注:有些命令的选项没有-】
- 长选项:例如--help,--human-readable
- 作用:命令的作用对象,即命令对什么生效。
- 有些命令可同时带多个操作对象,多个操作对象之间以空白字符分隔
- 终止当前的命令:按【Ctrl+C】键可中断正在执行的命令
- 两种补全:
- 补全命令:输入命令关键字的前几个字符后,按Tab键,可实现命令自动补全
- 补全文件名和目录名:输入文件的前几个字符后,按tab键可自动补全
- 例:访问网卡配置文件
-
nfo page
- info与man的用途其实差不多,都是用来查询命令的用法或者是文件的格式。
- 但是与man page不同的是,info page则是将文件数据拆成一个一个的段落,每个段落用自己的页面来撰写, 并且在各个页面中还有类似网页的『超链接』来跳到各不同的页面中,每个独立的页面也被称为一个节点(node)。
- 不过你要查询的目标数据的说明文件必须要以info的格式来写成才能够使用info的特殊功能(例如超链接)。 而这个支持info命令的文件默认是放置在/usr/share/info/这个目录当中的。
作用:
date命令用于显示或设置系统的时间与日期
格式
date -参数 +显示日期时间格式参数
常见参数:
- 用户只需在强大的date命令后输入以 号开头的格式参数,即可按照指定格式来输出系统的时间或日期,这样在日常工作时便可以把备份数据的命令与指定格式输出的时间结合到一起。例如,把打包后的文件自动按照“年-月-日”的格式打包成“backup-2020-9-1.tar.gz”,用户只需要看一眼文件名称就能大概了解到每个文件的备份时间了。
查看系统时间与时区:
[root@server ~]# timedatectl status Local time: 一 2023-02-20 16:43:52 CST Universal time: 一 2023-02-20 08:43:52 UTC RTC time: 一 2023-02-20 08:43:52 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: yes NTP service: active RTC in local TZ: no
设置时区
如果您查到的时区不是上海(Asia/Shanghai),可以手动进行设置:
[root@server ~]# timedatectl set-timezone Asia/Shanghai
[root@server ~]# timedatectl set-ntp no # 先关闭ntp时间同步 [root@server ~]# timedatectl set-time 2021-05-18
[root@server ~]# timedatectl set-time 9:30 [root@server ~]# date Tue May 18 09:30:01 CST 2021 [root@server ~]# timedatectl set-ntp yes
[root@server ~]# cal 05 2023 [root@server ~]# cal 2023
作用
格式
ls -参数 操作对象
参数
[root@server ~]# ls / [root@server ~]# ls -dl /root
- 如果时间还是不正确,我们可以手动的修改系统日期:
- 而如果想修改时间的话,也很简单:
- 格式:cal 月份 年份
- 查看目录下的内容
[root@localhost ~]# ll /usr/bin/ls -rwxr-xr-x. 1 root root Apr 27 2020 /usr/bin/ls [root@localhost ~]# ll -d /home drwxr-xr-x. 3 root root 20 Apr 16 14:46 /home [root@localhost ~]# ll /dev/tty crw-rw-rw-. 1 root tty 5, 0 Jun 9 11:48 /dev/tty [root@localhost ~]# ll /dev/sr0 brw-rw----. 1 root cdrom 11, 0 Jun 9 11:48 /dev/sr0 [root@localhost ~]# ll /dev/nvme0n1 brw-rw----. 1 root disk 259, 0 Jun 9 11:48 /dev/nvme0n1 [root@localhost ~]# ll /usr/bin/yum lrwxrwxrwx. 1 root root 5 Aug 5 2020 /usr/bin/yum -> dnf-3
FHS
概念
filesystem hierarchy standard文件系统层级标准,定义了在类Unix系统中的目录结构和目录内容,即让用户了解到已安装软件通常放置于哪个目录下。
Linux目录结构的特点
工作目录
[root@localhost ~]# pwd /root [root@localhost ~]# cd / [root@localhost /]# pwd / # 回到当前用户的家(主)目录 [root@localhost /]# cd ~ [root@localhost ~]# pwd /root # 回到当前目录的上一级目录 [root@localhost ~]# cd .. # 切换到之前的目录 [root@localhost /]# cd - /root # 回到当前目录 [root@localhost ~]# cd .
查看方法
建立硬连接
ln -参数 源文件 目标连接文件
[root@server ~]# touch m1.txt [root@server ~]# stat m1.txt 文件:m1.txt 大小:0 块:0 IO 块:4096 普通空文件 设备:fd00h/64768d Inode: 硬链接:1 # 初始连接数为1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:2022-12-13 18:30:25. +0800 最近更改:2022-12-13 18:30:25. +0800 最近改动:2022-12-13 18:30:25. +0800 创建时间:2022-12-13 18:30:25. +0800 [root@server ~]# ln m1.txt m2.txt # 建立m2.txt指向m1.txt的硬连接 [root@server ~]# stat m1.txt 文件:m1.txt 大小:0 块:0 IO 块:4096 普通空文件 设备:fd00h/64768d Inode: 硬链接:2 # 连接数加1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:2022-12-13 18:30:25. +0800 最近更改:2022-12-13 18:30:25. +0800 最近改动:2022-12-13 18:31:22. +0800 创建时间:2022-12-13 18:30:25. +0800
注意
[root@server ~]# echo "hello" > k1.txt [root@server ~]# cat k1.txt hello [root@server ~]# stat k1.txt 文件:k1.txt 大小:6 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode: 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 [root@server ~]# ln k1.txt k2.txt # 建立硬连接 [root@server ~]# cat k2.txt hello [root@server ~]# stat k1.txt 文件:k1.txt 大小:6 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode: 硬链接:2 # 硬连接数变更 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 [root@server ~]# rm -f k1.txt # 删除文件,相当于删除一个硬连接 [root@server ~]# cat k2.txt hello [root@server ~]# stat k2.txt 文件:k2.txt 大小:6 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode: 硬链接:1 # 硬连接变更 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0
[root@server ~]# mkdir n1 [root@server ~]# ln n1 n2 ln: n1: 不允许将硬链接指向目录
[root@server ~]# cd n1 [root@server n1]# ls -a . .. [root@server4 n1]# stat . # 查看. 的硬连接,即当前目录的硬连接 文件:. 大小:6 块:0 IO 块:4096 目录 设备:fd00h/64768d Inode: 硬链接:2 权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 [root@server n1]# stat .. # 查看.. 的硬连接,即上一级目录的硬连接 文件:.. 大小:4096 块:8 IO 块:4096 目录 设备:fd00h/64768d Inode: 硬链接:22 权限:(0550/dr-xr-x---) Uid:( 0/ root) Gid:( 0/ root) 环境:system_u:object_r:admin_home_t:s0
软连接
原理:
格式
ln -s 源文件 目标连接名
例1:
[root@server ~]# echo "china" > h1.txt # 新建文件 [root@server ~]# ln -s h1.txt h2.txt # 创建软连接,指向h2.txt [root@server ~]# ll h2.txt lrwxrwxrwx. 1 root root 6 12月 13 18:52 h2.txt -> h1.txt # 查看连接关系 [root@server ~]# stat h1.txt 文件:h1.txt 大小:6 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode: 硬链接:1 # 硬连接还是1,没有变化 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0
例2:建立网卡配置文件的软连接
[root@server ~]# ln -s /etc/NetworkManager/system-connections/ens160.nmconnection /root/nic [root@node4 ~]# ll /root/nic lrwxrwxrwx. 1 root root 43 12月 13 18:56 /root/nic -> /etc/sysconfig/network-scripts/ifcfg-ens160 [root@server ~]# cat nic
注意
[root@server ~]# echo "china" > d1.txt [root@server ~]# ln -s d1.txt d2.txt [root@server ~]# ll d2.txt lrwxrwxrwx. 1 root root 6 12月 13 19:00 d2.txt -> d1.txt [root@server ~]# cat d2.txt china [root@server ~]# rm -f d1.txt [root@server ~]# cat d2.txt # 连接失效 cat: d2.txt: 没有那个文件或目录
软硬连接的区别
[root@server ~]# echo "hello" > s1 [root@server ~]# ln s1 s2 # 建立硬连接 [root@server ~]# stat s1 文件:s1 大小:6 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode: 硬链接:2 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) [root@server ~]# stat s2 文件:s2 大小:6 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode: 硬链接:2 # s1 s2 indoe号相同: 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) [root@server ~]# ln -s s1 s3 [root@server ~]# stat s3 文件:s3 -> s1 大小:2 块:0 IO 块:4096 符号链接 设备:fd00h/64768d Inode: 硬链接:1 # 软连接s3 inode:不同
创建目录(make directory)
格式:
mkdir [-p] [/路径/]目录名
参数
例:
[root@server ~]# mkdir t1 [root@server ~]# mkdir t2 t3 t4 # 批量一次性新建 [root@server ~]# mkdir -p n1/n2/n3 # 新建递归目录
du命令
创建普通文件
touch用法1:
[root@server ~]# stat /etc/hostname File: /etc/hostname Size: 22 Blocks: 8 IO Block: 4096 regular file Device: 10302h/66306d Inode: Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:hostname_etc_t:s0 Access: 2022-06-09 11:19:35. +0800 Modify: 2022-04-16 14:46:36. +0800 Change: 2022-04-16 14:46:36. +0800 [root@server ~]# stat /etc/hostname 文件:/etc/hostname 大小:7 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode: 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 最近访问:2023-04-23 10:01:42. +0800 最近更改:2023-03-22 11:20:57.0 +0800 最近改动:2023-03-22 11:20:57.0 +0800 创建时间:2023-03-22 11:20:57.0 +0800 # 分析 # atime,即access time,访问文件的时间,查看了一下文件内容(cat),文件的atime时间会更新 # mtime,即modify time,修改内容的时间,文件内容被改变了,ctime会更新 # ctime,即change time,修改文件元数据的时间
[root@server ~]# touch /etc/hostname [root@server ~]# date 2023年 04月 24日 星期一 09:37:38 CST [root@server ~]# stat /etc/hostname 文件:/etc/hostname 大小:7 块:8 IO 块:4096 普通文件 设备:fd00h/64768d Inode: 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 最近访问:2023-04-24 09:37:36. +0800 最近更改:2023-04-24 09:37:36. +0800 最近改动:2023-04-24 09:37:36. +0800 创建时间:2023-03-22 11:20:57.0 +0800
touch用法2
touch 文件名1 文件名2 文件名3 touch {文件名1,文件名2,文件名3}
[root@server ~]# touch p1.txt [root@server ~]# touch p2.txt p3.txt p4.txt [root@server ~]# touch {p5,p6,p7}.txt [root@server ~]# touch {1,2}{3,4} [root@server ~]# touch abc{1..100}
示例
- 使用树形目录结构来组织和管理文件。
- 整个系统只有一个根目录(树根),Linux的根目录用“/”表示
- 其他所有分区以及外部设备(如硬盘、光驱等)都是以根目录为起点,挂接在目录树的某个目录中的,通过访问挂载点目录,即可实现对这些分区的访问。
- 结构图:
-
路径以及工作目录
路径
- 用“路径”来表示某个文件(或目录)在目录结构中所处的位置。顾名思义,路径是指从树型目录中的某个目录层次到达某一文件或子目录的一条线路,路径由以“/”为分隔符的多个目录名构成。
- 路径可分为:
- 绝对路径:是指以根目录“/”为起点来表示系统中某个文件(或目录)的位置的方式
- 相对路径:是以当前目录为起点,表示系统中某个文件或目录在目录结构中的位置的方式。
- 用户当前所处的位置,使用命令查看
- 更改当前的工作目录,即切换目录:
-
硬连接
原理:
- linux系统允许多个文件指向同一个inode,即允许一个文件拥有多个有效地路径名
- 理解:硬连接就是指向原始文件inode的指针
- ll 文件名
- stat 文件名
- 格式:
- 例1:
- 硬连接建立后,删除其中的一个后数据依然可以访问,只有硬连接为0时,数据旧无法访问了
- 硬连接不能给目录建立
- 目录自带2个硬连接,即目录中的 . .. ,表示当前目录和上一级目录
- 不可以在不同的文件系统内建立硬连接,由于inode是当前文件在本文件系统的索引值即只能在本分区使用,应以硬连接不能跨越文件系统
- 软连接是一种符号连接,类似于windows的“快捷方式”,仅包含所连接的路径名
- 软连接只是一种指向关系,删除源文件则数据不可访问
- 可以通过ll命令查看软连接实际执行文件及位置
- 更改软连接方法:ln -snf 新文件名 软连接名
- 删除软连接,只是删除指向关系,源数据依然可以访问
- 硬连接中源文件与连接文件公用一个inode号,是同一个文件,软连接中源文件与连接文件拥有不同inode号,是2个不同的文件
- 软连接的指向关系可以查看,硬连接不可以查看
- 连接数不同,软连接数不会增加
- 文件大小不同,硬连接文件大小与源文件一样
- 软连接不受任何文件系统的影响,任何用户都可以创建指向目录的软连接
- -p 可快速创建出目录结构中指定的每个目录,对于已存在的目录不会被覆盖
- -v 显示创建目录的详细过程
- 作用:统计目录及文件的空间占用情况,查看某个目录中的各级子目录所占用的磁盘空间数。
- 命令格式: du 参数
- 参数:
- 如果文件已存在,更新文件的三个时间,可以查看文件的详细信息
- 如果文件不存在,则表示创建文件
- 格式:
- 例1:
- tree命令
- 作用:显示目录下文件的树形拓扑图及摘要
- 格式:
-
tree -参数 路径
- 参数
-
-a : 所有文件包含显示隐藏文件 -f : 列出文件的完整路径内容 -d :只显示目录 -L : 设置显示最大深度,如:tree -f -L 2
- 按照下面的结构新建文件及目录
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/48119.html