Linux 文件管理命令与系统目录结构
1. 重要文件目录
-
根目录
/
(根目录)
-
系统目录
/bin
: 存放基本命令/sbin
: 存放系统管理命令/etc
: 系统配置文件/dev
: 设备文件/proc
: 进程和内核信息/var
: 易变文件,如日志/lib
//lib64
: 共享库文件
-
用户目录
/home
: 用户家目录/root
: 超级用户(root)的家目录
-
临时和挂载目录
/tmp
: 临时文件存放/media
: 挂载的可移动设备/mnt
: 临时挂载文件系统
-
用户应用程序目录
/usr
: 用户程序和库/opt
: 自定义应用程序
/home
目录详解
-
功能:
/home
目录是Linux系统中存放普通用户个人文件的地方。每个用户在/home
目录下通常会有一个以用户名命名的子目录,用于存放该用户的文件、配置和数据。
-
目录结构:
/home/username
: 存放用户username
的个人文件和目录。- 用户的家目录通常是用户的默认工作目录,登录时自动进入。
-
权限:
- 普通用户只能访问自己的家目录,其他用户无法访问(除非有特定的权限设置)。
- 家目录中的文件和子目录的权限通常设置为用户可读写,但其他用户没有权限访问。
-
常见子目录:
Documents
: 存放文档文件。Downloads
: 默认下载文件的目录。Pictures
: 存放图片文件。Videos
: 存放视频文件。.[config]
: 用户应用程序的配置文件(以.
开头表示隐藏文件)。
(有啥东西尽量在家目录弄)
-
管理和使用:
- 用户可以在家目录中自由创建、删除和修改文件和目录。
- 系统管理员可以设置用户的家目录和权限,确保数据安全和隔离。
2. Linux 系统目录结构
├── bin -> usr/bin # 存放系统常用的可执行文件(如 ls, cp, mv 等)
├── boot # 内核及引导系统程序所在的目录
├── dev # 所有设备文件的目录(如磁盘、光驱等)
├── etc # 配置文件默认路径、服务启动命令存放目录
├── home # 用户家目录,root用户为/root
├── lib -> usr/lib # 32位库文件存放目录
├── lib64 -> usr/lib64 # 64位库文件存放目录
├── media # 媒体文件存放目录
├── mnt # 临时挂载设备目录
├── opt # 自定义软件安装存放目录
├── proc # 进程及内核信息存放目录
├── root # Root用户家目录
├── run # 系统运行时产生临时文件存放目录
├── sbin -> usr/sbin # 系统管理命令存放目录
├── srv # 服务启动之后需要访问的数据目录
├── sys # 系统使用目录
├── tmp # 临时文件目录
├── usr # 系统命令和帮助文件目录
└── var # 存放内容易变的文件的目录
3. 目录操作
一、基本目录操作
- pwd: 查看当前工作目录位置
- clear: 清除屏幕
- cd ~: 进入当前用户的家目录
- cd /: 进入根目录
- cd -: 返回上一次访问的目录
- cd …: 返回上一级目录
二、查看目录内信息
- ll: 查看当前目录下内容(
ll
是ls -l
的别名)
三、创建目录
- mkdir aaa: 在当前目录下创建
aaa
目录(相对路径) - mkdir ./bbb: 在当前目录下创建
bbb
目录(相对路径) - mkdir /ccc: 在根目录下创建
ccc
目录(绝对路径)
递归创建目录
- mkdir -p temp1/temp2/temp3: 递归创建
temp1/temp2/temp3
目录(会创建所有不存在的目录)
四、搜索命令
- find / -name ‘b’: 查询根目录下(包括子目录)名为
b
的目录和文件 - find / -name 'b’*: 查询根目录下(包括子目录)名以
b
开头的目录和文件 - find . -name ‘b’: 查询当前目录下(包括子目录)名为
b
的目录和文件
五、重命名
- mv 原先目录 文件的名称: 将原先的目录重命名,例如
mv pastname newname
六、剪切命令
- mv /aaa /bbb: 将根目录下的
aaa
目录移动到bbb
目录下(如果没有bbb
,则重命名为bbb
) - mv bbbb usr/bbb: 将当前目录下的
bbbb
目录移动到usr
目录下,并且重命名为bbb
- mv bbb usr/aaa: 将当前目录下的
bbb
目录移动到usr
目录下,并且重命名为aaa
七、复制目录
- cp -r /aaa /bbb: 将根目录下的
aaa
目录复制到bbb
目录下,名称保持为aaa
- cp -r /aa /bbb/aaa: 将根目录下的
aa
目录复制到bbb
目录下,并重命名为aaa
八、删除目录
- rm -rf /bbb: 强制删除
/bbb
目录及其所有子目录和文件,不会提示 - rm -r /bbb: 普通删除,会询问你是否删除每一个文件
- rmdir test01: 删除空目录
test01
九、查看树状目录结构
- tree test01/: 查看
test01
目录的树状结构
需要下载tree
软件apt install tree
4. 文件管理常用指令
基本操作
- Ctrl + C: 取消命令并换行
- Ctrl + U: 清空当前行命令
- Tab: 自动补全命令或文件名
- 方向键: 上下箭头可查看先前执行过的命令
其他常用指令
- man: 查看命令的手册,例如
man mkdir
查看mkdir
的使用说明 - echo: 输出文本,例如
echo Hello, World!
(这个是shell语法,后面慢慢学) - grep: 在文件中搜索匹配文本,例如
grep "pattern" file.txt
- chmod: 修改文件或目录的权限,例如
chmod 755 script.sh
- chown: 修改文件或目录的拥有者,例如
chown user:group file.txt
- tar: 打包和压缩文件
tar -cvf archive.tar /path/to/dir
: 创建一个 tar 包tar -xvf archive.tar
: 解压缩 tar 包
5. apt 包管理命令(以Ubuntu为例)
apt
是 Ubuntu 和 Debian 系列 Linux 发行版中常用的包管理工具,用于安装、更新和删除软件包。
常用apt命令
-
更新软件包索引
sudo apt update
: 更新本地软件包索引,获取可用软件包的最新版本信息
-
升级已安装的软件包
sudo apt upgrade
: 升级所有已安装的软件包到最新版本
输入Y/y
继续下载。
(…要更新的包太多了,只截了一小部分,kali官方下载的虚拟机配置文件,Ubuntu的.iso映像文件应该会少一点。)
-
安装新软件包
sudo apt install [包名]
: 安装指定的软件包,例如sudo apt install vim
-
卸载软件包
sudo apt remove [包名]
: 卸载指定的软件包,例如sudo apt remove vim
sudo apt purge [包名]
: 卸载软件包及其配置文件
-
查找软件包
apt search [关键词]
: 根据关键词搜索可用软件包
-
查看已安装的软件包
apt list --installed
: 列出所有已安装的软件包
-
显示软件包信息
apt show [包名]
: 显示指定软件包的详细信息
-
清理不再需要的软件包
sudo apt autoremove
: 自动删除不再需要的包(通常是依赖包)
6. 文件权限和所有权
文件权限
- 文件权限分为三种:
- r (read): 读取权限
- w (write): 写入权限
- x (execute): 执行权限
- 权限可以分为三类用户:
- 用户 (user): 文件的拥有者
- 组 (group): 拥有者所在的组
- 其他 (others): 其他用户
修改权限
- 使用 chmod 命令修改文件权限。
chmod [模式] [文件名]
:- 例:
chmod u+x file.txt
:为文件拥有者添加执行权限。 - 使用数字表示法:
chmod 755 file.txt
。
- 例:
修改所有权
- 使用 chown 命令修改文件或目录的拥有者和组。
chown [用户]:[组] [文件名]
:- 例:
chown user:group file.txt
。
- 例:
7. 网络命令
-
ping: 测试与远程主机的网络连接。
- 例:
ping google.com
(测试如果在国内建议用百度,Googleping
不通)。
Windows也支持ping
指令
- 例:
-
ifconfig: 显示或配置网络接口(需要使用
ip
命令替代)。- 例:
ifconfig
或ip addr show
。
- 例:
-
curl: 用于与网络服务器进行交互,例如下载文件。
- 例:
curl -O http://example.com/file.txt
。
- 例:
-
ssh: 通过SSH协议远程连接到另一台计算机。
- 例:
ssh user@hostname
。
- 例:
8. 文本处理命令
1. cat
cat
(concatenate的缩写)用于显示文件内容、合并文件或创建新文件。
- 用法:
cat file.txt
: 直接显示file.txt
的内容。cat file1.txt file2.txt > combined.txt
: 合并file1.txt
和file2.txt
的内容,并将结果输出到combined.txt
。cat > newfile.txt
: 创建一个新文件newfile.txt
,并从标准输入读取内容,按Ctrl + D
结束输入。
cat到了result里面的内容,是nmap扫描记录的ip
2. less
less
是一个分页查看器,可以方便地浏览大文件,支持向前和向后滚动。
- 用法:
less file.txt
: 打开并分页查看file.txt
。- 在查看时,可以按
Space
键向下翻页,按b
键向上翻页,按q
键退出。
3. head
head
用于显示文件的前几行,默认是前10行。
- 用法:
head file.txt
: 显示file.txt
的前10行。head -n 5 file.txt
: 显示file.txt
的前5行。head -c 100 file.txt
: 显示file.txt
的前100个字节。
4. tail
tail
用于显示文件的最后几行,默认是最后10行,常用于查看日志文件。
- 用法:
tail file.txt
: 显示file.txt
的最后10行。tail -n 5 file.txt
: 显示file.txt
的最后5行。tail -f file.txt
: 实时监控file.txt
的新增内容(适合查看动态更新的日志文件)。
5. grep
grep
用于在文件中搜索包含特定模式的行,常用于文本搜索和过滤。
- 用法:
grep "pattern" file.txt
: 查找file.txt
中包含"pattern"
的所有行。grep -i "pattern" file.txt
: 忽略大小写查找。grep -r "pattern" /path/to/dir
: 递归查找指定目录中的文件。grep -v "pattern" file.txt
: 显示不包含"pattern"
的行。
6. sed
sed
是一个流编辑器,用于对文本进行查找、替换、插入和删除。
- 用法:
sed 's/old/new/g' file.txt
: 将file.txt
中的所有old
替换为new
。sed -n '1,5p' file.txt
: 只打印file.txt
中的第1到第5行。sed '/pattern/d' file.txt
: 删除file.txt
中包含"pattern"
的所有行。
7. sort
sort
用于对文本行进行排序,可以按字母顺序或数值排序。
- 用法:
sort file.txt
: 按字母顺序对file.txt
的行进行排序。sort -n file.txt
: 按数值排序(适合对数字进行排序)。sort -r file.txt
: 以降序方式排序。
8. uniq
uniq
用于去除文本中的重复行,通常与 sort
命令结合使用。
- 用法:
sort file.txt | uniq
: 去除file.txt
中的重复行。uniq -c file.txt
: 统计每个唯一行的出现次数。uniq -d file.txt
: 只显示重复的行。
9. wc
wc
用于统计文件中的行数、字数和字符数。
- 用法:
wc file.txt
: 显示file.txt
的行数、字数和字节数。wc -l file.txt
: 只显示行数。wc -w file.txt
: 只显示字数。
9. Shell 脚本基础(仅介绍)
-
脚本文件:
- Shell 脚本是以
.sh
结尾的文本文件,包含一系列可以在命令行中执行的命令。它们可以自动化重复性任务,简化复杂操作。
- Shell 脚本是以
-
文件头:
- 通常在脚本的第一行包含一个 shebang,用于指定脚本解释器,例如:
#!/bin/bash
- 这表示该脚本将使用 Bash 解释器执行。
- 通常在脚本的第一行包含一个 shebang,用于指定脚本解释器,例如:
-
执行权限:
- 脚本文件需要具有执行权限,以便能够运行。
chmod +x script.sh
- 这将允许用户执行该脚本。
- 脚本文件需要具有执行权限,以便能够运行。
-
运行脚本:
- 使用相对路径或绝对路径运行脚本:
./script.sh
- 或者可以使用
bash
命令运行:bash script.sh
- 使用相对路径或绝对路径运行脚本:
-
基本语法:
- 可以使用注释,以
#
开头的行将被忽略:# 这是一个注释 echo "Hello, World!" # 输出 "Hello, World!"
- 可以使用注释,以
-
变量定义:
- 可以定义变量并使用它们:
name="Alice" echo "Hello, $name"
- 可以定义变量并使用它们:
-
条件语句:
- 可以使用
if
语句来执行条件判断:if [ "$name" = "Alice" ]; then echo "Welcome, Alice!" else echo "Who are you?" fi
- 可以使用
-
循环:
- 支持
for
和while
循环,用于重复执行命令:for i in {1..5}; do echo "Number $i" done
- 支持
-
函数:
- 可以定义和调用函数,以增强脚本的结构化:
function greet { echo "Hello, $1!" } greet "Alice"
- 可以定义和调用函数,以增强脚本的结构化:
-
调试:
- 可以使用
-x
选项调试脚本,以跟踪执行过程:bash -x script.sh
- 可以使用
-
输入输出:
- 可以通过命令行参数传递输入,使用
$1
,$2
等获取参数:echo "First argument: $1"
- 可以通过命令行参数传递输入,使用
10. 常用快捷键
- Tab: 自动补全命令或文件名,方便快速输入。
- Ctrl + L: 清屏,方便查看当前终端状态。
- Ctrl + R: 反向搜索命令历史,可以快速找到之前执行过的命令。
- Ctrl + D: 退出当前 shell 或关闭终端,终止当前会话。
- Ctrl + C: 取消当前正在执行的命令或程序。
- Ctrl + Z: 暂停当前进程并将其放入后台。
- Ctrl + A: 移动光标到当前行的开头。
- Ctrl + E: 移动光标到当前行的结尾。
- Ctrl + U: 清空当前行命令,便于重新输入。
11. 其他工具(略)
- Vim 或 Nano: 文本编辑器,常用于编辑脚本和配置文件。
- git: 版本控制工具,管理代码和项目的版本。
- tmux: 终端复用工具,支持多窗口和会话管理。
- htop: 交互式进程查看器,提供系统资源使用情况的可视化。
- curl: 命令行工具,用于发送和接收数据,支持多种协议。
- wget: 文件下载工具,支持 HTTP、HTTPS 和 FTP 协议。
- awk: 文本处理工具,适用于格式化和分析文本数据。
- sed: 流编辑器,用于对文本进行查找、替换和删除操作。
- docker: 容器化平台,简化应用程序的部署和管理。
- ssh: 安全远程登录工具,用于安全连接到远程主机。
- rsync: 文件同步工具,用于高效地传输和备份文件。
- make: 自动化构建工具,管理项目的编译过程。
- python: 高级编程语言,广泛用于脚本、数据分析和自动化任务。
- gdb: GNU调试器,用于调试程序和分析崩溃。
标签:文件,软件包,入门教程,bbb,系统目录,file,Linux,txt,目录 From: https://blog.csdn.net/2302_80127404/article/details/143418972