在 Linux 系统中,一切皆文件。无论是文本、图像、设备还是进程间的通信通道,都以文件的形式存在和管理。Linux 文件采用树形目录结构,以根目录 “/” 为起点,所有文件和目录都挂载在这个树形结构中,形成一个完整的文件系统。
Linux 文件主要分为以下几种类型,可通过 ls -l 命令查看文件类型,命令输出的第一个字符代表文件类型:
ll | grep '^s' #查找当前目录下的套接字文件
mkdir
命令创建目录 :
mkdir test #创建目录
mkdir -r test/level1/level2 #递归创建目录
ls (list) 列出目录内容:
ls -l # 长格式显示文件和目录详细信息
ls -a # 显示所有文件(包括隐藏文件)
ls -lh # 以人类可读的方式显示文件大小
ls -lt # 按修改时间排序显示
ls -R # 递归显示子目录内容
tree:以树状结构显示目录
tree # 显示当前目录的树状结构
tree -L 2 # 只显示两级目录结构
tree -a | tail -1 #只显示统计信息
cd:切换目录
cd /path/to/directory # 切换到指定目录
cd .. # 返回上级目录
cd - # 返回上次所在目录
cd # 回到用户主目录
pwd:显示当前工作目录
pwd # 打印当前所在目录的完整路径
du:估算文件空间使用情况
du -sh /path/to/directory # 显示目录总大小(-s:汇总,-h:人类可读)
du -h --max-depth=1 # 显示当前目录下一级子目录的大小
df:显示文件系统磁盘空间使用情况
df -h # 以人类可读的方式显示所有文件系统的使用情况
df -h / # 显示根目录所在文件系统的使用情况
touch:创建空白文件,还能更新已有文件的时间戳。
touch newfile.txt # 创建一个名为newfile.txt的空白文件
touch file1 file2 # 同时创建多个文件
cat > : 创建文件并输入内容,按 Ctrl + D
结束输入。
特点:若文件已存在,会覆盖原有内容;适合快速写入少量文本。
# 创建file.txt并输入两行内容
cat > file.txt
Hello, Linux!
This is a test file.
^D # 按Ctrl+D保存退出
echo > 或 echo >>: 创建文件并写入单行内容。
echo "内容" > 文件名:覆盖写入(文件不存在则创建)。 echo "内容" >> 文件名:追加写入(文件不存在则创建)。
# 覆盖写入(创建新文件)
echo "Server started at 9:00" > status.log
# 追加写入(文件存在则添加内容)
echo "Error: connection failed" >> status.log
vim 编辑器:创建并编辑文件。通过文本编辑器创建文件,适合编写复杂内容(需先安装编辑器)。
# 用vim创建并编辑file.txt(按i进入编辑模式,Esc+`:wq`保存退出)
vim file.txt
# 用nano创建并编辑note.txt(更简单的编辑器,Ctrl+O保存,Ctrl+X退出)
nano note.txt
rm(remove)命令用于删除文件或目录,删除后无法恢复,使用时需格外谨慎。
# 复制文件到目标目录
cp memo.txt ~/backup/ # 把memo.txt复制到backup目录
# 复制文件并重命名(目标是新文件名)
cp data.csv data_backup.csv # 复制data.csv为data_backup.csv
# 复制目录(必须加-r)
cp -r src/ dest/ # 递归复制src目录到dest目录(dest不存在则创建)
# 复制目录时保留属性(如权限、时间)
cp -a project/ project_backup/ # 适合备份目录,保留所有原始属性
# 批量复制文件(通配符)
cp *.jpg ~/images/ # 复制所有.jpg文件到images目录
# 复制前提示覆盖
cp -i old.txt new.txt # 若new.txt已存在,提示"是否覆盖?"
# 显示复制过程
cp -v document.pdf ~/docs/ # 输出:'document.pdf' -> '/home/user/docs/document.pdf'
stat filename.log
mv(move)命令用于移动文件 / 目录,也可实现重命名,是 Linux 中最常用的命令之一。
-i
:若目标文件已存在,移动前提示确认(避免误覆盖)。-f
:强制移动,覆盖目标文件时不提示(慎用)。-v
:显示移动过程的详细信息(verbose)。# 移动文件到目标目录(目标目录必须存在)
mv document.txt ~/Documents/ # 把document.txt移动到用户的Documents目录
# 重命名文件(源和目标在同一目录)
mv old_name.jpg new_name.jpg
# 移动目录(无需递归参数,mv默认支持目录移动)
mv project/ ~/workspace/ # 把project目录移动到workspace目录
# 批量移动同类型文件(用通配符*)
mv *.txt ~/text_files/ # 把当前目录所有.txt文件移动到text_files目录
# 移动时提示覆盖(安全操作)
mv -i report.pdf ~/backup/ # 若backup目录已有report.pdf,会提示是否覆盖
# 显示移动过程
mv -v image.png photos/ # 输出:'image.png' -> 'photos/image.png'
cp(copy)命令用于复制文件或目录,需注意复制目录时的递归参数。
-r
或 -R
:递归复制目录(必须加,否则无法复制目录)。-i
:覆盖目标文件前提示确认。-f
:强制复制,覆盖时不提示。-v
:显示复制过程的详细信息。-p
:保留源文件的权限、时间戳等属性。-a
:归档复制(相当于 -dR --preserve=all
,保留所有属性,适合备份)。# 复制文件到目标目录
cp memo.txt ~/backup/ # 把memo.txt复制到backup目录
# 复制文件并重命名(目标是新文件名)
cp data.csv data_backup.csv # 复制data.csv为data_backup.csv
# 复制目录(必须加-r)
cp -r src/ dest/ # 递归复制src目录到dest目录(dest不存在则创建)
# 复制目录时保留属性(如权限、时间)
cp -a project/ project_backup/ # 适合备份目录,保留所有原始属性
# 批量复制文件(通配符)
cp *.jpg ~/images/ # 复制所有.jpg文件到images目录
# 复制前提示覆盖
cp -i old.txt new.txt # 若new.txt已存在,提示"是否覆盖?"
# 显示复制过程
cp -v document.pdf ~/docs/ # 输出:'document.pdf' -> '/home/user/docs/document.pdf'
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。