陈鑫
1.命令帮助
(1)help
例:su --help
ls --help
[root@cxbb /]# ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
[root@cxbb /]# ls --help
Usage: ls [OPTION]... [FILE]...
=格式是什么
List information about the FILEs (the current directory by default).
=这个命令是干什么的(ls 列出文件有哪些信息 )
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
=命令 ls 对应的选项有哪些
命令格式:su [options] [username] [ ]里面可以省略
(2)man manual (阅读后按 q 退出 )
ls
ls 列出显示目录文件中的数据文件
[root@cxbb ~]# ls
aaa aaa,k aaa.lnk anaconda-ks.cfg bbb initial-setup-ks.cfg
例:列出 / 目录的文件
法一:
[root@cxbb ~]# ls /
aaalnk boot etc lib media opt root sbin sys usr
bin dev home lib64 mnt proc run srv tmp var
法二:
[root@cxbb ~]# cd /
[root@cxbb /]# ls
aaalnk boot etc lib media opt root sbin sys usr
bin dev home lib64 mnt proc run srv tmp var
ls [options]... [FILENAME]...
选项 文件名 (多个文件名) 可以列出多个文件名
[root@cxbb /]# ls / /root
/:
aaalnk boot etc lib media opt root sbin sys usr
bin dev home lib64 mnt proc run srv tmp var
/root:
aaa aaa,k aaa.lnk anaconda-ks.cfg bbb initial-setup-ks.cfg
+
-l 以长格式显示文件信息(可以把文件属性列出显示)ls -l==ll(仅在Redhat 发行的版本可行)
-d 指定目录文件列出指定目录文件的信息
-h 可以对文件大小转换单位(文件数据大小比较大才会转换)
-a/-A 列出所有文件包含隐藏文件(可以显示当前目录 和 上一级目录)
-i 显示文件的inode节点号
+
-l 以长格式显示文件信息(可以把文件属性列出显示)ls -l==ll(仅在Redhat 发行的版本可行)
root@cxbb /]# ls
aaalnk boot etc lib media opt root sbin sys usr
bin dev home lib64 mnt proc run srv tmp var
[root@cxbb /]# ls -l
total 28
lrwxrwxrwx. 1 root root 3 Nov 22 04:56 aaalnk -> aaa
lrwxrwxrwx. 1 root root 7 Jun 21 2021 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Nov 20 02:20 boot
drwxr-xr-x. 20 root root 3200 Nov 22 16:58 dev
drwxr-xr-x. 145 root root 8192 Nov 22 17:02 etc
drwxr-xr-x. 3 root root 20 Nov 20 02:12 home
-d 指定目录文件列出指定目录文件的信息
[root@cxbb ~]# ls -d
. . =当前目录
[root@cxbb ~]# ls -dl
dr-xr-x---. 5 root root 4096 Nov 23 00:03 .
[root@cxbb ~]# ls -d -l
dr-xr-x---. 5 root root 4096 Nov 23 00:03 .
与不加 -d 的区别:
ls :列出文件夹的所有文件(数据文件)
ls -d :指定目录文件列出指定目录文件的信息
通俗一点相当于右击文件查看文件各个属性(名字而已)
ls -dl 或 ls -d -l 或 ll -d :~~~~~~~~~~~~~查看文件的具体属性内容是什么
例:查看 / 目录的属性
[root@cxbb ~]# ls -dl /
dr-xr-xr-x. 17 root root 238 Nov 22 04:56 /
查看 / 目录下所有文件的属性
[root@cxbb ~]# ls -l /
total 24
lrwxrwxrwx. 1 root root 3 Nov 22 04:56 aaalnk -> aaa
lrwxrwxrwx. 1 root root 7 Jun 21 2021 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Nov 20 02:20 boot
drwxr-xr-x. 20 root root 3200 Nov 22 16:58 dev
-h 可以对文件大小转换单位
[root@cxbb ~]# ls -l
total 12
-rw-r--r--. 2 root root 0 Nov 22 04:53 aaa
lrwxrwxrwx. 1 root root 3 Nov 22 04:55 aaa,k -> aaa
-rw-r--r--. 2 root root 0 Nov 22 04:53 aaa.lnk
-rw-------. 1 root root 1207 Nov 20 02:14 anaconda-ks.cfg
[root@cxbb ~]# ls -l -h
total 12K
-rw-r--r--. 2 root root 0 Nov 22 04:53 aaa
lrwxrwxrwx. 1 root root 3 Nov 22 04:55 aaa,k -> aaa
-rw-r--r--. 2 root root 0 Nov 22 04:53 aaa.lnk
-rw-------. 1 root root 1.2K Nov 20 02:14 anaconda-ks.cfg
-a/-A 列出所有文件包含隐藏文件(文件名前有点标记的)
(a 使当前目录和上一级目录)(A只显示正常文件和隐藏文件)
可以显示当前目录 和 上一级目录
[root@cxbb ~]# ls -l -a
total 40
dr-xr-x---. 5 root root 274 Nov 23 00:23 .
dr-xr-xr-x. 17 root root 238 Nov 22 04:56 ..
-rw-r--r--. 2 root root 0 Nov 22 04:53 aaa
lrwxrwxrwx. 1 root root 3 Nov 22 04:55 aaa,k -> aaa
-rw-r--r--. 2 root root 0 Nov 22 04:53 aaa.lnk
[root@cxbb ~]# ls -l
total 12
-rw-r--r--. 2 root root 0 Nov 22 04:53 aaa
lrwxrwxrwx. 1 root root 3 Nov 22 04:55 aaa,k -> aaa
-rw-r--r--. 2 root root 0 Nov 22 04:53 aaa.lnk
家目录和/目录 所有文件包含隐藏文件 是不一样的
[root@cxbb /]# ls -l -a
total 24
dr-xr-xr-x. 17 root root 238 Nov 22 04:56 .
dr-xr-xr-x. 17 root root 238 Nov 22 04:56 ..
lrwxrwxrwx. 1 root root 3 Nov 22 04:56 aaalnk -> aaa
lrwxrwxrwx. 1 root root 7 Jun 21 2021 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Nov 20 02:20 boot
drwxr-xr-x. 20 root root 3200 Nov 22 16:58 dev
drwxr-xr-x. 145 root root 8192 Nov 22 17:02 etc
drwxr-xr-x. 3 root root 20 Nov 20 02:12 home
lrwxrwxrwx. 1 root root 7 Jun 21 2021 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Jun 21 2021 lib64 -> usr/lib64
[root@cxbb ~]# ls -l -a = [root@cxbb /]# ls -l -a ~
total 40
dr-xr-x---. 5 root root 274 Nov 23 00:23 .
dr-xr-xr-x. 17 root root 238 Nov 22 04:56 ..
-rw-r--r--. 2 root root 0 Nov 22 04:53 aaa
lrwxrwxrwx. 1 root root 3 Nov 22 04:55 aaa,k -> aaa
-rw-r--r--. 2 root root 0 Nov 22 04:53 aaa.lnk
-rw-------. 1 root root 1207 Nov 20 02:14 anaconda-ks.cfg
-rw-------. 1 root root 813 Nov 23 00:19 .bash_history
-rw-r--r--. 1 root root 18 Aug 13 2018 .bash_logout
-rw-r--r--. 1 root root 176 Aug 13 2018 .bash_profile
-rw-r--r--. 1 root root 176 Aug 13 2018 .bashrc
-i 显示文件的inode节点号(不是通过文件名区分文件,而是通过节点号)
[root@localhost ~]# ll -i
total 12
35245034 -rw-r--r--. 2 root root 0 Nov 22 04:53 aaa
35245054 lrwxrwxrwx. 1 root root 3 Nov 22 04:55 aaa,k -> aaa
35245034 -rw-r--r--. 2 root root 0 Nov 22 04:53 aaa.lnk
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨
-rw-r--r--. 1 root root 1479 Nov 20 02:20 initial-setup-ks.cfg
linux一共有7种文件类型: - 普通文本文件(.txt) d 目录文件(文件夹)
l 软连接 (快捷方式) b块设备文件 c字符设备 p 管道文件
s socket 套件文件
第一列
第一个字符:标记文件类型
2-11字符: 文件的权限标识位 r w x
可读 可写 可执行
第二列
硬链接次数
第三列
所属用户
第四列
所属组
第五列
大小
第六-八列
创建时间、修改时间
第九列
文件名
软连接 : 单独的文本文件,链接文件的数据存储区记录的是原文件的路径
特点:通过当前路径能够更方便快速匹配到其他路径下的文件
应用:删除快捷方式对源文件没有影响,但是删除源文件则快捷方式不能使用
创建对象:可以对文本文件,目录文件创建,也可以跨文件系统创建
创建快捷方式:
ln [OPTION]... TARGET LINK_NAME
(快捷方式)
touch FILENAME 创建一个文本文件
mkdir DIRNAME 创建一个目录文件
rm FILENAME 删除文本文件
rm -r DIRNAME 删除目录文件 (无论是文本文件,还是目录文件都可以删除)
例:
ln [OPTION]... TARGET LINK_NAME
(目标对象)(快捷方式)
目标对象:原文件,现有的文件
touch FILENAME 创建一个文本文件
mkdir DIRNAME 创建一个目录文件
[root@localhost ~]# mkdir aaa
[root@localhost ~]# ll
total 12
drwxr-xr-x. 2 root root 6 Nov 23 22:18 aaa
-rw-r--r--. 1 root root 0 Nov 22 04:53 aaa.lnk
-rw-------. 1 root root 1207 Nov 20 02:14 anaconda-ks.cfg
-rw-r--r--. 1 root root 4 Nov 22 05:05 bbb
-rw-r--r--. 1 root root 1479 Nov 20 02:20 initial-setup-ks.cfg
[root@localhost ~]# touch bbb
[root@localhost ~]# ll
total 12
drwxr-xr-x. 2 root root 6 Nov 23 22:18 aaa
-rw-r--r--. 1 root root 0 Nov 22 04:53 aaa.lnk
-rw-------. 1 root root 1207 Nov 20 02:14 anaconda-ks.cfg
-rw-r--r--. 1 root root 4 Nov 23 22:19 bbb
-rw-r--r--. 1 root root 1479 Nov 20 02:20 initial-setup-ks.cfg
rm FILENAME 删除文本文件
rm -r DIRNAME 删除目录文件 (无论是文本文件,还是目录文件都可以删除)
[root@localhost ~]# ll
total 12
lrwxrwxrwx. 1 root root 3 Nov 22 04:55 aaa,k -> aaa
-rw-r--r--. 1 root root 0 Nov 22 04:53 aaa.lnk
-rw-------. 1 root root 1207 Nov 20 02:14 anaconda-ks.cfg
-rw-r--r--. 1 root root 4 Nov 22 05:05 bbb
-rw-r--r--. 1 root root 1479 Nov 20 02:20 initial-setup-ks.cfg
[root@localhost ~]# rm aaa,k
rm: remove symbolic link 'aaa,k'? y
[root@localhost ~]# ll
total 12
-rw-r--r--. 1 root root 0 Nov 22 04:53 aaa.lnk
-rw-------. 1 root root 1207 Nov 20 02:14 anaconda-ks.cfg
eg:
#touch /aaa
#ln -s /aaa /aaa.lnk 对/下的aaa文件创建一个快捷方式放在/目录下
注:当目标文件和链接文件(两个单独的文件)不在同一路径时必须通过绝对路径创建
[root@localhost /]# touch aaa
[root@localhost /]# ll
total 24
-rw-r--r--. 1 root root 0 Nov 23 23:08 aaa
[root@localhost /]# ln -s aaa aaa.lnk
(快捷方式文件名)(.lnk后缀可省略)
[root@localhost /]# ll
total 24
-rw-r--r--. 1 root root 0 Nov 23 23:08 aaa
lrwxrwxrwx. 1 root root 3 Nov 23 23:10 aaa.lnk -> aaa
[root@localhost ~]# mkdir /root/d1
[root@localhost ~]# ll /root
total 12
drwxr-xr-x. 2 root root 6 Nov 23 22:18 aaa
-rw-r--r--. 1 root root 0 Nov 22 04:53 aaa.lnk
-rw-------. 1 root root 1207 Nov 20 02:14 anaconda-ks.cfg
-rw-r--r--. 1 root root 4 Nov 23 22:19 bbb
drwxr-xr-x. 2 root root 6 Nov 24 02:02 d1
硬链接:多个文件名指向同一个inode节点号,对应的只是一个文件(只对于文本文件可以创建)
作用:防止误删除(将文件名进行备份)
应用:一个文件默认硬链接次数最小为1,彻底删除一个硬链接,需要确保硬链接次数为零。
linux目录文件硬链接次数默认为2. 原因除了目录文件自身名字,我们可以通过进行匹配
drwxr-xr-x. 2 root root 6 Nov 23 22:18 aaa
-rw-r--r--. 1 root root 0 Nov 22 04:53 aaa.lnk
linux目录文件硬链接次数默认为2.原因:
目录文件:
drwxr-xr-x. 2 root root 6 Nov 23 22:18 aaa
[root@localhost ~]# cd aaa/
[root@localhost aaa]# cd /root/aaa
[root@localhost aaa]# ll -d /root/aaa
drwxr-xr-x. 2 root root 6 Nov 23 22:18 /root/aaa
[root@localhost aaa]# ll -d .
drwxr-xr-x. 2 root root 6 Nov 23 22:18 .
创建对象:仅对文本文件可以创建,不支持跨文件系统
创建快捷方式:
touch FILENAME 创建一个文本文件
#ln /aaa /aaa.lnk 对/下的aaa文件创建一个快捷方式放在/目录下
如何区分软连接和硬链接
以 l 开头的是软连接,相当于快捷方式
以 - 开头的是硬链接
eg:
[root@localhost ~]# touch /root/file
[root@localhost ~]# ln -s /root/file /file.lnk
[root@localhost ~]# ll /
total 28
lrwxrwxrwx. 1 root root 10 Nov 24 20:18 file.lnk -> /root/file
[root@localhost ~]# ln /root/file /newfile
[root@localhost ~]# ll /
total 28
-rw-r--r--. 2 root root 0 Nov 24 20:16 newfile
补:命令输出前几个字母+tab:显示相关所有命令
cd (继day01)
[root@cxbb ~]# cd /root
[root@cxbb ~]# cd /home
[root@cxbb home]# cd /root
[root@cxbb ~]#
课后作业
eg :
在系统/root目录下创建file 文件
(1)对file文件创建一个快捷方式file. lnk 放在/目录下;
(2)对file文件创建一个硬链接文件位newfile放在/目录下;
[root@localhost ~]# touch /root/file
[root@localhost ~]# ln -s /root/file /file.lnk
[root@localhost ~]# ll /
total 28
lrwxrwxrwx. 1 root root 10 Nov 24 20:18 file.lnk -> /root/file
[root@localhost ~]# ln /root/file /newfile
[root@localhost ~]# ll /
total 28
-rw-r--r--. 2 root root 0 Nov 24 20:16 newfile
新手小白,请多多指教