Linux basics

-- linux基本知识 --

1.linux的目录

linux所有文件都在一个 / 的根目录里面,在linux中的文件都有一个路径表示,例如

/usr/local/wyyy.txt

第一个 / 表示根目录,后面均表示层级关系,上述地址为根目录下的usr文件里的local文件里的wyyy.txt文件,linux里面的文件组织形式为树结构, / 文件即为树的根。

2.相对 / 绝对路径

在计算机文件系统中,路径用于定位文件和目录。路径可以是绝对路径或相对路径:

  1. 绝对路径:
    • 定义:绝对路径是从文件系统的根目录(在Linux和Unix系统中通常是 /)开始的完整路径。它提供了到特定文件或目录的确切位置。
    • 示例:
      • 在 Linux 或 Unix 系统中,/home/username/Documents 是一个绝对路径,它从根目录开始,精确指向 Documents 目录。
      • 在 Windows 系统中,C:\Users\username\Documents 是一个绝对路径。
    • 特点:不管当前位置在哪里,绝对路径总是指向同一个位置。
  2. 相对路径:
    • 定义:相对路径是相对于当前工作目录的路径。它不是从根目录开始的,而是从当前所在的目录开始。
    • 示例:
      • 如果当前目录是 /home/username,那么相对路径 Documents 会指向 /home/username/Documents
      • . 表示当前目录,.. 表示上级目录。例如,如果你在 /home/username/Documents 中,.. 将指向 /home/username
    • 特点:相对路径表示的位置取决于当前的工作目录。

选择使用绝对路径还是相对路径取决于特定的需要和上下文。在脚本和程序中使用相对路径可以增加灵活性,因为它们不依赖于固定的文件结构。然而,在需要确切位置时,绝对路径提供了清晰和确定性。

3.linux的入门命令

command -options parameter
本体 -选项(非必填) 参数

1.ls 命令

ls -l(可无可换) 路径

展示路径文件里的所有内容,-l 可改变展示的形式,若没有路径则会展示当前路径下的内容.

  1. 基本用法
    • ls:列出当前目录的文件和目录。
    • ls <directory>:列出指定目录的文件和目录。
  2. 显示选项
    • -a--all:显示所有文件,包括以点(.)开头的隐藏文件。
    • -A:类似于 -a,但不包括 .(当前目录)和 ..(父目录)。
    • -l:使用长格式列出文件和目录,显示详细信息,如权限、所有者、大小和最后修改时间。
    • -h--human-readable:与 -l 一起使用,以易读的格式显示文件大小(例如,KB、MB)。
  3. 排序选项
    • -t:按最后修改时间排序。
    • -S:按文件大小排序。
    • -r--reverse:反向排序(例如,从大到小,从新到旧)。
    • -X:按扩展名排序。
  4. 递归选项
    • -R--recursive:递归列出所有子目录的内容。
  5. 文件类型和权限
    • -d:列出目录本身,而不是其内容。
    • -i:显示文件的inode号码。
    • --color:以不同颜色区分文件类型。颜色的显示可能取决于你的 LS_COLORS 环境变量。
  6. 过滤和查找
    • 使用通配符(如 *):ls *.txt 仅列出扩展名为 .txt 的文件。
    • --hide=PATTERN:隐藏符合模式的文件。
  7. 时间选项
    • --time=WORD:与 -l 一起使用,显示和排序时依据指定的时间;WORD可以是 atimeaccessusectimestatus
    • --time-style=STYLE:以指定的格式显示时间,STYLE可以是 full-isolong-isoisolocale+FORMAT
  8. 输出控制
    • -1:单列输出,每行显示一个文件。
    • -C:多列输出,这是默认的当连接到终端时。
    • -m:以逗号分隔的列表形式输出。
  9. 帮助和版本信息
    • --help:显示帮助信息。
    • --version:显示版本信息。
  10. 与其他命令结合
    • 通过管道与 grep 结合:ls -l | grep 'pattern' 用于搜索特定模式的文件。
    • xargs 结合:可以用于将 ls 的输出用作其他命令的输入。

