Linux basics
-- linux基本知识 --
1.linux的目录
linux所有文件都在一个 / 的根目录里面,在linux中的文件都有一个路径表示,例如
/usr/local/wyyy.txt
第一个 / 表示根目录,后面均表示层级关系,上述地址为根目录下的usr文件里的local文件里的wyyy.txt文件,linux里面的文件组织形式为树结构, / 文件即为树的根。
2.相对 / 绝对路径
在计算机文件系统中,路径用于定位文件和目录。路径可以是绝对路径或相对路径:
- 绝对路径:
- 定义:绝对路径是从文件系统的根目录(在Linux和Unix系统中通常是
/)开始的完整路径。它提供了到特定文件或目录的确切位置。 - 示例:
- 在 Linux 或 Unix 系统中,
/home/username/Documents是一个绝对路径,它从根目录开始,精确指向Documents目录。 - 在 Windows 系统中,
C:\Users\username\Documents是一个绝对路径。
- 在 Linux 或 Unix 系统中,
- 特点:不管当前位置在哪里,绝对路径总是指向同一个位置。
- 定义:绝对路径是从文件系统的根目录(在Linux和Unix系统中通常是
- 相对路径:
- 定义:相对路径是相对于当前工作目录的路径。它不是从根目录开始的,而是从当前所在的目录开始。
- 示例:
- 如果当前目录是
/home/username,那么相对路径Documents会指向/home/username/Documents。 .表示当前目录,..表示上级目录。例如,如果你在/home/username/Documents中,..将指向/home/username。
- 如果当前目录是
- 特点:相对路径表示的位置取决于当前的工作目录。
选择使用绝对路径还是相对路径取决于特定的需要和上下文。在脚本和程序中使用相对路径可以增加灵活性,因为它们不依赖于固定的文件结构。然而,在需要确切位置时,绝对路径提供了清晰和确定性。
3.linux的入门命令
command -options parameter
本体 -选项(非必填) 参数
1.ls 命令
ls -l(可无可换) 路径
展示路径文件里的所有内容,-l 可改变展示的形式,若没有路径则会展示当前路径下的内容.
- 基本用法:
ls:列出当前目录的文件和目录。ls <directory>:列出指定目录的文件和目录。
- 显示选项:
-a或--all:显示所有文件,包括以点(.)开头的隐藏文件。-A:类似于-a,但不包括.(当前目录)和..(父目录)。-l:使用长格式列出文件和目录,显示详细信息,如权限、所有者、大小和最后修改时间。-h或--human-readable:与-l一起使用,以易读的格式显示文件大小(例如,KB、MB)。
- 排序选项:
-t:按最后修改时间排序。-S:按文件大小排序。-r或--reverse:反向排序(例如,从大到小,从新到旧)。-X:按扩展名排序。
- 递归选项:
-R或--recursive:递归列出所有子目录的内容。
- 文件类型和权限:
-d:列出目录本身,而不是其内容。-i:显示文件的inode号码。--color:以不同颜色区分文件类型。颜色的显示可能取决于你的LS_COLORS环境变量。
- 过滤和查找:
- 使用通配符(如
*):ls *.txt仅列出扩展名为.txt的文件。 --hide=PATTERN:隐藏符合模式的文件。
- 使用通配符(如
- 时间选项:
--time=WORD:与-l一起使用,显示和排序时依据指定的时间;WORD可以是atime、access、use、ctime或status。--time-style=STYLE:以指定的格式显示时间,STYLE可以是full-iso、long-iso、iso、locale或+FORMAT。
- 输出控制:
-1:单列输出,每行显示一个文件。-C:多列输出,这是默认的当连接到终端时。-m:以逗号分隔的列表形式输出。
- 帮助和版本信息:
--help:显示帮助信息。--version:显示版本信息。
- 与其他命令结合:
- 通过管道与
grep结合:ls -l | grep 'pattern'用于搜索特定模式的文件。 - 与
xargs结合:可以用于将ls的输出用作其他命令的输入。
- 通过管道与

2.cd / pwd 命令
Linux 中的 cd 和 pwd 命令是用于操作和显示当前工作目录的基本命令。下面是这两个命令的基本使用知识点:
pwd命令(Print Working Directory):- 功能:显示当前工作目录的完整路径。
- 用法:在命令行中输入
pwd并按回车键。 - 示例:
- 输入
pwd命令,可能会显示如/home/username这样的路径,这表示你当前的工作目录。
- 输入
cd命令(Change Directory):- 功能:更改当前工作目录。
- 常用用法:
cd [目录名]:切换到指定的目录。例如,cd Documents会切换到当前用户目录下的Documents目录。cd ..:切换到当前目录的上一级目录。cd或cd ~:切换到用户的主目录。cd -:切换到上一次所在的目录。
- 示例:
- 输入
cd /var/www并按回车键,会将当前工作目录更改为/var/www。
- 输入
使用这些命令可以有效地在 Linux 文件系统中导航,了解当前位置以及如何移动到不同的目录。

3.mkdir 命令
mkdir 命令在 Linux 和 Unix 系统中用于创建新目录。以下是一些关于 mkdir 命令的基本知识点:
- 基本用法:
- 命令格式:
mkdir [选项] 目录名 - 功能:创建一个或多个新目录。
- 示例:
- 创建一个名为
new_directory的目录:mkdir new_directory
- 创建一个名为
- 命令格式:
- 创建多个目录:
- 一次可以创建多个目录。
- 示例:创建两个目录
dir1和dir2:mkdir dir1 dir2
- 创建嵌套目录(多级目录):
- 使用
-p选项可以创建嵌套目录,即如果上级目录不存在,mkdir会先创建上级目录。 - 示例:创建一个嵌套路径
dir1/dir2/dir3(其中dir1和dir2不存在):mkdir -p dir1/dir2/dir3
- 使用
- 设置权限:
- 在创建目录的同时可以设置目录权限。
- 使用
-m选项后跟权限设置。 - 示例:创建一个名为
dir的目录,并设置权限为 755(即所有者有全部权限,组和其他用户有读和执行权限):mkdir -m 755 dir
- 错误提示和覆盖:
- 如果尝试创建的目录已经存在,
mkdir默认会显示错误消息。 - 使用
-p选项时,如果目录已存在,mkdir不会显示错误消息。
- 如果尝试创建的目录已经存在,
- 常用选项:
-p:创建需要的上级目录;如果目录已存在,不显示错误。-m:在创建目录时设置权限模式。-v:显示详细信息(每创建一个目录就显示一条消息)。
mkdir 命令是文件系统管理中的基本工具,通过它可以有效地组织文件和目录结构。在编写脚本和自动化任务时,了解和合理使用 mkdir 命令非常重要。

4.文件操作命令(touch , cat , more)
在 Linux 和 Unix 系统中,touch、cat 和 more 是三个常用的文本操作命令,各自有其特定的用途和特点:
-
touch命令:- 功能:主要用于创建空文件或更新文件的访问和修改时间。
- 基本用法:
- 创建新文件:如果指定的文件不存在,
touch将创建一个空文件。例如,touch newfile.txt会创建一个名为newfile.txt的空文件。 - 更新时间戳:如果文件已存在,
touch会更新该文件的最后访问和修改时间。不会改变文件内容。
- 创建新文件:如果指定的文件不存在,
- 常用选项:
-a:仅更改访问时间。-m:仅更改修改时间。-t:用特定的时间戳更新文件时间。
-
cat命令 (concatenate):- 功能:用于查看、创建、连接和追加文件内容。
- 基本用法:
- 显示文件内容:
cat filename会显示文件的内容。 - 连接多个文件:
cat file1 file2会依次显示 file1 和 file2 的内容。 - 创建文件:
cat > file会创建一个新文件,并等待输入内容,直到遇到Ctrl+D结束输入。 - 追加内容:
cat >> file会在文件末尾追加内容。
- 显示文件内容:
- 常用选项:
-n:显示行号。-b:显示非空行的行号。
-
more命令:- 功能:逐页或逐行查看文件内容。
- 基本用法:
more filename用于查看较长的文本文件,可以一页一页地查看。 - 操作:
- 空格键:显示下一页。
Enter键:显示下一行。q:退出more。
- 特点:
more对于查看大型文件特别有用,因为它不会一次性加载整个文件,而是按需加载。

5.文件操作命令(cp , mv , rm)
在 Linux 和 Unix 系统中,cp、mv 和 rm 是三个基本的文件操作命令,用于复制、移动/重命名和删除文件或目录。下面是这些命令的基本知识点:
-
cp命令(Copy):- 功能:用于复制文件或目录。
- 基本用法:
- 复制文件:
cp source_file destination_file。例如,cp old.txt new.txt会创建old.txt的副本,并命名为new.txt。 - 复制目录:
cp -r source_directory destination_directory。-r选项表示递归复制,包括目录内的所有文件和子目录。
- 复制文件:
- 常用选项:
-r:递归复制目录及其内容。-i:在覆盖文件之前提示确认。-v:显示详细的复制过程。
-
mv命令(Move):- 功能:用于移动文件或目录,或重命名文件或目录。
- 基本用法:
- 移动文件:
mv source_file destination_directory。例如,mv file.txt /home/user/docs将file.txt移动到指定目录。 - 重命名文件:
mv old_name new_name。例如,mv old.txt new.txt将文件old.txt重命名为new.txt。
- 移动文件:
- 常用选项:
-i:在覆盖文件之前提示确认。-v:显示详细的移动过程。
-
rm命令(Remove):- 功能:用于删除文件或目录。
- 基本用法:
- 删除文件:
rm file。例如,rm file.txt将删除file.txt。 - 删除目录:
rm -r directory。-r选项表示递归删除目录及其内容。
- 删除文件:
- 常用选项:
-r:递归删除目录及其内容。-f:强制删除,不提示确认。-i:在删除每个文件前提示确认。
- 在 Linux 和 Unix 系统中,
rm命令可以与 shell 通配符结合使用来执行模糊匹配,从而删除符合特定模式的一组文件。以下是使用通配符进行模糊匹配的一些示例:
- 星号(
\*):- 作用:匹配任意数量的字符(包括零个字符)。
- 示例:
rm *.txt:删除当前目录下所有以.txt结尾的文件。rm data_*:删除所有以data_开头的文件。
- 问号(
?):- 作用:匹配任意单个字符。
- 示例:
rm ?.txt:删除所有仅有一个字符的文件名并以.txt结尾的文件(例如a.txt,b.txt)。
- 方括号(
[]):- 作用:匹配方括号内的任意单个字符或字符范围。
- 示例:
rm [abc].txt:删除a.txt,b.txt和c.txt。rm [a-z].txt:删除所有以小写字母开头并以.txt结尾的文件。
使用这些通配符时,需要格外小心,因为它们可能会匹配并删除预期之外的文件。在使用
rm进行模糊匹配删除前,建议先使用ls命令和相同的模式来检查将被匹配到的文件列表。例如,使用ls *.txt来查看所有将被rm *.txt删除的文件。此外,一些 shell 配置可能需要对特殊字符进行转义或引用,以避免由 shell 自动解释这些字符。例如,在某些情况下,你可能需要写成
rm \*.txt或rm '*.txt'。
在使用 rm 和 mv 的 -f 选项时需特别小心,因为这可能会导致数据丢失。在 Linux 系统中,删除的文件通常不会被放入回收站,一旦删除即无法恢复。因此,在使用这些命令时务必确保你的操作是安全的。

6.which find 命令
在 Linux 和 Unix 系统中,which 和 find 是两个用于查找文件的命令,但它们的用途和工作方式有所不同:
which命令:- 功能:
which命令用于定位可执行文件的路径。它在系统的 PATH 环境变量指定的目录中搜索可执行文件。 - 基本用法:
- 输入
which [程序名]可以找出该程序的完整路径。例如,which ls可以显示ls命令的路径。
- 输入
- 特点:
which只能用于查找可执行文件。- 它只搜索 PATH 环境变量中列出的目录。
- 功能:
find命令:- 功能:
find命令用于在文件系统中搜索符合条件的文件和目录。 - 基本用法:
- 语法:
find [路径] [查找条件] [操作] - 例如,
find /home -name "*.txt"会在/home目录及其子目录中搜索所有以.txt结尾的文件。
- 语法:
- 常用查找条件:
-name:按文件名搜索。-type:按类型搜索(如f代表普通文件,d代表目录)。-size:按文件大小搜索。-mtime:按修改时间搜索。
- 常用操作:
-exec:对搜索到的文件执行指定的命令。-print:打印搜索到的文件路径(这是默认操作)。
- 功能:
find 是一个功能强大的工具,能够基于各种属性查找文件和目录,而 which 主要用于快速定位特定的可执行文件。了解这两个命令如何工作以及它们的适用场景对于有效地管理文件和目录至关重要。
7. grep , wc , 管道符
在 Linux 和 Unix 系统中,grep、wc 和管道符(|)是文本处理中非常重要的工具和概念。它们可以独立使用,也可以组合使用来执行复杂的文本搜索、分析和处理任务。
grep命令:- 功能:
grep用于搜索含有特定模式的文本行。它支持基本和扩展的正则表达式,从而提供强大的文本匹配能力。 - 基本用法:
- 语法:
grep [选项] [模式] [文件...] - 示例:
grep 'text' filename会在文件filename中搜索包含 'text' 的行。
- 语法:
- 常用选项:
-i:忽略大小写。-v:反向匹配,即选择不匹配模式的行。-c:计算匹配模式的行数。-n:输出匹配行及其行号。-r:递归搜索目录中的所有文件。
- 功能:
wc命令 (word count):- 功能:
wc命令用于统计文本的行数、词数和字节数。 - 基本用法:
- 语法:
wc [选项] [文件...] - 示例:
wc filename会显示文件filename的行数、词数和字节数。
- 语法:
- 常用选项:
-l:仅统计行数。-w:仅统计词数。-c:仅统计字节数。
- 功能:
- 管道符(
|):- 功能:管道符用于将一个命令的输出作为另一个命令的输入。
- 用法:
- 通过管道,可以将多个命令连接起来,形成一个命令链。
- 示例:
grep 'text' filename | wc -l会搜索文件filename中包含 'text' 的行,并统计这些行的数量。
将 grep、wc 和管道符组合使用,可以执行复杂的文本搜索和统计任务。例如,你可以搜索特定模式的文本,然后统计匹配的行数或词数。这种组合使用提供了极大的灵活性和强大的数据处理能力。

8. echo ,tail , 重定向符
在 Linux 和 Unix 系统中,echo、tail 和重定向符是常用的文本操作工具,它们在命令行和脚本编写中非常有用。下面是这些工具的基本知识点:
-
echo命令:-
功能:
echo主要用于在终端显示文本或变量的值。 -
基本用法
:
- 显示文本:
echo [文本或变量]。例如,echo "Hello, World!"会在终端显示 "Hello, World!"。 - 显示变量的值:
echo $[变量名]。例如,echo $HOME会显示 HOME 环境变量的值。
- 显示文本:
-
常用选项
:
-n:输出文本后不换行。-e:启用反斜杠转义的解释(如\n表示换行)。
-
-
tail命令:- 功能:
tail用于显示文件的最后几行内容。 - 基本用法:
- 显示文件最后 10 行:
tail [文件名]。例如,tail file.txt会显示file.txt的最后 10 行。 - 显示文件指定行数:
tail -n [行数] [文件名]。例如,tail -n 5 file.txt会显示最后 5 行。
- 显示文件最后 10 行:
- 常用选项:
-n:指定显示的行数。-f:实时跟踪文件的新内容,常用于日志文件的监控。
- 功能:
-
重定向符:
- 功能:在命令行中,重定向符用于改变数据流的方向,比如将命令的输出写入文件,或从文件读取输入。
- 常见类型:
>:将输出重定向到文件,覆盖文件原有内容。例如,echo "Hello" > file.txt会将 "Hello" 写入file.txt。>>:将输出追加到文件。例如,echo "World" >> file.txt会将 "World" 追加到file.txt。<:从文件读取输入。例如,grep "Hello" < file.txt会在file.txt中搜索 "Hello"。
这些工具和概念在处理文件内容、生成日志、自动化脚本等方面非常有用。通过合理运用它们,可以实现强大的数据处理和文本操作功能。

4.vim编辑器
Vim 是一个功能强大的文本编辑器,广泛用于程序开发和文本处理。它是从 vi 编辑器发展而来的,提供了许多增强功能。Vim 在命令行界面中运行,以其高效的键盘快捷方式和强大的自定义能力闻名。以下是 Vim 编辑器的一些基本知识点:
-
模式:
- Vim 有几种不同的工作模式,主要包括普通模式、插入模式和命令行模式。
- 普通模式:Vim 启动后默认进入的模式。在此模式下,可以使用键盘快捷方式来移动光标、复制、粘贴、删除和查找等。
- 插入模式:在此模式下可以输入文本。从普通模式按
i进入插入模式。 - 命令行模式:可以输入命令进行保存、退出、查找替换等操作。从普通模式按
:进入命令行模式。
-
基本操作:
- 打开文件:在命令行中输入
vim 文件名来打开或创建文件。 - 保存和退出:
:w保存文件。:q退出 Vim。:wq或:x保存并退出。:q!强制退出(不保存更改)。
- 插入文本:按
i进入插入模式,开始输入文本;按Esc返回普通模式。 - 复制、粘贴和删除:
yy复制一行。p粘贴。dd删除一行。
- 打开文件:在命令行中输入
-
高级功能:
- 多窗口和标签页:Vim 支持同时打开多个文件,可以使用窗口和标签页来组织。
- 宏录制:可以录制一系列操作,并在其他地方重放。
- 自定义和扩展:Vim 支持高度的自定义,包括键绑定、颜色方案和插件系统。
-
学习资源:
- Vim 自带的教程:在终端输入
vimtutor可以开始一个基本的教程。 - 在线文档和社区:Vim 社区非常活跃,有大量的在线文档、教程和讨论。
- Vim 自带的教程:在终端输入
-
常用命令
光标移动
h:左移光标j:下移光标k:上移光标l:右移光标0:移动到行首^:移动到行的第一个非空白字符$:移动到行尾gg:移动到文件首G:移动到文件尾w:向前移动到下一个单词的开头b:向后移动到上一个单词的开头e:向前移动到下一个单词的结尾{:向上移动到上一个段落的开头}:向下移动到下一个段落的开头
编辑
i:进入插入模式a:光标后进入插入模式o:在当前行下方新开一行并进入插入模式O:在当前行上方新开一行并进入插入模式x:删除光标处的字符r:替换光标处的字符R:进入替换模式,直到按Esc
文本操作
yy:复制当前行dd:删除当前行cc:删除当前行的内容并进入插入模式p:粘贴到光标后P:粘贴到光标前>:增加缩进<:减少缩进u:撤销Ctrl + r:重做
查找与替换
/:向下搜索?:向上搜索n:重复上次搜索方向N:反向重复上次搜索:%s/old/new/g:全文替换所有old为new
窗口与标签页
:split或:sp:水平分割窗口:vsplit或:vsp:垂直分割窗口Ctrl + w w:在窗口间切换:tabnew:新开一个标签页gt:切换到下一个标签页gT:切换到上一个标签页
文件操作
:w:保存文件:q:退出 Vim:wq或:x:保存并退出:q!:强制退出(不保存)
5.linux的用户和权限
1.用户和用户组
- 用户(User):
- 每个使用系统的人都需要有一个对应的用户账号。用户账号决定了用户对系统资源的访问权限。
- 用户账号信息存储在
/etc/passwd文件中。
- 用户组(Group):
- 用户组是一种将多个用户组织在一起,以便于管理和分配权限的机制。
- 一个用户可以属于一个或多个用户组。用户组的信息存储在
/etc/group文件中。
2.用户组管理命令
创建用户组
groupadd命令:用于创建新的用户组。- 语法:
groupadd [选项] 组名 - 示例:
groupadd mygroup创建一个名为mygroup的用户组。
- 语法:
删除用户组
groupdel命令:用于删除已存在的用户组。- 语法:
groupdel 组名 - 示例:
groupdel mygroup删除mygroup用户组。
- 语法:
修改用户组
groupmod命令:用于修改用户组的属性,如更改用户组名称。- 语法:
groupmod [选项] 组名 - 示例:
groupmod -n newgroup mygroup将用户组mygroup的名称更改为newgroup。
- 语法:
管理用户组成员
-
usermod命令:用于将用户添加到用户组,或从用户组中删除。-
添加用户到组:
- 语法:
usermod -aG 组名 用户名 - 示例:
usermod -aG mygroup username将用户username添加到mygroup用户组。
- 语法:
-
从组中删除用户:Linux 没有直接命令从组中删除用户,但可以通过编辑
/etc/group文件或使用
gpasswd命令来间接实现。
- 使用
gpasswd:gpasswd -d 用户名 组名 - 直接编辑
/etc/group文件,移除用户名。
- 使用
-
-
gpasswd命令:用于管理/etc/group文件中的组密码和成员列表。- 添加用户到组:
gpasswd -a 用户名 组名 - 从组中删除用户:
gpasswd -d 用户名 组名
- 添加用户到组:
查看用户组信息
groups命令:显示当前用户或指定用户所属的所有组。- 语法:
groups [用户名] - 示例:
groups username显示username用户所属的所有用户组。
- 语法:
id命令:显示指定用户的用户ID、组ID以及所属的所有组的信息。- 语法:
id [用户名] - 示例:
id username
- 语法:
3.用户管理命令
创建用户
useradd命令:用于创建新用户。- 语法:
useradd [选项] 用户名 - 示例:
useradd -m username创建一个新用户username并使用-m选项创建用户的家目录。
- 语法:
删除用户
userdel命令:用于删除用户账户。- 语法:
userdel [选项] 用户名 - 示例:
userdel -r username删除用户username并使用-r选项删除用户的家目录和邮件目录。
- 语法:
修改用户
usermod命令:用于修改用户账户的属性。- 语法:
usermod [选项] 用户名 - 示例:
usermod -l newname oldname更改用户oldname的用户名为newname。usermod -d /new/home/dir -m username更改用户username的家目录到/new/home/dir并移动其内容。
- 语法:
管理用户密码
passwd命令:用于更新用户的密码。- 语法:
passwd [选项] 用户名 - 示例:
passwd username更改用户username的密码。如果由root用户执行,不会提示旧密码;如果是普通用户,会先要求输入旧密码。passwd -e username强制用户username在下次登录时更改密码。
- 语法:
锁定和解锁用户账户
- 锁定账户:
usermod -L 用户名或passwd -l 用户名,暂时禁止用户登录。 - 解锁账户:
usermod -U 用户名或passwd -u 用户名,允许用户再次登录。
查看用户信息
id命令:显示用户的 UID、GID 以及所属的用户组。- 语法:
id 用户名 - 示例:
id username显示用户username的信息。
- 语法:
切换用户
su命令:切换当前用户身份到其他用户。- 语法:
su [选项] [用户名] - 示例:
su - username切换到用户username并加载该用户的环境。
- 语法:
4.权限
在 Linux 中,文件和目录的权限分为三类:读(r)、写(w)、执行(x),分别对应于数字 4、2 和 1。权限可以分配给文件/目录的拥有者(User)、用户组(Group)和其他用户(Others)。
- 读(r):
- 对于文件,表示可以读取文件内容。
- 对于目录,表示可以列出目录中的内容。
- 写(w):
- 对于文件,表示可以修改文件内容。
- 对于目录,表示可以在目录中创建或删除文件。
- 执行(x):
- 对于文件,表示可以执行文件。
- 对于目录,表示可以访问目录中的文件和子目录。

5.查看和修改权限
- 查看权限:
- 使用
ls -l命令可以查看文件或目录的权限。 - 示例输出:
-rwxr-xr-- 1 user group 234 Jan 1 12:34 example.txt,其中rwxr-xr--表示拥有者有全部权限,用户组有读和执行权限,其他用户只有读权限。
- 使用
- 修改权限:
- 使用
chmod命令修改文件或目录的权限。 - 示例:
chmod 755 example.txt,设置拥有者有全部权限,用户组和其他用户有读和执行权限。
- 使用

6.修改文件所有者和组
- 使用
chown命令修改文件或目录的所有者。 - 使用
chgrp命令修改文件或目录所属的组。 - 示例:
chown user:group example.txt,将example.txt的所有者更改为user,并将其所属组更改为group。
7.root 用户的特点
在 Linux 系统中,root 用户是系统的超级用户,具有对系统的全面控制权。root 用户可以执行任何操作,包括访问所有文件和目录、修改系统设置、安装和卸载软件、创建和删除任意用户账户等。正因为 root 用户具有如此广泛的权限,使用时需要格外小心,以防不慎操作导致系统损坏或安全风险。
- 无限制的权限:
root用户可以访问和修改系统上的任何文件,无论这些文件的权限设置如何。 - 执行敏感操作:只有
root用户(或具有相应权限的用户)才能执行诸如更改网络配置、安装系统级软件、管理服务和进程等操作。 - 安全风险:因为
root用户权限过大,如果被恶意利用,可能会给系统安全带来严重风险。因此,建议仅在绝对必要时使用root权限,并尽快切换回普通用户。
8.使用 root 用户
-
直接登录:在一些系统中,可以直接以
root用户登录系统。但出于安全考虑,许多现代 Linux 发行版默认禁用root用户的直接登录。 -
sudo命令:命令允许授权的普通用户以
root用户的权限执行命令。这是一种更安全的使用root权限的方法,因为它可以限制对root权限的访问,并在系统日志中记录使用情况。- 例如,
sudo apt update命令会以root用户的权限执行apt update。
- 例如,
-
su命令:(switch user)命令允许切换到
root用户(或其他用户)。通常,运行su并输入root用户的密码即可切换到
root用户。- 例如,仅输入
su并输入root密码,将切换到root用户会话。
- 例如,仅输入
后面又对这两个命令更详细的用法
9.su 命令
-
用途:
su(switch user的缩写)命令用于切换当前用户身份到另一个用户。 -
基本语法:
su [选项] [用户名]- 若不指定用户名,默认切换到
root用户。
- 若不指定用户名,默认切换到
-
使用示例:
su - username:切换到username用户,并加载该用户的环境变量(-或-l选项指定登录到用户的环境)。su:不加任何参数默认切换到root用户。
-
注意事项:
- 切换时需输入目标用户的密码。
- 使用
su -切换用户时,会获取该用户的登录环境,与直接登录该用户相似。
10.sudo 命令
- 用途:
sudo(superuser do的缩写)命令允许授权的用户以另一个用户(默认为root)的身份执行命令。 - 基本语法:
sudo [选项] 命令 - 使用示例:
sudo apt update:以root用户的权限执行apt update命令。sudo -u username command:以username用户的权限执行指定的命令。sudo -i:切换到root用户的登录环境,类似于su -命令。
- 注意事项:
- 执行
sudo命令时,需要输入执行sudo的用户的密码,而不是目标用户的密码。 sudo的使用权限和可执行命令在/etc/sudoers文件中配置。为了安全,建议使用visudo命令编辑该文件,因为它会检查语法错误。
- 执行
使用 su 或 sudo 命令切换用户时,应根据实际需求和系统安全策略来选择合适的命令。在多用户环境中,合理使用这些命令可以有效地管理用户权限和执行权限敏感的操作。
6.linux(centos) 软件安装及操作
centos使用yum命令进行软件的安装 , ubuntu为apt。
yum(Yellowdog Updater Modified)是在基于 RPM 的 Linux 分发版(如 CentOS、Fedora、RHEL等)中使用的命令行软件包管理器。它允许用户安装、更新、删除软件包,解决软件包的依赖问题,并管理软件仓库。以下是 yum 命令的一些基本用法:
1.安装软件包
-
安装软件包:
yum install 包名- 示例:
yum install nginx安装 nginx 服务器。
- 示例:
2.更新软件包
-
更新所有软件包:
yum update- 更新系统中所有已安装的软件包到最新版本。
-
更新指定软件包:
yum update 包名- 示例:
yum update nginx更新 nginx 到最新版本。
- 示例:
3.删除软件包
-
删除软件包:
yum remove 包名或
yum erase 包名- 示例:
yum remove nginx删除 nginx 软件包。
- 示例:
4.查找软件包
-
搜索软件包:
yum search 关键字- 示例:
yum search nginx搜索所有与 nginx 相关的软件包。
- 示例:
5.列出软件包
- 列出所有可安装的软件包:
yum list available - 列出所有已安装的软件包:
yum list installed - 列出特定仓库中的软件包:
yum --disablerepo="*" --enablerepo="仓库名" list available
6.清理缓存
-
清理 yum 缓存:
yum clean all- 清理缓存目录中的软件包及旧的头文件。
7. 管理软件仓库
- 列出已配置的仓库:
yum repolist - 启用或禁用仓库:使用
--enablerepo=仓库名或--disablerepo=仓库名选项。
8.检查更新
-
检查所有软件包的更新:
yum check-update- 列出所有有更新的软件包。
9. yum 历史
-
查看 yum 操作历史:
yum history- 显示过去通过 yum 执行的命令历史。
10.yum 配置
- yum 配置文件位于:
/etc/yum.conf - 软件仓库配置目录:
/etc/yum.repos.d/
yum 提供了一个简单易用的接口来管理基于 RPM 的系统的软件包,它使得软件管理变得更加方便和高效。通过解决依赖关系和自动化安装过程,yum 帮助用户和系统管理员保持系统的更新和安全。
systemctl 是 Systemd 系统和服务管理器的主要命令,用于控制 systemd 系统和服务管理器。Systemd 是大多数最新的 Linux 发行版(如 Fedora、CentOS 7及以上版本、Ubuntu 16.04 LTS 及以上版本等)的初始化系统和系统管理守护程序,负责初始化系统启动时的组件和运行后的服务管理。
systemctl 提供了丰富的命令行选项,允许系统管理员和用户启动、停止、重启、重载服务,同时也用于管理服务的自启动配置、检查服务状态及系统状态等。
11. 常用 systemctl 命令
- 启动服务:
systemctl start 服务名.service- 例如,启动 nginx 服务:
systemctl start nginx.service
- 例如,启动 nginx 服务:
- 停止服务:
systemctl stop 服务名.service- 例如,停止 nginx 服务:
systemctl stop nginx.service
- 例如,停止 nginx 服务:
- 重启服务:
systemctl restart 服务名.service- 用于重新启动服务,通常用于配置更改后立即生效。
- 显示服务状态:
systemctl status 服务名.service- 显示服务的当前状态,包括是否正在运行、最近的日志条目等。
- 使服务在启动时自动启动:
systemctl enable 服务名.service- 设置服务在系统启动时自动启动。
- 禁用服务自启动:
systemctl disable 服务名.service- 取消设置服务在系统启动时自动启动。
- 重新载入服务配置:
systemctl reload 服务名.service- 仅重新载入配置文件,不中断服务的当前运行。
- 查看已启动的服务列表:
systemctl list-units --type=service --state=running- 显示当前已启动的所有服务。
- 查看所有服务:
systemctl list-unit-files --type=service- 显示所有已安装的服务及其启动配置状态。
系统管理
- 重启系统:
systemctl reboot - 关机:
systemctl poweroff - 挂起系统:
systemctl suspend - 休眠系统:
systemctl hibernate
systemctl 是管理现代 Linux 系统中服务和系统状态的关键工具。通过熟练使用 systemctl,可以有效地管理系统的运行状态和服务的行为。
7.软链接
软链接(Symbolic Link),也称为符号链接或软连接,是 Linux 和 Unix 系统中一种特殊类型的文件,它包含的是另一个文件或目录的路径引用。软链接可以被视为指向另一个文件或目录的快捷方式。软链接的特点和使用场景包括:
**特点 **
- 跨文件系统:软链接可以跨文件系统指向另一个文件或目录。
- 指向性:软链接文件包含的是目标文件或目录的路径。如果目标被移动或删除,链接将变为“死链接”或“悬挂链接”,即它不再指向一个有效的文件或目录。
- 权限:软链接的权限总是
lrwxrwxrwx,但实际访问权限取决于目标文件的权限。 - 存储空间:软链接仅占用很少的磁盘空间,因为它只存储目标路径的文本信息。
创建软链接
使用 ln 命令创建软链接,格式如下:
bashCopy code
ln -s 目标文件路径 软链接路径
示例
假设有一个文件 /home/user/example.txt,创建一个指向它的软链接:
bashCopy code
ln -s /home/user/example.txt /home/user/link_to_example.txt
这将在 /home/user/ 目录下创建一个名为 link_to_example.txt 的软链接,指向 /home/user/example.txt。
使用场景
- 快捷方式:为了方便访问位于系统深处或经常使用的文件/目录,可以在易于访问的位置创建软链接。
- 版本控制:通过软链接指向当前版本的程序或库文件,可以轻松切换不同版本的软件。
- 保持兼容性:在新的位置创建文件或目录后,可以在原位置创建软链接,以保持与旧路径的兼容性。
注意事项
- 当通过软链接修改文件时,实际上是修改了链接所指向的目标文件。
- 删除软链接不会影响目标文件,但如果删除了目标文件,软链接将指向一个不存在的路径。
- 在处理软链接时,一些命令(如
cp和rsync)需要特别注意其参数,以确保按预期工作(例如,复制链接本身还是链接指向的文件)。
8.tmux的作用与命令
tmux 是一个强大的终端复用器,允许用户在一个终端窗口中访问多个终端会话,独立操作每个会话,甚至在不同的会话之间共享屏幕。它是在命令行界面环境下使用的,特别适合通过SSH远程操作或需要同时管理多个命令行任务的场景。tmux 通过创建会话、窗口和面板来组织工作空间,每个层级都有其特定的用途和管理方式。
主要特性
- 会话管理:用户可以创建、分离、恢复和关闭会话。即使与远程会话的连接断开,会话中运行的程序也会继续运行。
- 窗口:每个
tmux会话可以包含多个窗口,类似于图形用户界面环境下的多个标签页。 - 面板:每个
tmux窗口可以分割为多个面板,每个面板都是独立的终端。
配置tmux
tmux的配置文件位于用户家目录下的.tmux.conf文件中。用户可以在此文件中自定义tmux的行为和快捷键等。
为什么使用tmux
- 多任务:在一个窗口中管理多个会话、窗口和面板,提高命令行工作效率。
- 会话持久性:用户可以断开连接而不影响运行中的任务,之后还可以重新连接到会话中。
- 远程工作:对于远程SSH会话非常有用,即使连接断开,用户也不会丢失当前的工作状态。
tmux是命令行环境下的强大工具,对于需要同时处理多个命令行任务的用户来说,它提供了极大的便利和高效性。
会话管理
- 创建会话:
- 命令:
tmux new -s session_name
- 命令:
- 列出会话:
- 命令:
tmux ls
- 命令:
- 附加到会话:
- 命令:
tmux attach -t session_name
- 命令:
- 分离当前会话:
- 命令:
tmux detach - 快捷键:
Ctrl+b然后d
- 命令:
- 切换会话:
- 命令:
tmux switch -t session_name - 快捷键:
Ctrl+b然后(或)切换至上一个或下一个会话。
- 命令:
- 重命名当前会话:
- 命令:无,使用快捷键操作。
- 快捷键:
Ctrl+b然后$
窗口管理
- 创建新窗口:
- 命令:无,使用快捷键操作。
- 快捷键:
Ctrl+b然后c
- 切换窗口:
- 通过编号:
Ctrl+b然后输入窗口编号。 - 下一个窗口:
Ctrl+b然后n - 上一个窗口:
Ctrl+b然后p
- 通过编号:
- 列出所有窗口:
- 命令:无,使用快捷键操作。
- 快捷键:
Ctrl+b然后w
- 重命名当前窗口:
- 命令:无,使用快捷键操作。
- 快捷键:
Ctrl+b然后,
面板管理
- 水平分割面板:
- 命令:无,使用快捷键操作。
- 快捷键:
Ctrl+b然后"
- 垂直分割面板:
- 命令:无,使用快捷键操作。
- 快捷键:
Ctrl+b然后%
- 在面板间切换:
- 命令:无,使用快捷键操作。
- 快捷键:
Ctrl+b然后使用方向键
- 调整面板大小:
- 命令:无,使用快捷键操作。
- 快捷键:
Ctrl+b然后按下Ctrl+ 方向键来调整大小。
- 关闭当前面板:
- 命令:无,使用快捷键操作。
- 快捷键:
Ctrl+b然后x
tmux 的强大之处在于其高度的可定制性,您可以通过编辑 ~/.tmux.conf 文件来自定义快捷键和行为,以适应您的工作流程。

浙公网安备 33010602011771号