目录
文件/目录/文件夹 增删改查
各目录的作用
- bin:存放系统常用的二进制可执行文件,例如常见的命令 ls、cp 等
- boot:存放启动 Linux 系统所需的核心文件,包括内核和启动引导程序的配置文件
- dev:存放设备文件, Linux 将外部设备(如硬盘、光驱等)作为文件来管理
- etc:存放系统配置文件和子目录,例如用户账号信息、系统服务配置等
- home:用户的主目录,用于存放个人数据和配置
- lib 和 lib64:存放系统最基本的共享库文件,lib64 用于 64 位系统
- media 和 mnt:用于挂载外部设备或临时挂载文件系统的目录
- opt:用于存放第三方软件包或额外安装的软件
- proc:虚拟文件系统,包含当前内核运行状态的各种信息,系统进程信息等
- root:超级用户(root)的主目录
- run:存放系统启动以来的信息,通常为临时文件系统,系统重启后会清空
- sbin:存放系统管理员使用的系统管理程序,普通用户一般无权限使用
- srv:存放服务启动后需要提取的数据
- sys:存放系统设备的文件信息,是内核对象子系统的直观反映
- tmp:存放临时文件的目录,系统或用户程序运行过程中会在此放置临时文件,系统重启后可能会被清空
- usr:存放用户级别的应用程序和文件,包括命令、库文件、文档等
- var:存放经常变化的文件,如日志文件、邮件队列、缓存文件等
不同颜色的含义
- 蓝色:表示目录
- 绿色:表示可执行文件
- 浅蓝色:表示符号链接(软链接)
- 红色:表示压缩文件或归档文件
- 黄色带黑色背景:表示设备文件或套接字文件
cd 命令
cd 命令用于改变当前工作目录,即从当前目录切换到指定的目录。
cd ~ //切换到当前用户的主目录
cd / //切换到根目录
cd - //切换到上一次所在的目录
cd .. //切换到当前目录的父目录(上一级目录)
cd ../.. //切换到当前目录的上两级目录
ls 命令
ls 命令会列出指定目录中的文件和目录,以及它们的属性信息。在默认情况下,ls 命令会列出当前目录的内容。
ls //列出当前目录的内容
ls -a //列出所有文件和目录,包括隐藏文件,隐藏文件以.开头
ls -A //列出所有文件和目录,但不包括当前目录(.)和父目录(..)
ls -l //使用长格式列出文件,显示详细信息,包括权限、所有者、文件大小、修改时间等
ls -t //根据文件的修改时间排序,最近修改的文件排在前面
ls -lt //显示详细信息并按时间排序
ls -S //根据文件大小排序,文件由大到小排列
ls -lS //显示详细信息并按文件大小排序
ls -R //递归列出目录下所有内容,包括子目录及其内容
ls -h //以人类可读的方式显示文件大小,如KB、MB、GB等,通常与-l参数结合使用
ls -lh //显示详细信息,并以人类易读的格式显示文件大小
mkdir 命令
mkdir 用于创建一个或多个目录
mkdir /root/Desktop/AAA //在桌面上创建名字AAA的目录
mkdir -p AAA/BBB/CCC //递归创建多级目录,在AAA下创建BBB,BBB下创建CCC
mkdir -m 755 AAA //在创建目录的同时,指定目录的权限。以755权限创建目录AAA
mkdir -v BBB //创建目录BBB,显示创建过程
mkdir DDD EEE FFF //一次创建多个目录,平级关系
touch 命令
如果指定的文件不存在,touch 命令会创建一个新的空文件
如果指定的文件已经存在,touch 命令会修改该文件的时间属性
时间属性:
- mtime(修改时间):文件内容最后一次被修改的时间
- atime(访问时间):文件最后一次被读取的时间
- ctime(状态改变时间):文件的权限或属性最后一次被修改的时间
touch file1 //在当前目录创建空文件命名为file1
touch file{1..5} //批量创建多个文件,分别命名为file1、file2
touch -a file1 //同步atime时间
touch -d "2024-9-1 17:30:0.0" file1 //将file1修改时间改为2024-9-1
touch -t 202409011730.45 file1 //指定file1的时间格式为202409011730.45
cat 命令
cat 命令用于查看文件的内容,特别适合查看内容较少的文件。它的基本功能是将文件内容输出到终端屏幕上。
cat file1 //在终端屏幕上查看file1的内容
cat /etc/psswd //查看所有用户的信息
cat /etc/shadow //查看用户密码
//这两个目录都是Linux系统中自带的目录,需要root权限才能访问
cat -n file1 //在终端屏幕上输出file1的内容,并显示行号
cat -s file1 //合并file1文件中的空行
cat >file1 <<xxx //持续向file1中写入文件,定义结束符为xxx,当输入xxx时,自动退出该模式
cat /dev/null > /root/Desktop/file1 //删除文件内容,但不删除文件本身
tac 命令
tac 命令时 cat 命令的反向版本,用于反序查看文件内容。它的作用是将文件的内容从最后一行开始向第一行显示,即将文件内容逆序输出
tac /root/Desktop/file1 //反序显示文件内容
tac -s ":" /root/Desktop/file1 //指定冒号为分隔符,而不是默认的换行符,反序显示文件内容
more 命令
more 用于查看较大文件的内容,特别适合用于一次无法完全显示的文件。它能够分页显示文件内容,便于用户逐页浏览。
more /etc/shadow //查看etc目录下的shadow文件
more -c -5 /etc/shadow //每5行显示
more +2 file1 //从第2行开始显示
more -p -5 file1 //显示文件内容,每5行显示一次,之后清屏
head 命令
用于查看文件的前几行内容,这在需要快速浏览文件开头的部分时非常有用
head -n 2 file1 //显示file1文件的前2行内容
head -c 10 file1 //显示file1文件的10个字符
head -v -n 2 file1 //显示头部信息+前2行内容
tail 命令
用于查看文件的最后几行内容,功能和 head 命令类似,但 tail 显示的时文件末尾的部分。这个命令特别适用于监控日志文件等需要实时查看文件末尾内容的场景
tail filename //查看file1文件的最后10行(默认10行)
tail -n 20 filename //查看文件的最后20行
tail -f filename //实时跟踪文件的末尾内容
tail -c 50 filename //查看文件的最后50个字符
stat 命令
用于查看文件的存储细节信息,包括文件的时间属性。它提供了比 ls 命令更详细的信息
stat file //显示文件的大小、权限、时间戳信息、硬链接数等详细信息
stat -f file //显示包含该文件的文件系统的信息,如总大小、可用空间、文件系统类型等
stat -t file1 //以简介的格式显示文件信息
cp 命令
用于在 Linux 系统中复制文件或目录,常用于将文件从一个地方复制到另一个地方
cp -R AAA /tmp/ //将AAA目录复制到/tmp/目录,-R表示递归复制目录及内容
cp -Rf /tmp/AAA /root/Desktop/AAA //将AAA复制到/tmp/(强制执行,没有提示)
cp file1 file2 CCC //将file1、file2复制到CCC目录,多个文件一起复制
mv 命令
用于在 Linux 系统中移动文件或目录、剪切文件或目录、以及重命名文件或目录
mv 1 1.txt //将1改名为1.txt
mv 1.txt /tmp/AAA //将文件1.txt移动到AAA目录中
mv dir2 dir3 //将dir2剪切到dir3中
//如果目标文件或目录不存在时,执行为重命名
mv dir3 file5 //源为目录类型,目标为文件类型,此时会报错
rm 命令
用于删除文件或目录
rm file1 //删除文件1,弹出提示后需要输入y,表示确认删除
rm -i file2 //在删除file2前进行提示,询问用户是否确认删除文件或目录
rm -f file3 //强制删除文件3,不会提示确认
rm -r dir1 //递归删除目录dir1下的所有内容
!!!慎用
rm -rf /* //强制删除根下所有内容,并且显示过程
!!!不要在真实机上使用