目录
ll命令:显示指定文件的详细属性信息
ll 命令的功能是显示指定文件或目录的详细属性信息。
实际上它不是一个真是存在的命令,只是"ls -l --color=auto
"的别名而已。
ll 命令可以默认列出当前目录的详细属性信息,包含权限、所属、修改时间以及占用空间等信息。
语法格式:ll 参数 文件名
常用参数:
# 显示当前目录内文件和目录的详细属性信息
ll
# 以文件或文件夹的上次修改时间排序,显示当前目录内文件或目录的详细属性信息
ll -t
# 以更易读的容量单位显示文件大小
ll -h
# 查看某个指定文件的详细属性信息
ll File.cfg
ls:显示目录中文件及其属性信息
ls命令来自英文单词list,意思为列出。
功能:显示目录中的文件以及属性信息。
不使用参数的情况下,默认列出当前工作目录中的信息,常与pwd和cd搭配使用。
语法:ls 参数 [文件名]
,如果不加文件名就是列出当前目录里所有文件的相关信息。
常用参数:
|--------|-----------------------|
| -a | 显示所有文件和目录(包含隐藏文件) |
| -A | 不显示当前目录和父目录 |
| -d | 显示目录自身的属性信息 |
| -i | 显示文件的inode属性信息 |
| -l | 显示文件的详细属性信息 |
| -m | 以逗号为间隔,水平显示文件信息 |
| -r | 根据首字母将文件以相反次序显示 |
| -R | 递归显示所有子文件 |
| -S | 依据内容大小将文件排序显示 |
| -t | 依据最后修改时间将文件排序显示 |
| -X | 依据扩展名将文件排序显示 |
| -color | 以彩色显示信息 |
显示当前目录中的文件名(默认不包含隐藏文件):
ls
root@hplinux:/home/linuxstudy/test1# ls
file0.cfg file2.txt file{4...7}.txt file5.txt file7.txt
file1.txt file3.txt file4.txt file6.txt file8.txt
显示当前目录中的文件名(包含隐藏文件):
ls -a
root@hplinux:/home/linuxstudy/test1# ls -a
. file0.cfg file2.txt file{4...7}.txt file5.txt file7.txt
.. file1.txt file3.txt file4.txt file6.txt file8.txt
以详细信息模式输出文件名及其属性信息:
ls -l
root@hplinux:/home/linuxstudy/test1# ls -l
总计 0
-rw-r--r-- 1 root root 0 6月 22 05:00 file0.cfg
-rw-r--r-- 1 root root 0 6月 23 17:38 file1.txt
-rw-r--r-- 1 root root 0 6月 23 17:38 file2.txt
-rw-r--r-- 1 root root 0 6月 23 17:51 file3.txt
-rw-r--r-- 1 root root 0 6月 23 17:54 file{4...7}.txt
-rw-r--r-- 1 root root 0 6月 23 17:54 file4.txt
-rw-r--r-- 1 root root 0 6月 23 17:54 file5.txt
-rw-r--r-- 1 root root 0 6月 23 17:54 file6.txt
-rw-r--r-- 1 root root 0 6月 23 17:54 file7.txt
-rw-r--r-- 1 root root 0 6月 23 17:38 file8.txt
显示指定目录的文件列表:
ls /usr
: 显示usr目录下的文件列表
# 显示指定目录usr下的所有目录和文件(不包含隐藏文件和目录)
root@hplinux:/home/linuxstudy/test1# ls /usr
bin games include lib lib64 libexec local sbin share src
# 显示指定目录usr下所有目录和文件(包含隐藏文件和目录)
root@hplinux:/home/linuxstudy/test1# ls -a /usr
. .. bin games include lib lib64 libexec local sbin share src
结合通配符一起使用,显示指定目录中所有以sd开头的文件列表:
root@lcool:/home/lcool# ls /dev/sd*
/dev/sda /dev/sda2 /dev/sdb /dev/sdb2
/dev/sda1 /dev/sda3 /dev/sdb1
依据文件内容大小进行排序,显示指定目录中文件名以及属性详细信息:
root@lcool:/home/lcool# ls -Sl /etc
总计 1140
-rw-r--r-- 1 root root 75113 7月 12 2023 mime.types
-rw-r--r-- 1 root root 58445 6月 24 22:28 ld.so.cache
-rw-r--r-- 1 root root 30571 3月 31 08:24 brltty.conf
-rw-r--r-- 1 root root 12813 3月 28 2021 services
-rw-r--r-- 1 root root 12345 2月 22 20:30 login.defs
-rw-r--r-- 1 root root 11424 5月 23 2023 nanorc
-rw-r--r-- 1 root root 10593 3月 31 10:31 sensors3.conf
-rw-r--r-- 1 root root 9804 4月 8 22:50 sudo_logsrvd.conf
-rw-r--r-- 1 root root 9563 6月 24 22:28 locale.gen
-rw-r--r-- 1 root root 7649 4月 24 18:49 pnm2ppa.conf
...................省略大部分内容......................
mkdir命令:创建目录文件
mkdir命令来自英文词组make directories的缩写。
其功能是创建目录文件。
该命令的使用简单,但是需要注意,若要创建的目录已经存在,则会提示已存在而不再继续创建,不覆盖已有目录。
若是目录不存在,但具有嵌套的依赖关系时,例如:/Dir1/Dir2/Dir3/Dir4/Dir5,想要一次性创建需要加入-p参数,进行递归操作。
语法格式:mkdir 参数 目录名
|----|-------------|
| -m | 创建目录的同时设置权限 |
| -p | 递归创建多级目录 |
| -v | 显示执行过程详细信息 |
| -z | 设置目录安全上下文 |
创建一个目录:
mkdir Dir1
创建一个目录文件,并设置700权限,不让除所有主以外的任何人读、写、执行它:
mkdir -m 700 Dir2
一次创建多个目录文件:
mkdir Dir3 Dir4 Dir5
创建具有嵌套关系的目录文件:
# 注意,该创建语句将文件夹创建至系统根目录下
mkdir -p /Dir1/Dir2/Dir3/Dir4/Dir5
给目录权限:777,并且多级目录同时创建,但是权限最终赋给 errors 目录
mkdir -m 777 -p htmls/index/errors
touch:创建空文件与修改时间戳
touch命令如果文件不存在,则会创建一个空内容的文本文件;如果文件已经存在则会对文件的Atime(访问时间)和Ctime(修改时间)进行修改操作,这项操作只有管理员能够完成,普通用户只能管理主机的文件。
语法:touch 参数 文件名
|-----------|-------------|
| -a | 设置文件的读取时间记录 |
| -c | 不创建新文件 |
| -d | 设置时间与日期 |
| -m | 设置文件的修改时间记录 |
| -t | 设置文件的时间记录 |
| --help | 显示帮助信息 |
| --version | 显示版本信息 |
创建一个指定名称的空文件:
touch file3.txt
结合通配符,创建多个指定名称的空文件,例如创建file4到file7的空txt文件:
touch file{4..7}.txt
该命令会创建file4.txt, file5.txt, file6.txt, file7.txt四个文件
修改指定文件的查看时间和修改时间
# 修改file0.cfg文件的查看时间和修改时间
root@hplinux:/home/linuxstudy/test1# touch -d "2024-06-22 05:00" file0.cfg
root@hplinux:/home/linuxstudy/test1# stat file0.cfg
文件:file0.cfg
大小:0 块:0 IO 块大小:4096 普通空文件
设备:8,18 Inode: 1316696 硬链接:1
权限:(0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
访问时间:2024-06-22 05:00:00.000000000 +0800
修改时间:2024-06-22 05:00:00.000000000 +0800
变更时间:2024-06-23 18:18:58.870225185 +0800
创建时间:2024-06-23 18:16:52.149756598 +0800
显示版本信息:
root@hplinux:/home/linuxstudy/test1# touch --version
touch (GNU coreutils) 9.4
Copyright © 2023 Free Software Foundation, Inc.
许可证 GPLv3+:GNU 通用公共许可证第 3 版或更新版本 <https://gnu.org/licenses/gpl.html>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律允许的范围内,不提供任何保证。
由 Paul Rubin、Arnold Robbins、Jim Kingdon、
David MacKenzie 和 Randy Smith 编写。
显示帮助信息:
root@hplinux:/home/linuxstudy/test1# touch --help
用法:touch [选项]... 文件...
将每个 <文件> 的访问时间和修改时间更改为当前时间。
除非提供了 -c 或 -h 选项,否则不存在的 <文件> 将会被创建,内容为空。
如果 <文件> 为 - 则特殊处理,程序将更改与标准输出相关联的文件的时间。
长选项的必选参数对于短选项也是必选的。
-a 只更改访问时间
-c, --no-create 不创建任何文件
-d, --date=字符串 使用 <字符串> 表示的时间,而非当前时间
-f (被忽略)
-h, --no-dereference 影响符号链接本身,而非符号链接的目标
(当系统支持更改符号链接的时间戳时,此选项才有用)
-m 只更改修改时间
-r, --reference=文件 使用 <文件> 的时间戳,而非当前时间
-t 时间戳 使用格式为 [[CC]YY]MMDDhhmm[.ss] 的时间戳,而非当前时间
--time=关键字 修改指定类型的时间:
若 <关键字> 是 access、atime 或 use:与 -a 等价
若 <关键字> 是 modify 或 mtime:与 -m 等价
--help 显示此帮助信息并退出
--version 显示版本信息并退出
请注意,-d 和 -t 选项所接受的时间/日期格式是不同的。
GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告任何翻译错误
完整文档 <https://www.gnu.org/software/coreutils/touch>
或者在本地使用:info '(coreutils) touch invocation'
rm命令:删除文件或目录
rm命令来自英文单词remove的缩写,中文译为"消除",其功能是删除文件或目录,一次可以删除多个文件,或递归删除目录及其内的所有子文件。
rm命令也是一个非常危险的命令,使用的时候要特别小心,尤其是对于新手来说更要格外注意。例如:执行rm -rf /*
命令会清除系统中所有的文件,甚至无法恢复。
所以我们在执行过程之前一定要确定好在那个哪个目录以及要删除的什么文件,考虑好之后再敲击Enter键,要时刻保持清醒的脑子。
语法:rm 参数 文件名
常用参数:
bash
# 删除文件时会默认进行二次确认,敲击y表示进行确认
rm File.cfg
# 强制删除文件,无需进行二次确认
rm -f File.cfg
# 删除指定目录及其内所有子文件,无需二次确认
rm -rf Dir
# 强制删除当前工作目录内所有以.txt结尾的文件
rm -f *.txt
# 强制清空服务器根目录所有文件(慎用!!!)
rm -rf /*
cd命令:切换目录
cd 命令来自英文词组 change directory 的缩写,其功能是更改当前所处的工作目录,路径 可以是绝对路径,也可以是相对路径,若省略不写则会跳转至当前使用者的家目录。
语法:cd 参数 目录名
常用参数:
# 切换到指定目录
cd /home/test
# 切换到当前用户的家目录
cd ~
# 进入上一级
cd ..
# 返回上一次所在目录
cd -
chmod命令:改变文件或目录权限
chmod 命令来自英文词组 change mode 的缩写,其功能是改变文件或目录权限的命令。
默认只有文件的所有者和管理员可以设置文件权限,普通用户只能管理自己文件的权限属性。
设置权限时可以使用数字法,亦可使用字母表达式,对于目录文件,建议加入-R 参数进 行递归操作,这意味着不仅对于目录本身,而且也对目录内的子文件/目录进行新权限的设定。
语法:chmod 参数 文件/目录名
常用参数:
# 将某个文件的权限设置为775
chmod 775 File.cfg
# 设定某个文件可以让任何人读取
chmod a+r File.cfg
chmod 777 File.cfg
# 设定某个目录及其内部子文件和子目录可以被任何人读取
chmod -R a+r Dir
chmod -R 777 Dir
# 为某个二进制命令的文件新增SUID特殊权限位
chmod u+s /sbin/reboot