![截屏2024-01-28 15.20.13](/Users/wangyi/Library/Application Support/typora-user-images/截屏2024-01-28 15.20.13.png)

2.cd / pwd 命令

Linux 中的 cdpwd 命令是用于操作和显示当前工作目录的基本命令。下面是这两个命令的基本使用知识点:

  1. pwd 命令(Print Working Directory):
    • 功能:显示当前工作目录的完整路径。
    • 用法:在命令行中输入 pwd 并按回车键。
    • 示例:
      • 输入 pwd 命令,可能会显示如 /home/username 这样的路径,这表示你当前的工作目录。
  2. cd 命令(Change Directory):
    • 功能:更改当前工作目录。
    • 常用用法:
      • cd [目录名]:切换到指定的目录。例如,cd Documents 会切换到当前用户目录下的 Documents 目录。
      • cd ..:切换到当前目录的上一级目录。
      • cdcd ~:切换到用户的主目录。
      • cd -:切换到上一次所在的目录。
    • 示例:
      • 输入 cd /var/www 并按回车键,会将当前工作目录更改为 /var/www

使用这些命令可以有效地在 Linux 文件系统中导航,了解当前位置以及如何移动到不同的目录。

![截屏2024-02-01 15.58.53](/Users/wangyi/Library/Application Support/typora-user-images/截屏2024-02-01 15.58.53.png)

3.mkdir 命令

mkdir 命令在 Linux 和 Unix 系统中用于创建新目录。以下是一些关于 mkdir 命令的基本知识点:

  1. 基本用法:
    • 命令格式:mkdir [选项] 目录名
    • 功能:创建一个或多个新目录。
    • 示例:
      • 创建一个名为 new_directory 的目录:mkdir new_directory
  2. 创建多个目录:
    • 一次可以创建多个目录。
    • 示例:创建两个目录 dir1dir2mkdir dir1 dir2
  3. 创建嵌套目录(多级目录):
    • 使用 -p 选项可以创建嵌套目录,即如果上级目录不存在,mkdir 会先创建上级目录。
    • 示例:创建一个嵌套路径 dir1/dir2/dir3(其中 dir1dir2 不存在):mkdir -p dir1/dir2/dir3
  4. 设置权限:
    • 在创建目录的同时可以设置目录权限。
    • 使用 -m 选项后跟权限设置。
    • 示例:创建一个名为 dir 的目录,并设置权限为 755(即所有者有全部权限,组和其他用户有读和执行权限):mkdir -m 755 dir
  5. 错误提示和覆盖:
    • 如果尝试创建的目录已经存在,mkdir 默认会显示错误消息。
    • 使用 -p 选项时,如果目录已存在,mkdir 不会显示错误消息。
  6. 常用选项:
    • -p:创建需要的上级目录;如果目录已存在,不显示错误。
    • -m:在创建目录时设置权限模式。
    • -v:显示详细信息(每创建一个目录就显示一条消息)。

mkdir 命令是文件系统管理中的基本工具,通过它可以有效地组织文件和目录结构。在编写脚本和自动化任务时,了解和合理使用 mkdir 命令非常重要。

![截屏2024-02-01 16.32.18](/Users/wangyi/Library/Application Support/typora-user-images/截屏2024-02-01 16.32.18.png)

4.文件操作命令(touch , cat , more)

