linux 基础知识汇总
1、Linux文件系统概述
Linux文件系统是指操作系统用来控制文件如何存储和检索的结构和逻辑。
文件系统结构
- 根目录:
/
- Linux文件系统从根目录(
/
)开始,这是所有文件和目录的起点。
- Linux文件系统从根目录(
- 目录结构: Linux使用层次化目录结构,每个目录包含文件和子目录。
- 挂载点: 各种文件系统通过挂载点(mount point)集成到文件系统的层次结构中。
文件类型
- 普通文件: 包含数据的文件(文本文件、二进制文件等)。
- 目录文件: 也称为文件夹,包含其他文件或子目录。
- 链接文件: 指向另一个文件的指针,可以是硬链接或软链接。
- 设备文件: 代表设备的特殊文件,分为字符设备文件和块设备文件。
- 管道文件: 用于进程间通信的文件。
根目录概述
在Linux操作系统中,根目录(/
)是整个文件系统的起点。所有文件和目录都是从根目录开始的,根目录下包含了系统所需的各种子目录,每个子目录都有其特定的用途。
根目录下的常用文件夹及其用途 (仅作了解)
/bin
:- 存放基本命令的二进制文件,如
ls
,cp
,mv
,bash
等,系统启动和单用户模式下需要使用这些命令。
- 存放基本命令的二进制文件,如
/etc
:- 存放系统配置文件和子目录,如网络配置文件、用户账户信息、服务配置文件等。
/home
:- 每个用户的主目录的默认位置,例如用户
user
的主目录为/home/user
。用户的个人文件和设置通常存放在这里。
- 每个用户的主目录的默认位置,例如用户
/lib
:- 存放系统运行所需的共享库文件和内核模块。包括程序执行时依赖的共享库文件,如
/lib/libc.so.6
,头文件等。
- 存放系统运行所需的共享库文件和内核模块。包括程序执行时依赖的共享库文件,如
/var
:- 存放系统运行时需要改变的数据文件,如日志文件、缓存文件、邮件队列等。
/dev
:- 包含设备文件,用于访问硬件设备,例如磁盘、终端、音频设备等。每个设备都表示为一个文件,如
/dev/sda
表示第一个SCSI硬盘。
- 包含设备文件,用于访问硬件设备,例如磁盘、终端、音频设备等。每个设备都表示为一个文件,如
/proc
:- 虚拟文件系统,包含系统进程和内核信息的虚拟文件。提供系统信息,如内存、CPU等。
/root
:- 超级用户(root)的主目录。与普通用户的主目录不同,位于
/home
之外。
- 超级用户(root)的主目录。与普通用户的主目录不同,位于
/srv
:- 存放服务(service)相关的数据,如HTTP服务器的网页文件、FTP服务器的数据等。
/tmp
:- 存放临时文件,系统重启后该目录下的文件会被删除。
/usr
:- 存放用户应用程序和文件,包括二进制文件、库文件、文档等。包含子目录:
/usr/bin
: 存放用户命令的二进制文件。/usr/lib
: 存放用户命令的库文件。/usr/local
: 存放本地安装的软件。
- 存放用户应用程序和文件,包括二进制文件、库文件、文档等。包含子目录:
根目录结构图
下面是一张根目录下常用文件夹的结构图:
/
├── bin
├── etc
├── home
│ ├── user1
│ └── user2
├── lib
├── proc
├── root
├── dev
├── srv
├── tmp
├── usr
│ ├── bin
│ ├── lib
│ ├── local
│ │ ├── bin
│ │ └── lib
│ └── share
├── var
├── log
├── mail
├── cache
└── tmp
2、路径
路径是指文件或目录在文件系统中的位置。路径分为绝对路径和相对路径。
绝对路径
绝对路径是从根目录(/
)开始,逐级指定文件或目录的路径。绝对路径总是唯一的,并且不依赖于当前工作目录。
- 示例:
/home/user/docs/file.txt
在这个例子中,路径从根目录开始,依次经过home
、user
、docs
目录,最后指向file.txt
文件。
相对路径
相对路径是从当前工作目录开始,逐级指定文件或目录的路径。相对路径依赖于当前工作目录,可以使用相对路径操作文件和目录而不需要知道它们的绝对位置。
- 示例:
- 当前目录:
/home/user
- 相对路径:
docs/file.txt
- 当前目录:
在这个例子中,相对路径docs/file.txt
指向的是/home/user/docs/file.txt
文件。
特殊目录符号
.
: 当前目录..
: 上一级目录~
: 当前用户的主目录(通常是/home/username
)
3、终端常用命令
1. ls
- 列出目录内容
用来显示指定目录下的文件和子目录。
ls
:显示当前目录下的文件和目录。ls -l
:以长格式显示文件和目录的详细信息,包括权限、所有者、文件大小和修改时间。ls -a
:显示所有文件和目录,包括隐藏文件(以.
开头的文件)。ls -lh
:以长格式和人类可读的格式显示文件大小(例如,KB、MB)。ls -R
:递归地列出所有子目录中的文件。
2. cd
- 切换目录
用于在不同的目录之间导航。
cd
:返回用户的主目录。cd /path/to/directory
:切换到指定目录。cd ..
:返回上一级目录。cd -
:返回到上一个工作目录。
3. mkdir
- 创建目录
用来创建新目录。
mkdir directory_name
:创建一个名为directory_name
的新目录。mkdir -p /path/to/directory
:递归创建目录路径中的所有目录(如果它们不存在)。
4. touch
- 创建文件
用于创建一个新的空文件或更新现有文件的时间戳。
touch filename
:创建一个名为filename
的新文件,或者如果文件已存在,则更新其修改时间。
5. pwd
- 显示当前目录
显示当前工作目录的完整路径。
pwd
:显示当前工作目录的绝对路径。
6. cat
- 连接并显示文件
用于查看文件内容或将文件内容连接输出。
cat filename
:显示filename
文件的内容。cat file1 > file2
:将file1
的内容复制到file2
(覆盖)。cat file1 >> file2
:将file1
的内容追加到file2
。
7. cp
- 复制文件或目录
用于复制文件或目录。
cp source destination
:将文件source
复制到destination
。cp -r source_directory destination_directory
:递归复制目录及其内容。cp -i source destination
:在覆盖文件时提示确认。
8. mv
- 移动或重命名文件或目录
用于移动文件或目录,或者重命名它们。
mv source destination
:将文件或目录source
移动到destination
,或者重命名为destination
。mv -i source destination
:在覆盖文件时提示确认。
9. rm
- 删除文件或目录
用于删除文件或目录。
rm filename
:删除filename
文件。rm -r directory
:递归删除目录及其内容。rm -f filename
:强制删除文件而不提示确认。rm -rf directory
:强制递归删除目录及其内容而不提示确认。
10. chmod
- 更改文件权限
用于更改文件或目录的权限。
权限可以用两种方式表示:符号表示法和八进制表示法。
符号表示法
- r:读权限(read)
- w:写权限(write)
- x:执行权限(execute)
使用符号表示法时,权限可以分配给用户(u)、组(g)和其他人(o)。
八进制表示法
- 4:读权限(read)
- 2:写权限(write)
- 1:执行权限(execute)
符号表示法示例
- 给文件所有者添加读、写和执行权限
chmod u+rwx filename
- 给文件组添加读和执行权限
chmod g+rx filename
- 给其他人添加读权限
chmod o+r filename
- 给所有用户(用户、组和其他人)添加读、写和执行权限
chmod a+rwx filename
chmod +rwx filename # 默认是给所有的用户
八进制表示法示例
- 给文件所有者、组和其他人添加读、写和执行权限
chmod 777 filename
这里的 777
表示用户、组和其他人都拥有读(4)+写(2)+执行(1)= 7 的权限。
- 给文件所有者添加读、写和执行权限,组和其他人添加读和执行权限
chmod 755 filename
这里的 755
表示用户拥有读(4)+写(2)+执行(1)= 7 的权限,而组和其他人拥有读(4)+执行(1)= 5 的权限。
这里的 -rwxrwxrwx
表示文件的权限。第一个字符表示文件类型,后面的字符分为三组,每组三个字符,分别表示所有者、组和 其他人的权限。
11. chown
- 更改文件所有者
用于更改文件或目录的所有者。
chown user:group filename
:将文件filename
的所有者改为user
,组改为group
。chown -R user:group directory
:递归更改目录及其内容的所有者。
12. find
- 查找文件
用于在目录中搜索文件。
find /path -name filename
:在/path
目录下查找名为filename
的文件。find /path -type d
:在/path
目录下查找所有目录。find /path -type f -name "*.txt"
:在/path
目录下查找所有扩展名为.txt
的文件。
13. grep
- 搜索文本
用于在文件中搜索匹配的文本。
grep "pattern" filename
:在filename
中搜索pattern
字符串。grep -r "pattern" /path
:递归搜索目录/path
中的pattern
字符串。grep -i "pattern" filename
:在filename
中搜索pattern
字符串(忽略大小写)。grep -v "pattern" filename
:在filename
中显示不包含pattern
的行。
14. man
- 显示命令手册页
用于显示命令的手册页,帮助了解命令的详细用法。
man command
:显示command
命令的手册页。man -k keyword
:搜索包含keyword
的所有手册页。
这些命令是Linux系统中最常用的一些基本命令,通过掌握这些命令,您可以有效地管理和操作文件系统。
14. 重启系统
sudo reboot
14. 关闭某个进程
首先,找出进程的 PID(进程ID)。例如:
pgrep process_name
使用
kill
命令来终止进程。发送默认的
SIGTERM
信号(请求进程正常终止):kill PID
如果进程没有响应,可以发送
SIGKILL
信号(强制终止):kill -9 PID