在 Linux 和 Unix 系统中,touchcatmore 是三个常用的文本操作命令,各自有其特定的用途和特点:

  1. touch 命令:

    • 功能:主要用于创建空文件或更新文件的访问和修改时间。
    • 基本用法:
      • 创建新文件:如果指定的文件不存在,touch 将创建一个空文件。例如,touch newfile.txt 会创建一个名为 newfile.txt 的空文件。
      • 更新时间戳:如果文件已存在,touch 会更新该文件的最后访问和修改时间。不会改变文件内容。
    • 常用选项:
      • -a:仅更改访问时间。
      • -m:仅更改修改时间。
      • -t:用特定的时间戳更新文件时间。
  2. cat 命令 (concatenate):

    • 功能:用于查看、创建、连接和追加文件内容。
    • 基本用法:
      • 显示文件内容:cat filename 会显示文件的内容。
      • 连接多个文件:cat file1 file2 会依次显示 file1 和 file2 的内容。
      • 创建文件:cat > file 会创建一个新文件,并等待输入内容,直到遇到 Ctrl+D 结束输入。
      • 追加内容:cat >> file 会在文件末尾追加内容。
    • 常用选项:
      • -n:显示行号。
      • -b:显示非空行的行号。
  3. more 命令:

    • 功能:逐页或逐行查看文件内容。
    • 基本用法more filename 用于查看较长的文本文件,可以一页一页地查看。
    • 操作:
      • 空格键:显示下一页。
      • Enter键:显示下一行。
      • q:退出 more
    • 特点more 对于查看大型文件特别有用,因为它不会一次性加载整个文件,而是按需加载。

    ![截屏2024-02-01 16.39.49](/Users/wangyi/Library/Application Support/typora-user-images/截屏2024-02-01 16.39.49.png)

5.文件操作命令(cp , mv , rm)

在 Linux 和 Unix 系统中,cpmvrm 是三个基本的文件操作命令,用于复制、移动/重命名和删除文件或目录。下面是这些命令的基本知识点:

  1. 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:显示详细的复制过程。
  2. mv 命令(Move):

    • 功能:用于移动文件或目录,或重命名文件或目录。
    • 基本用法:
      • 移动文件:mv source_file destination_directory。例如,mv file.txt /home/user/docsfile.txt 移动到指定目录。
      • 重命名文件:mv old_name new_name。例如,mv old.txt new.txt 将文件 old.txt 重命名为 new.txt
    • 常用选项:
      • -i:在覆盖文件之前提示确认。
      • -v:显示详细的移动过程。
  3. rm 命令(Remove):

    • 功能:用于删除文件或目录。
    • 基本用法:
      • 删除文件:rm file。例如,rm file.txt 将删除 file.txt
      • 删除目录:rm -r directory-r 选项表示递归删除目录及其内容。
    • 常用选项:
      • -r:递归删除目录及其内容。
      • -f:强制删除,不提示确认。
      • -i:在删除每个文件前提示确认。
    • 在 Linux 和 Unix 系统中,rm 命令可以与 shell 通配符结合使用来执行模糊匹配,从而删除符合特定模式的一组文件。以下是使用通配符进行模糊匹配的一些示例:
    1. 星号(\*:
      • 作用:匹配任意数量的字符(包括零个字符)。
      • 示例:
        • rm *.txt:删除当前目录下所有以 .txt 结尾的文件。
        • rm data_*:删除所有以 data_ 开头的文件。
    2. 问号(?:
      • 作用:匹配任意单个字符。
      • 示例:
        • rm ?.txt:删除所有仅有一个字符的文件名并以 .txt 结尾的文件(例如 a.txtb.txt)。
    3. 方括号([]:
      • 作用:匹配方括号内的任意单个字符或字符范围。
      • 示例:
        • rm [abc].txt:删除 a.txtb.txtc.txt
        • rm [a-z].txt:删除所有以小写字母开头并以 .txt 结尾的文件。

    使用这些通配符时,需要格外小心,因为它们可能会匹配并删除预期之外的文件。在使用 rm 进行模糊匹配删除前,建议先使用 ls 命令和相同的模式来检查将被匹配到的文件列表。例如,使用 ls *.txt 来查看所有将被 rm *.txt 删除的文件。

    此外,一些 shell 配置可能需要对特殊字符进行转义或引用,以避免由 shell 自动解释这些字符。例如,在某些情况下,你可能需要写成 rm \*.txtrm '*.txt'

在使用 rmmv-f 选项时需特别小心,因为这可能会导致数据丢失。在 Linux 系统中,删除的文件通常不会被放入回收站,一旦删除即无法恢复。因此,在使用这些命令时务必确保你的操作是安全的。

![截屏2024-02-01 16.52.40](/Users/wangyi/Library/Application Support/typora-user-images/截屏2024-02-01 16.52.40.png)

6.which find 命令

在 Linux 和 Unix 系统中,whichfind 是两个用于查找文件的命令,但它们的用途和工作方式有所不同:

  1. which 命令:
    • 功能which 命令用于定位可执行文件的路径。它在系统的 PATH 环境变量指定的目录中搜索可执行文件。
    • 基本用法:
      • 输入 which [程序名] 可以找出该程序的完整路径。例如,which ls 可以显示 ls 命令的路径。
    • 特点:
      • which 只能用于查找可执行文件。
      • 它只搜索 PATH 环境变量中列出的目录。
  2. find 命令:
    • 功能find 命令用于在文件系统中搜索符合条件的文件和目录。
    • 基本用法:
      • 语法:find [路径] [查找条件] [操作]
      • 例如,find /home -name "*.txt" 会在 /home 目录及其子目录中搜索所有以 .txt 结尾的文件。
    • 常用查找条件:
      • -name:按文件名搜索。
      • -type:按类型搜索(如 f 代表普通文件,d 代表目录)。
      • -size:按文件大小搜索。
      • -mtime:按修改时间搜索。
    • 常用操作:
      • -exec:对搜索到的文件执行指定的命令。
      • -print:打印搜索到的文件路径(这是默认操作)。

find 是一个功能强大的工具,能够基于各种属性查找文件和目录,而 which 主要用于快速定位特定的可执行文件。了解这两个命令如何工作以及它们的适用场景对于有效地管理文件和目录至关重要。

7. grep , wc , 管道符

在 Linux 和 Unix 系统中,grepwc 和管道符(|)是文本处理中非常重要的工具和概念。它们可以独立使用,也可以组合使用来执行复杂的文本搜索、分析和处理任务。

  1. grep 命令:
    • 功能grep 用于搜索含有特定模式的文本行。它支持基本和扩展的正则表达式,从而提供强大的文本匹配能力。
    • 基本用法:
      • 语法:grep [选项] [模式] [文件...]
      • 示例:grep 'text' filename 会在文件 filename 中搜索包含 'text' 的行。
    • 常用选项:
      • -i:忽略大小写。
      • -v:反向匹配,即选择不匹配模式的行。
      • -c:计算匹配模式的行数。
      • -n:输出匹配行及其行号。
      • -r:递归搜索目录中的所有文件。
  2. wc 命令 (word count):
    • 功能wc 命令用于统计文本的行数、词数和字节数。
    • 基本用法:
      • 语法:wc [选项] [文件...]
      • 示例:wc filename 会显示文件 filename 的行数、词数和字节数。
    • 常用选项:
      • -l:仅统计行数。
      • -w:仅统计词数。
      • -c:仅统计字节数。
  3. 管道符(|:
    • 功能:管道符用于将一个命令的输出作为另一个命令的输入。
    • 用法:
      • 通过管道,可以将多个命令连接起来,形成一个命令链。
      • 示例:grep 'text' filename | wc -l 会搜索文件 filename 中包含 'text' 的行,并统计这些行的数量。

grepwc 和管道符组合使用,可以执行复杂的文本搜索和统计任务。例如,你可以搜索特定模式的文本,然后统计匹配的行数或词数。这种组合使用提供了极大的灵活性和强大的数据处理能力。

![截屏2024-02-01 18.32.17](/Users/wangyi/Library/Application Support/typora-user-images/截屏2024-02-01 18.32.17.png)

8. echo ,tail , 重定向符

在 Linux 和 Unix 系统中,echotail 和重定向符是常用的文本操作工具,它们在命令行和脚本编写中非常有用。下面是这些工具的基本知识点:

  1. echo 命令:

    • 功能echo 主要用于在终端显示文本或变量的值。

    • 基本用法

      • 显示文本:echo [文本或变量]。例如,echo "Hello, World!" 会在终端显示 "Hello, World!"。
      • 显示变量的值:echo $[变量名]。例如,echo $HOME 会显示 HOME 环境变量的值。
    • 常用选项

      • -n:输出文本后不换行。
      • -e:启用反斜杠转义的解释(如 \n 表示换行)。
  2. tail 命令:

    • 功能tail 用于显示文件的最后几行内容。
    • 基本用法:
      • 显示文件最后 10 行:tail [文件名]。例如,tail file.txt 会显示 file.txt 的最后 10 行。
      • 显示文件指定行数:tail -n [行数] [文件名]。例如,tail -n 5 file.txt 会显示最后 5 行。
    • 常用选项:
      • -n:指定显示的行数。
      • -f:实时跟踪文件的新内容,常用于日志文件的监控。
  3. 重定向符:

    • 功能:在命令行中,重定向符用于改变数据流的方向,比如将命令的输出写入文件,或从文件读取输入。
    • 常见类型:
      • >:将输出重定向到文件,覆盖文件原有内容。例如,echo "Hello" > file.txt 会将 "Hello" 写入 file.txt
      • >>:将输出追加到文件。例如,echo "World" >> file.txt 会将 "World" 追加到 file.txt
      • <:从文件读取输入。例如,grep "Hello" < file.txt 会在 file.txt 中搜索 "Hello"。

这些工具和概念在处理文件内容、生成日志、自动化脚本等方面非常有用。通过合理运用它们,可以实现强大的数据处理和文本操作功能。

![截屏2024-02-01 18.42.05](/Users/wangyi/Library/Application Support/typora-user-images/截屏2024-02-01 18.42.05.png)

4.vim编辑器

Vim 是一个功能强大的文本编辑器,广泛用于程序开发和文本处理。它是从 vi 编辑器发展而来的,提供了许多增强功能。Vim 在命令行界面中运行,以其高效的键盘快捷方式和强大的自定义能力闻名。以下是 Vim 编辑器的一些基本知识点:

  1. 模式:

    • Vim 有几种不同的工作模式,主要包括普通模式、插入模式和命令行模式。
    • 普通模式:Vim 启动后默认进入的模式。在此模式下,可以使用键盘快捷方式来移动光标、复制、粘贴、删除和查找等。
    • 插入模式:在此模式下可以输入文本。从普通模式按 i 进入插入模式。
    • 命令行模式:可以输入命令进行保存、退出、查找替换等操作。从普通模式按 : 进入命令行模式。
  2. 基本操作:

    • 打开文件:在命令行中输入 vim 文件名 来打开或创建文件。
    • 保存和退出:
      • :w 保存文件。
      • :q 退出 Vim。
      • :wq:x 保存并退出。
      • :q! 强制退出(不保存更改)。
    • 插入文本:按 i 进入插入模式,开始输入文本;按 Esc 返回普通模式。
    • 复制、粘贴和删除:
      • yy 复制一行。
      • p 粘贴。
      • dd 删除一行。
  3. 高级功能:

    • 多窗口和标签页:Vim 支持同时打开多个文件,可以使用窗口和标签页来组织。
    • 宏录制:可以录制一系列操作,并在其他地方重放。
    • 自定义和扩展:Vim 支持高度的自定义,包括键绑定、颜色方案和插件系统。
  4. 学习资源:

    • Vim 自带的教程:在终端输入 vimtutor 可以开始一个基本的教程。
    • 在线文档和社区:Vim 社区非常活跃,有大量的在线文档、教程和讨论。
  5. 常用命令

    光标移动

    • 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:全文替换所有 oldnew

    窗口与标签页

    • :split:sp:水平分割窗口
    • :vsplit:vsp:垂直分割窗口
    • Ctrl + w w:在窗口间切换
    • :tabnew:新开一个标签页
    • gt:切换到下一个标签页
    • gT:切换到上一个标签页

    文件操作

    • :w:保存文件
    • :q:退出 Vim
    • :wq:x:保存并退出
    • :q!:强制退出(不保存)

5.linux的用户和权限

1.用户和用户组

  1. 用户(User):
    • 每个使用系统的人都需要有一个对应的用户账号。用户账号决定了用户对系统资源的访问权限。
    • 用户账号信息存储在 /etc/passwd 文件中。
  2. 用户组(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
      

      命令来间接实现。

      • 使用 gpasswdgpasswd -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):
    • 对于文件,表示可以执行文件。
    • 对于目录,表示可以访问目录中的文件和子目录。

![截屏2024-02-02 17.53.59](/Users/wangyi/Library/Application Support/typora-user-images/截屏2024-02-02 17.53.59.png)

5.查看和修改权限

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

![截屏2024-02-02 17.57.03](/Users/wangyi/Library/Application Support/typora-user-images/截屏2024-02-02 17.57.03.png)

6.修改文件所有者和组

  • 使用 chown 命令修改文件或目录的所有者。
  • 使用 chgrp 命令修改文件或目录所属的组。
  • 示例:chown user:group example.txt,将 example.txt 的所有者更改为 user,并将其所属组更改为 group

7.root 用户的特点

在 Linux 系统中,root 用户是系统的超级用户,具有对系统的全面控制权。root 用户可以执行任何操作,包括访问所有文件和目录、修改系统设置、安装和卸载软件、创建和删除任意用户账户等。正因为 root 用户具有如此广泛的权限,使用时需要格外小心,以防不慎操作导致系统损坏或安全风险。

  • 无限制的权限root 用户可以访问和修改系统上的任何文件,无论这些文件的权限设置如何。
  • 执行敏感操作:只有 root 用户(或具有相应权限的用户)才能执行诸如更改网络配置、安装系统级软件、管理服务和进程等操作。
  • 安全风险:因为 root 用户权限过大,如果被恶意利用,可能会给系统安全带来严重风险。因此,建议仅在绝对必要时使用 root 权限,并尽快切换回普通用户。

8.使用 root 用户

  1. 直接登录:在一些系统中,可以直接以 root 用户登录系统。但出于安全考虑,许多现代 Linux 发行版默认禁用 root 用户的直接登录。

  2. sudo 命令:

    命令允许授权的普通用户以 root 用户的权限执行命令。这是一种更安全的使用 root权限的方法,因为它可以限制对 root 权限的访问,并在系统日志中记录使用情况。

    • 例如,sudo apt update 命令会以 root 用户的权限执行 apt update
  3. 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 命令编辑该文件,因为它会检查语法错误。

使用 susudo 命令切换用户时,应根据实际需求和系统安全策略来选择合适的命令。在多用户环境中,合理使用这些命令可以有效地管理用户权限和执行权限敏感的操作。

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
  • 停止服务systemctl stop 服务名.service
    • 例如,停止 nginx 服务:systemctl stop nginx.service
  • 重启服务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

使用场景

  • 快捷方式:为了方便访问位于系统深处或经常使用的文件/目录,可以在易于访问的位置创建软链接。
  • 版本控制:通过软链接指向当前版本的程序或库文件,可以轻松切换不同版本的软件。
  • 保持兼容性:在新的位置创建文件或目录后,可以在原位置创建软链接,以保持与旧路径的兼容性。

注意事项

  • 当通过软链接修改文件时,实际上是修改了链接所指向的目标文件。
  • 删除软链接不会影响目标文件,但如果删除了目标文件,软链接将指向一个不存在的路径。
  • 在处理软链接时,一些命令(如 cprsync)需要特别注意其参数,以确保按预期工作(例如,复制链接本身还是链接指向的文件)。

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 文件来自定义快捷键和行为,以适应您的工作流程。

end.后续可能会继续加上shell , git等方面的内容

posted @ 2024-05-11 20:47  Kt_yiwang  阅读(53)  评论(0)    收藏  举报