linux操作系统命令-文件系统-用户系统-网络-磁盘-进程-常用特殊字符-重定向-

news2024/11/24 16:06:51

Shell命令格式

命令提示符

  • 通常显示为 用户名@主机名:目录名 $ 或 用户名@主机名:目录名 #(对于root用户)。
  • ~ 表示当前用户的家目录。

命令格式

bash

$ 命令 [-选项] [参数1] [参数2] ...
  • $ 或 # 是命令提示符,$ 代表普通用户,# 代表root用户。
  • [-选项] 是可选的,用于修改命令的行为。
  • [参数] 是命令操作的对象或数据。

多行命令处理

  • 使用 ; 分隔可以在一行中执行多个命令。
  • 使用 \ 可以将一条命令分成多行书写,以提高可读性。但请注意,\ 后面不能有空格,且\ 仅用于命令行的末尾,以表示该命令将在下一行继续。

Linux命令:

用户系统相关

(1)su:切换用户

  • 语法:su [选项] [用户名]
  • 常见参数:
    • -:以登录shell启动新的shell(加载用户的shell环境)。
    • -c 命令:以指定用户的身份执行单个命令。
  • 示例:
    • 切换到root用户:su -
    • 以user1身份执行ls命令:su - user1 -c 'ls'
exit:退出切换(切换用户组成栈的结构) 

(2)添加用户

  • 使用useradd命令。
  • 语法:useradd [选项] 用户名
  • 示例:useradd -m -s /bin/bash newuser-m 创建家目录,-s 指定shell)

(3)删除用户

  • 使用userdel命令。
  • 语法:userdel [选项] 用户名
  • 示例:userdel -r username-r 同时删除用户的家目录)
  • 删除账号的家目录和邮箱:

(4)查询用户

  • 使用idwhoamiwhowusersfinger(可能需要安装)等命令。
  • id 用户名:显示用户的UID、GID等信息。
  • whoami:显示当前用户名称。
  • whowusers:显示当前登录的用户信息。
  • finger 用户名:显示用户的详细信息(如果系统支持)。
   查看Linux系统上的所有用户:
  1. 查看/etc/passwd文件

    这个文件包含了系统上每个用户的基本信息。你可以使用catlessmoregrep等命令来查看这个文件的内容。

    cat /etc/passwd

    或者,如果你只想查看用户名列表,可以结合使用awk命令:

    awk -F: '{ print $1}' /etc/passwd

    这里,-F:选项指定了字段分隔符为冒号(:),$1表示打印每行的第一个字段,即用户名。

  2. 使用getent命令

    getent命令用于从各种源获取条目,包括/etc/passwd文件。要列出所有用户,可以使用:

    getent passwd
 更改密码:

修改用户属性:

usermod (modify a user account)

用途: usermod 命令用于修改用户账户的各种属性。

语法: usermod [选项] 用户名

选项:

  • -l 或 --login 新用户名: 更改用户的登录名。
  • -d 或 --home 新家目录: 更改用户的家目录。
  • -m 或 --move-home: 移动用户的家目录内容到新家目录。
  • -u 或 --uid 新UID: 更改用户的UID。
  • -g 或 --gid 新GID: 更改用户的主组ID。
  • -G 或 --groups 组名列表: 更改用户的附加组列表。
  • -s 或 --shell 新shell: 更改用户的登录shell。
  • -c 或 --comment 新注释: 更改用户的注释信息。
  • -e 或 --expiredate YYYY-MM-DD: 设置用户的账户过期日期。
  • -f 或 --inactive 天数: 设置用户账户过期后多少天内可以继续登录。
  • -L 或 --lock: 锁定用户的密码。
  • -U 或 --unlock: 解锁用户的密码。
  • -aG 或 --append 组名列表: 添加用户到额外的组。
  • -Z 或 --selinux-user SELinux用户: 更改用户的SELinux用户映射。
  • -V 或 --version: 显示版本信息。
  • -h 或 --help: 显示帮助信息。

示例:

  • 更改用户的登录名:

    1usermod -l new_username old_username
  • 更改用户的家目录:

    1usermod -d /new/home/directory username
  • 更改用户的家目录,并移动家目录内容:

    1usermod -md /new/home/directory username
  • 更改用户的UID:

    1usermod -u 1001 username
  • 更改用户的主组ID:

    1usermod -g new_group_id username
  • 更改用户的附加组:

    1usermod -G group1,group2 username
  • 添加用户到额外的组:

    1usermod -aG group1,group2 username
  • 更改用户的登录shell:

    1usermod -s /bin/zsh username
  • 更改用户的注释信息:

    1usermod -c "New comment" username
  • 设置用户的账户过期日期:

    1usermod -e 2024-12-31 username
  • 设置用户账户过期后多少天内可以继续登录:

    1usermod -f 30 username
  • 锁定用户的密码:

    1usermod -L username
  • 解锁用户的密码:

    1usermod -U username

用户系统配置文件

  1. passwd

    • 用途/etc/passwd 文件存储了系统中所有用户的账号信息。
    • 格式: 每行代表一个用户,每一列由冒号分隔。
    • 列说明:
      1. 用户名 (username): 用户名。
      2. 密码占位符 (x): 密码已被加密并移至 /etc/shadow 文件。
      3. 用户ID (uid): 用户标识号。
      4. 组ID (gid): 主用户组标识号。
      5. 用户信息 (comment): 用户的描述信息。
      6. 家目录 (home_dir): 用户的家目录路径。
      7. 登录shell (shell): 用户登录时默认使用的shell。
    • 示例行:
      1root:x:0:0:root:/root:/bin/bash
      2alice:x:1000:1000:Alice User:/home/alice:/bin/bash
  2. shadow

    • 用途/etc/shadow 文件存储了系统中所有用户的加密密码以及其他密码相关的信息。
    • 格式: 每行代表一个用户,每一列由冒号分隔。
    • 列说明:
      1. 用户名 (username): 用户名。
      2. 加密密码 (password): 密码的加密形式。
      3. 上次更改时间 (last_change): 密码上一次更改的时间(以天为单位)。
      4. 最小更改周期 (min): 密码更改后的最短使用期限。
      5. 最大更改周期 (max): 密码的有效期。
      6. 警告周期 (warn): 密码到期前的警告天数。
      7. 不活动周期 (inactive): 用户账户不活动的天数。
      8. 过期周期 (expire): 账户过期后的天数。
      9. 标志 (flag): 特殊标志。
    • 示例行:
      1root:$6$hash:18759:0:99999:7:::
      2alice:$6$hash:18759:0:99999:7:::
  3. group

    • 用途/etc/group 文件存储了系统中所有组的信息。
    • 格式: 每行代表一个组,每一列由冒号分隔。
    • 列说明:
      1. 组名 (groupname): 组名。
      2. 密码占位符 (x): 组密码已被加密并通常不需要。
      3. 组ID (gid): 组标识号。
      4. 成员 (members): 组的成员列表,用逗号分隔。
    • 示例行:
      1wheel:x:10:root,alice
      2users:x:1000:alice,bob
  4. login.defs

    • 用途/etc/login.defs 文件定义了登录和密码管理的策略。
    • 内容:
      • 密码策略:
        • PASS_MAX_DAYS: 密码的最大有效期。
        • PASS_MIN_DAYS: 密码更改后的最短使用期限。
        • PASS_WARN_AGE: 密码到期前的警告天数。
      • 用户策略:
        • LOGIN_RETRIES: 登录失败的尝试次数。
        • LOGIN_TIMEOUT: 登录超时时间。
        • UMASK_DEFAULT: 默认的 umask 值。
        • UID_MIN 和 UID_MAX: 用户ID的最小和最大值。
        • GID_MIN 和 GID_MAX: 组ID的最小和最大值。
    • 示例配置:
      1PASS_MAX_DAYS 99999
      2PASS_MIN_DAYS 0
      3PASS_WARN_AGE 7
      4LOGIN_RETRIES 3
      5LOGIN_TIMEOUT 60
      6UMASK_DEFAULT 022
      7UID_MIN 1000
      8UID_MAX 60000
      9GID_MIN 1000
      10GID_MAX 60000
  5. pwconv

    • 用途pwconv 命令用于将 /etc/passwd 文件中的密码转换为加密形式,并将其移动到 /etc/shadow 文件中。
    • 语法pwconv [选项]
    • 选项:
      • -f 或 --force: 强制转换,即使 /etc/shadow 文件不存在。
      • -V 或 --version: 显示版本信息。
      • -h 或 --help: 显示帮助信息。
    • 示例:
      • 转换密码:
        1pwconv

用户组管理命令

  1. groupadd

    • 用途groupadd 命令用于创建新的用户组。
    • 语法groupadd [选项] 组名
    • 选项:
      • -g 或 --gid GID: 指定新组的GID。
      • -r 或 --system: 创建系统组。
      • -f 或 --force: 强制创建,即使GID已经存在。
      • -h 或 --help: 显示帮助信息。
      • -V 或 --version: 显示版本信息。
    • 示例:
      • 创建名为 developers 的新组:
        1groupadd developers
      • 创建名为 developers 的新组,并指定GID为 2000:
        1groupadd -g 2000 developers
  2. groupdel

    • 用途groupdel 命令用于删除用户组。
    • 语法groupdel [选项] 组名
    • 选项:
      • -h 或 --help: 显示帮助信息。
      • -V 或 --version: 显示版本信息。
    • 示例:
      • 删除名为 developers 的组:
         
        1groupdel developers
  3. gpasswd

    • 用途gpasswd 命令用于管理用户组成员。
    • 语法gpasswd [选项] 组名
    • 选项:
      • -a 或 --add 用户名: 添加用户到组。
      • -d 或 --delete 用户名: 从组中删除用户。
      • -A 或 --admin 用户名列表: 设置组管理员。
      • -M 或 --members 用户名列表: 设置组成员。
      • -h 或 --help: 显示帮助信息。
      • -V 或 --version: 显示版本信息。
    • 示例:
      • 将用户 alice 添加到 developers 组:
        1gpasswd -a alice developers
      • 从 developers 组中删除用户 alice:
        1gpasswd -d alice developers
      • 设置 developers 组的管理员为 bob:
        1gpasswd -A bob developers
      • 设置 developers 组的成员为 alice 和 bob:
        1gpasswd -M alice,bob developers
  4. groups

    • 用途groups 命令用于显示用户的组成员身份。
    • 语法groups [选项] [用户名]
    • 选项:
      • -h 或 --help: 显示帮助信息。
      • -V 或 --version: 显示版本信息。
    • 示例:
      • 显示当前用户的组成员身份:
        1groups
      • 显示用户 alice 的组成员身份:
        1groups alice

文件系统相关的:

认识文件系统

  • /:Linux文件系统的根目录,所有目录和文件的起点。
  • /bin:存放系统中最常用的可执行文件(二进制),如lscp等。
  • /boot:存放Linux内核和系统启动文件,包括启动加载器如Grub、lilo。
  • /dev:存放所有设备文件,代表系统中的硬件设备和接口。
  • /etc:存放系统的所有配置文件,如/etc/passwd存储用户账户信息,/etc/hostname存储主机名等。
  • /home:用户主目录的默认位置,每个用户都有自己的目录。
  • /initrd:存放启动时挂载的initrd.img映像文件及所需设备模块。
  • /lib:存放共享库文件,这些库文件被系统程序所使用。
  • /lost+found:用于存放fsck命令在检查文件系统时发现的零散文件。
  • /media:Ubuntu系统自动挂载外部设备(如CD-ROM、USB等)后,存放临时读入的文件。
  • /mnt:通常用于手动挂载文件系统的挂载点。
  • /opt:可选的应用软件和程序的存放目录,主要供第三方开发者使用。
  • /proc:一个虚拟文件系统,包含系统运行时的信息,如/proc/cpuinfo存储CPU信息。
  • /root:根用户(超级用户)的主目录。
  • /sbin:存放系统管理员使用的可执行文件,如rebootshutdown等。
  • /tmp:存放用户和程序的临时文件,所有用户都有读写权限。
  • /usr:用于存放系统用户直接相关的文件和目录,如应用程序和库文件。
  • /var:存放长度可变的文件,如日志文件、邮件队列等。

文件类型: 

  1. 普通文件 (Regular File)

    • 表示: -
    • 用途: 用于存储数据,如文本文件、配置文件、可执行文件等。
  2. 目录 (Directory)

    • 表示: d
    • 用途: 用于组织文件和其他目录。
  3. 符号链接 (Symbolic Link)

    • 表示: l
    • 用途: 指向另一个文件或目录的引用,类似于 Windows 中的快捷方式。
  4. 硬链接 (Hard Link)

    • 表示: - (与普通文件相同,但通过 ls -i 查看inode可以识别)
    • 用途: 指向同一文件的不同名称,多个硬链接指向同一个inode。
  5. 块设备文件 (Block Device)

    • 表示: b
    • 用途: 用于直接访问硬件设备,如硬盘驱动器。
  6. 字符设备文件 (Character Device)

    • 表示: c
    • 用途: 用于访问不需要缓冲的设备,如终端。
  7. 套接字文件 (Socket)

    • 表示: s
    • 用途: 用于进程间通信 (IPC)。
  8. 管道文件 (FIFO)

    • 表示: p
    • 用途: 用于进程间的无名管道通信。

文件和目录操作

  1. 创建

    • mkdir [选项] 目录: 创建目录。
      • 示例: mkdir -p /path/to/new/directory
      • -p: 如果父目录不存在也一并创建。
    • touch [文件]: 创建空文件或更新文件的时间戳。
      • 示例: touch newfile.txt
    • mkfifo [文件]: 创建一个命名管道。
      • 示例: mkfifo mypipe
  2. 删除

    • rm [选项] 文件: 删除文件。
      • 示例: rm file.txt
      • -i: 交互模式,逐一确认删除。
      • -f: 强制删除,忽略不存在的文件,不提示。
      • -r 或 -R: 递归删除目录及其内容。
        • 示例: rm -rf directory
    • rmdir [选项] 目录: 删除空目录。
      • 示例: rmdir emptydir
      • -p: 递归删除目录。
  3. 复制

    • cp [选项] 源 目标: 复制文件或目录。
      • 示例: cp file1.txt file2.txt
      • -r 或 -R: 递归复制目录。
        • 示例: cp -r source_directory target_directory
      • -i: 交互模式,在覆盖前询问用户。
        • 示例: cp -i file1.txt file2.txt
      • -p: 保留文件的权限、时间戳等元数据。
        • 示例: cp -p file1.txt file2.txt
  4. 移动/重命名

    • mv [选项] 源 目标: 移动文件或目录,也可以用于重命名。
      • 示例: mv oldfile.txt newfile.txt
      • -i: 交互模式,在覆盖前询问用户。
        • 示例: mv -i file1.txt file2.txt
  5. 查看

    • 文件内容:
      • cat [文件]: 显示文件内容。
        • 示例: cat file.txt
      • head [选项] [文件]: 显示文件的前几行。
        • 示例: head -n 5 file.txt
        • -n N: 显示前N行。
      • tail [选项] [文件]: 显示文件的最后几行。
        • 示例: tail -n 5 file.txt
        • -n N: 显示最后N行。
      • less [文件]: 分页查看文件内容。
        • 示例: less largefile.txt
      • more [文件]: 传统分页查看文件内容。
        • 示例: more largefile.txt
    • 目录内容:
      • ls [选项] [目录]: 列出目录内容。
        • 示例: ls -al /path/to/directory
        • -a: 显示隐藏文件。
        • -l: 长格式列出。
        • -h: 人性化输出文件大小。
        • -t: 按修改时间排序。
        • -r: 反向排序。
      • ll: 等同于 ls -l.
        • 示例: ll
      • ls -d [目录]: 列出目录本身的信息而非其内容。
        • 示例: ls -d /path/to/directory
    • 切换工作目录:
      • cd [路径]: 切换当前工作目录。
        • 示例: cd /path/to/directory
        • ~: 用户家目录。
          • 示例: cd ~
        • -: 上一个工作目录。
          • 示例: cd -
        • ..: 上一级目录。
          • 示例: cd ..
  6. 给文件添加内容

    • echo "文本" >> 文件: 追加文本到文件末尾。
      • 示例: echo "Hello, world!" >> file.txt
    • cat > 文件: 创建新文件或清空已有文件,并从标准输入读取内容。
      • 示例:
        1cat > newfile.txt
        2Hello, this is a new file.
        3^D
  7. 改变文件权限

    • chmod [选项] [模式|数字] 文件: 改变文件权限。
      • 示例: chmod u+x file.txt
      • u: 用户权限。
      • g: 组权限。
      • o: 其他用户权限。
      • a: 所有用户。
      • +/-/: 增加/减少/设置权限。
      • rwx: 读写执行权限。
      • 数字: 用八进制数字表示权限。
        • 示例: chmod 755 file.txt
  8. 链接文件

    • ln [选项] 源 目标: 创建硬链接。
      • 示例: ln file.txt link_file.txt
      • -s: 创建符号链接(软链接)。
        • 示例: ln -s file.txt soft_link_file.txt
  9. 压缩与解压

    • gzip [选项] 文件: 使用 gzip 算法压缩文件。
      • 示例: gzip file.txt
    • bzip2 [选项] 文件: 使用 bzip2 算法压缩文件。
      • 示例: bzip2 file.txt
    • zip [选项] 归档文件 文件: 使用 zip 算法压缩文件。
      • 示例: zip archive.zip file.txt
  10. 归档与释放

    • tar [选项]: 打包或解包文件。
      • 示例: tar czvf archive.tar.gz file1.txt file2.txt
      • c: 创建一个新的归档文件。
      • r: 向已存在的归档文件中添加文件。
        • 示例: tar rvf archive.tar file3.txt
      • x: 解包文件。
        • 示例: tar xvf archive.tar
      • f: 指定归档文件的名称。
      • v: 显示处理过程中的详细信息。
      • z: 使用 gzip 对归档文件进行压缩或解压缩。
        • 示例: tar cvzf archive.tar.gz file.txt
  11. 比较文件的不同

    • diff [选项] 文件1 文件2: 显示两个文件之间的差异。
      • 示例: diff file1.txt file2.txt
      • -r: 递归比较目录中的文件。
        • 示例: diff -r dir1 dir2
  12. 查看文件属性信息

    • file [文件]: 显示文件的类型和可能的编码。
      • 示例: file file.txt
  13. 查看文件的统计信息

    • wc [选项] [文件]: 显示文件的行数、单词数和字符数。
      • 示例: wc file.txt
      • -l: 只显示行数。
        • 示例: wc -l file.txt
      • -w: 只显示单词数。
        • 示例: wc -w file.txt
      • -m 或 -c: 只显示字符数。
        • 示例: wc -m file.txt
  14. 在文件中查找字符串

    • grep [选项] "模式" 文件: 在文件中搜索匹配模式的行。
      • 示例: grep "hello" file.txt
      • -r: 递归搜索目录中的文件。
        • 示例: grep -r "hello" /path/to/directory
  15. 文件查找命令

    • locate
      • 用途locate 命令通过查询预先构建的数据库来快速查找文件系统中的文件。
      • 原理locate 命令通过查询一个预先构建的数据库来快速查找文件系统中的文件。这个数据库通常通过定期运行 updatedb 命令来更新。
      • 特点: 查找速度快,但无法查找到最近添加且尚未更新到数据库中的文件。
      • 用法locate [选项] 文件名
      • 选项:
        • -i: 忽略大小写。
        • -r: 使用正则表达式。
        • -b: 使用基本正则表达式。
        • -d 数据库: 指定数据库文件。
      • 示例:
        • 查找名为 example.txt 的文件:
          1locate example.txt
        • 查找包含 example 的文件,忽略大小写:
          1locate -i example
    • which
      • 用途which 命令用于查找并显示给定命令的绝对路径,确保你调用的是正确的程序。
      • 用法which [选项] 命令名
      • 选项:
        • -a: 显示所有匹配项,即使它们位于不同的目录中。
        • -m: 显示匹配项的数量。
      • 示例:
        • 查找 ls 命令的绝对路径:
          1which ls
    • tree
      • 用途tree 命令以树状图列出目录的内容,包括子目录和文件。
      • 用法tree [选项] 目录名
      • 选项:
        • -L 限制目录显示深度。
        • -a 显示所有文件和目录(包括以.开头的隐藏文件)。
        • -d 只列出目录。
        • -h 人性化输出文件大小。
        • -H 使用符号链接的目标作为基点。
        • -n 不自动排序。
        • -p 显示文件权限。
        • -u 显示最后一次访问时间。
        • -t 显示最后一次修改时间。
        • -f 显示完整路径。
      • 示例:
        • 以树状图形式列出当前目录的内容:
          1tree .
        • 限制目录显示深度为 2:
          1tree -L 2 .
        • 显示所有文件和目录(包括隐藏文件):
          1tree -a .
    • find
      • 用途find 命令在目录树中搜索文件,并执行指定的操作。它非常灵活,可以基于文件名、类型、大小、权限等多种条件进行搜索。
      • 基本语法find [起始目录] [查找条件] [操作]
      • 查找条件:
        • -name: 根据文件名查找。
          • 示例: find /path/to/start -name "*.txt"
        • -type: 根据文件类型查找(f 代表普通文件,l 代表符号链接)。
          • 示例: find /path/to/start -type f
        • -user-group-uid-gid: 根据文件的所有者或组来查找。
          • 示例: find /path/to/start -user alice
        • -size: 根据文件大小查找。单位可以是 c(字节)、k(千字节)、M(兆字节)等。
          • 示例: find /path/to/start -size +10M
        • -empty: 查找空文件或空目录。
          • 示例: find /path/to/start -empty
        • -perm: 根据文件权限查找。
          • 示例: find /path/to/start -perm 755
        • -newer: 查找比参考文件更新的文件。
          • 示例: find /path/to/start -newer /path/to/reference/file
      • 组合条件:
        • -a: 逻辑与(AND),默认条件之间就是逻辑与关系。
        • -o: 逻辑或(OR)。
        • !: 逻辑非(NOT)。
      • 示例:
        • 查找所有 .txt 文件:
          1find /path/to/start -name "*.txt"
        • 查找大于 1MB 的 .txt 文件:
          1find /path/to/start -name "*.txt" -size +1M
        • 查找由 alice 拥有的 .txt 文件:
          1find /path/to/start -name "*.txt" -user alice
        • 查找所有 .txt 文件或 .log 文件:
          1find /path/to/start \( -name "*.txt" -o -name "*.log" \)
        • 查找不属于 alice 的 .txt 文件:
          1find /path/to/start -name "*.txt" ! -user alice

特别说明:

chown (change owner)修改文件或目录的所有者和所属组

用途: 更改文件或目录的所有者和所属组。

语法: chown [选项] [所有者][.[所属组]] 文件或目录

选项:

  • -R 或 --recursive: 递归地更改目录及其子目录内的文件所有权。
  • -h 或 --no-dereference: 只更改符号链接的所有权,而不是链接指向的实际文件。
  • -v 或 --verbose: 显示更改所有权的每个文件或目录。
  • -f 或 --silent: 抑制错误信息的输出。
  • -c 或 --changes: 仅报告更改了所有权的文件。
  • -L 或 --dereference-command-line-symbolic-links-to-directories: 当命令行参数中包含符号链接时,递归地更改它们所指向的目录的所有权。
  • -X 或 --preserve-root: 如果当前用户不是超级用户,则禁止将根目录的所有权更改为其他用户。
  • --reference=FILE: 将文件或目录的所有权设置为参考文件的所有权。

示例:

  • 更改单个文件的所有者为 user1:

    1chown user1 file.txt
  • 更改单个文件的所有者为 user1 并所属组为 group1:

    1chown user1.group1 file.txt
  • 递归地更改目录及其所有子目录和文件的所有者为 user1:

    1chown -R user1 directory/
  • 递归地更改目录及其所有子目录和文件的所有者为 user1 并所属组为 group1:

    1chown -R user1.group1 directory/
  • 显示递归更改所有权的过程:

    1chown -Rv user1 group1 directory/
  • 更改符号链接的所有权:

    1chown -h user1 symlink.txt

chgrp (change group)修改文件或目录的所属组

用途: 更改文件或目录的所属组。

语法: chgrp [选项] 组 文件或目录

选项:

  • -R 或 --recursive: 递归地更改目录及其子目录内的文件所属组。
  • -h 或 --no-dereference: 只更改符号链接的所属组,而不是链接指向的实际文件。
  • -v 或 --verbose: 显示更改所属组的每个文件或目录。
  • -f 或 --silent: 抑制错误信息的输出。
  • -c 或 --changes: 仅报告更改了所属组的文件。
  • -L 或 --dereference-command-line-symbolic-links-to-directories: 当命令行参数中包含符号链接时,递归地更改它们所指向的目录的所属组。
  • -X 或 --preserve-root: 如果当前用户不是超级用户,则禁止将根目录的所属组更改为其他组。

示例:

  • 更改单个文件的所属组为 group1:

    1chgrp group1 file.txt
  • 递归地更改目录及其所有子目录和文件的所属组为 group1:

    1chgrp -R group1 directory/
  • 显示递归更改所属组的过程:

    1chgrp -Rv group1 directory/
  • 更改符号链接的所属组:

    1chgrp -h group1 symlink.txt

进程管理命令

  1. top

    • top: 显示系统当前运行的所有进程的状态,并实时更新。
      • -b: 批处理模式,适合脚本调用。
      • -d seconds: 设置更新间隔秒数。
      • -n count: 更新次数,通常用于批处理模式。
      • -p pid: 显示指定PID的进程。
      • -q: 快速模式,更新频率更快,不等待数据完全更新。
      • -S: 累计模式,显示累计CPU时间。
      • -s: 安全模式,禁用键盘输入。
      • -c: 显示完整的命令行。
      • -C: 不将子进程的CPU时间累加到父进程中。
      • -P: 显示每个线程的信息。
      • -o field[,field...]: 指定排序字段,多个字段用逗号分隔。
      • -O field[,field...]: 类似于 -o,但只对当前窗口有效。
      • -s: 设置安全模式,禁用键盘输入。
      • -m bytes: 设置最大显示内存大小。
      • -p pid: 显示特定PID的进程。
      • -u username: 显示特定用户的进程。
    • 示例:
      1top -b -n 1 | head -n 17 # 批处理模式下获取一次系统状态,并仅输出前17行
      2top -d 5 # 更新间隔为5秒
      3top -p 1234 # 仅显示PID为1234的进程
      4top -c # 显示完整的命令行
      5top -S # 累计模式
  2. ps

    • ps [选项]: 显示当前系统的进程快照。
      • -A: 显示所有进程。
      • -a: 显示终端中运行的所有进程。
      • -u: 显示更详细的用户信息。
      • -x: 显示没有控制终端的进程。
      • -e: 显示所有进程。
      • -f: 显示完整信息。
      • -h: 人性化输出。
      • -j: 作业控制格式。
      • -w: 宽输出。
      • -o format: 自定义输出格式。
      • -C command: 显示指定命令的进程。
      • -p pid: 显示指定PID的进程。
    • 示例:
      1ps aux # 显示所有进程
      2ps -ef | grep ssh # 查找包含ssh关键字的进程
      3ps -o pid,ppid,command -C nginx # 显示nginx进程的PID、PPID和命令
      4ps -p 1234 -o %cpu,%mem # 显示PID为1234的进程的CPU和内存使用率
  3. pstree

    • pstree [选项]: 以树形结构显示进程。
      • -p: 显示PID。
      • -u: 显示用户。
      • -s: 显示会话ID。
      • -l: 显示长格式命令行。
      • -a: 显示所有进程。
      • -h: 显示帮助信息。
      • -n: 不解析命令名。
      • -c: 显示命令名。
      • -p pid: 从指定PID开始显示。
    • 示例:
      1pstree # 显示当前用户的进程树
      2pstree -p # 显示PID
      3pstree -a # 显示所有进程
      4pstree -p 1234 # 从PID为1234的进程开始显示
  4. kill

    • kill [选项] PID: 发送信号给指定PID的进程。
      • -signal: 发送特定信号。
      • -l: 列出所有可用信号。
      • -0: 检查进程是否存在。
      • -CONT: 继续暂停的进程。
      • -STOP: 暂停进程。
      • -TERM: 终止进程。
      • -KILL: 强制终止进程。
      • -HUP: 重启进程。
      • -INT: 中断进程。
      • -QUIT: 退出进程。
    • 示例:
      1kill -9 1234 # 强制终止PID为1234的进程
      2killall -9 ssh # 终止所有名为ssh的进程
      3kill -l # 列出所有信号
      4kill -0 1234 # 检查PID为1234的进程是否存在
      5kill -SIGTERM 1234 # 使用SIGTERM信号终止PID为1234的进程
      6kill -SIGCONT 1234 # 继续PID为1234的暂停进程

磁盘相关命令:

  1. fdisk

    • 用途fdisk 是一个用于创建、显示、修改和删除分区表的命令。
    • 语法fdisk [选项] 设备
    • 选项:
      • -l 或 --list: 显示所有磁盘的分区表。
      • -c 或 --convert: 显示分区的单位转换。
      • -u 或 --units: 设置分区单位。
      • -b 或 --sectorsize: 设置扇区大小。
      • -v 或 --version: 显示版本信息。
      • -u 或 --units: 设置使用的单位(如 sectors, cylinders)。
      • -b 或 --sectorsize: 设置每个扇区的大小。
      • -l 或 --list: 列出分区表。
    • 命令:
      • p: 显示当前分区表。
      • n: 新建分区。
      • d: 删除分区。
      • m: 移动分区。
      • t: 改变分区类型。
      • w: 写入分区表并退出。
      • q: 退出而不保存更改。
    • 示例:
      • 列出所有磁盘的分区表:
        1fdisk -l
      • 创建新的分区表:
        1sudo fdisk /dev/sda
        接下来,按照提示进行操作:
        • 输入 n 创建新分区。
        • 输入 p 创建主分区。
        • 输入起始扇区(默认为第一扇区)。
        • 输入结束扇区(或按回车键接受默认值)。
        • 输入 w 保存分区表并退出。
  2. mount

    • 用途mount 用于挂载文件系统。
    • 语法mount [选项] 设备 挂载点
    • 选项:
      • -t 或 --types: 指定文件系统类型。
      • -o 或 --options: 指定挂载选项。
      • -a 或 --all: 挂载/etc/fstab文件中的所有条目。
      • -r 或 --read-only: 以只读方式挂载。
      • -w 或 --rw: 以读写方式挂载。
      • -n 或 --no-mtab: 不更新/proc/mounts文件。
      • -f 或 --fake: 创建一个虚拟挂载点。
      • -u 或 --update: 更新已存在的挂载点。
      • -l 或 --list: 列出所有已挂载的文件系统。
      • -v 或 --verbose: 显示详细信息。
    • 示例:
      • 挂载一个分区:
        1sudo mount /dev/sda1 /mnt/newdrive
      • 以只读方式挂载一个分区:
        1sudo mount -o ro /dev/sda1 /mnt/newdrive
      • 挂载一个ext4类型的分区:
        1sudo mount -t ext4 /dev/sda1 /mnt/newdrive
      • 挂载所有分区(根据/etc/fstab文件):
        1sudo mount -a
      • 列出所有已挂载的文件系统:
        1mount
  1. umount

    • 用途umount 用于卸载已挂载的文件系统。
    • 语法umount [选项] 挂载点 | 设备
    • 选项:
      • -l 或 --lazy: 允许卸载正在被使用的文件系统。
      • -f 或 --force: 强制卸载。
      • -n 或 --no-mtab: 不更新/proc/mounts文件。
      • -v 或 --verbose: 显示详细信息。
    • 示例:
      • 卸载一个分区:
        1sudo umount /mnt/newdrive
      • 强制卸载一个分区:
        1sudo umount -f /mnt/newdrive
  2. df

    • 用途df 用于显示磁盘空间使用情况。
    • 语法df [选项]
    • 选项:
      • -h 或 --human-readable: 以易于阅读的方式显示文件大小(KB, MB, GB)。
      • -H 或 --si: 类似于 -h 选项,但是使用 1000 字节的倍数。
      • -T 或 --print-type: 显示文件系统的类型。
      • -t 或 --type=TYPE: 只显示指定类型的文件系统。
      • -x 或 --exclude-type=TYPE: 排除指定类型的文件系统。
      • -P 或 --portability: 兼容旧版本 df 的输出格式。
      • -a 或 --all: 包括临时文件系统。
    • 示例:
      • 显示磁盘使用情况:
        1df -h
      • 显示所有文件系统的使用情况:
        1df -a
  3. du

    • 用途du 用于估计每个文件或目录占用的磁盘空间。
    • 语法du [选项] 文件或目录
    • 选项:
      • -a 或 --all: 显示所有文件的磁盘使用情况。
      • -h 或 --human-readable: 以易于阅读的方式显示文件大小(KB, MB, GB)。
      • -H 或 --si: 类似于 -h 选项,但是使用 1000 字节的倍数。
      • -s 或 --summarize: 显示总计。
      • -S 或 --separate-dirs: 显示每个目录的总大小。
      • -x 或 --one-file-system: 跳过其它文件系统。
      • -L 或 --follow: 跟随符号链接。
      • -k 或 --kilobytes: 以 KB 为单位显示大小。
      • -m 或 --megabytes: 以 MB 为单位显示大小。
    • 示例:
      • 显示当前目录及其子目录的磁盘使用情况:
        1du -sh .
      • 显示所有文件的磁盘使用情况:
        1du -ah
      • 显示当前目录及其子目录的总大小:
        1du -sch .

其他相关命令:

echo (echo text to standard output)

用途: echo 命令用于将文本输出到标准输出。

语法: echo [选项] [文本]

选项:

  • -n: 不打印末尾的新行。
  • -e: 解释转义字符(如 \n\t)。
  • -E: 不解释转义字符。
  • --help: 显示帮助信息。
  • --version: 显示版本信息。

示例:

  • 输出一行文本,不带换行符:

    1echo -n "Hello, world!"
  • 输出带有换行符的文本:

    1echo "Hello,\nworld!"

shutdown (halt or reboot the system)

用途: shutdown 命令用于关闭或重启系统。

语法: shutdown [选项] [时间] [消息]

选项:

  • -h: 关机。
  • -r: 重启。
  • -k: 发送警告信息,但不执行关机或重启。
  • -c: 取消已计划的关机或重启。
  • -P: 在关机时关闭电源。
  • -t seconds: 设置延迟秒数。
  • --help: 显示帮助信息。
  • --version: 显示版本信息。

示例:

  • 在5分钟后关机:

    1shutdown -h +5
  • 立即重启:

    1shutdown -r now

history (list or save the commands you have used)

用途: history 命令用于列出或保存您使用过的命令历史记录。

语法: history [选项]

选项:

  • -c: 清除历史记录。
  • -d pos: 删除指定位置的历史记录项。
  • -w: 将历史记录写入文件。
  • -a: 将新命令添加到历史记录文件。
  • -r: 从文件中读取历史记录。
  • -n: 显示历史记录的编号。
  • -p: 将历史记录项加入到命令行。
  • -s: 将命令添加到历史记录,但不执行。
  • --help: 显示帮助信息。
  • --version: 显示版本信息。

示例:

  • 列出历史记录:

    1history
  • 清除历史记录:

    1history -c

date (display or set the system date and time)

用途: date 命令用于显示或设置系统日期和时间。

语法: date [选项] [时间格式]

选项:

  • -u: 使用协调世界时(UTC)。
  • -s: 设置日期和时间。
  • --set: 设置日期和时间。
  • --help: 显示帮助信息。
  • --version: 显示版本信息。

示例:

  • 显示当前日期和时间:

    1date
  • 设置日期和时间:

    1date -s "2023-09-01 12:00:00"

sleep (suspend execution for a given number of seconds)

用途: sleep 命令用于使进程暂停执行一定的时间。

语法: sleep [选项] 秒数

选项:

  • --help: 显示帮助信息。
  • --version: 显示版本信息。

示例:

  • 暂停执行5秒:
    1sleep 5

env (run a command with an environment)

用途: env 命令用于运行一个命令,并可以指定命令的环境变量。

语法: env [选项] [变量=值]... [命令] [参数]

选项:

  • -i: 忽略所有环境变量。
  • --help: 显示帮助信息。
  • --version: 显示版本信息。

示例:

  • 显示所有环境变量:

    1env
  • 运行命令并设置环境变量:

    1env NEW_VAR=value command arg

环境变量管理

用途: 环境变量是在操作系统中定义的变量,它们可以被 shell 和运行中的程序使用。

删除环境变量:

  • 临时删除:

    • 在当前 shell 会话中删除环境变量:
      1unset VAR_NAME
  • 永久删除:

    • 编辑 .bashrc 或 .profile 文件,删除相应的 export 行。

临时添加环境变量:

  • 在当前 shell 会话中添加环境变量:

    1export VAR_NAME=value
  • 使用 env 命令临时设置环境变量:

    1env VAR_NAME=value command arg

永久添加环境变量:

  • 在 .bashrc 或 .profile 文件中添加环境变量:
    1nano ~/.bashrc
    然后添加以下行:
    1export VAR_NAME=value
    保存文件后,运行:
    1source ~/.bashrc

软件包管理工具

dpkg (Debian package manager)

用途: dpkg 是 Debian 和基于 Debian 的发行版(如 Ubuntu)的基础软件包管理工具。

语法: dpkg [选项] [命令] [参数]

命令:

  • --configure: 配置未完成安装的软件包。
  • --get-selections: 显示软件包的选择状态。
  • --set-selections: 设置软件包的选择状态。
  • --verify: 验证已安装的软件包。
  • --info: 显示软件包信息。
  • --contents: 显示软件包的内容。
  • --status: 显示软件包的状态。
  • --list: 列出已安装的软件包。
  • --purge: 卸载软件包并清除其配置文件。
  • --remove: 卸载软件包。
  • --install: 安装或升级软件包。
  • --reconfigure: 重新配置软件包。

选项:

  • -i 或 --install: 安装或升级软件包。
  • -r 或 --remove: 卸载软件包。
  • -P 或 --purge: 卸载软件包并清除配置文件。
  • -L 或 --listfiles: 显示软件包安装的文件列表。
  • -l 或 --list: 列出已安装的软件包。
  • -S 或 --search: 搜索文件属于哪个软件包。
  • -s 或 --status: 显示软件包的状态。
  • -c 或 --contents: 显示软件包的内容。
  • -I 或 --show: 显示软件包信息。
  • -V 或 --verify: 验证已安装的软件包。
  • -D 或 --debug: 设置调试级别。
  • -h 或 --help: 显示帮助信息。
  • -V 或 --version: 显示版本信息。

示例:

  • 安装软件包:

    1dpkg -i package.deb
  • 卸载软件包:

    1dpkg -r package-name
  • 显示软件包的状态:

    1dpkg -s package-name
  • 搜索文件属于哪个软件包:

    1dpkg -S /path/to/file
apt-get (Advanced Package Tool)

用途: apt-get 是基于 Debian 的发行版中的高级软件包管理工具,用于安装、卸载、更新软件包等操作。

语法: apt-get [选项] [子命令] [参数]

子命令:

  • update: 更新软件包列表。
  • upgrade: 升级已安装的软件包。
  • dist-upgrade: 升级系统版本。
  • install: 安装软件包。
  • remove: 卸载软件包。
  • purge: 卸载软件包并清除配置文件。
  • autoremove: 卸载不再需要的依赖软件包。
  • clean: 清除下载的软件包缓存。
  • source: 安装源代码包。
  • build-dep: 安装构建依赖。

子选项:

  • -y: 自动回答 yes。
  • -f: 修复损坏的依赖关系。
  • -d: 下载但不安装。
  • -o: 设置APT配置选项。
  • -s 或 --simulate: 模拟操作。
  • -h 或 --help: 显示帮助信息。
  • -V 或 --version: 显示版本信息。

示例:

  • 更新软件包列表:

    1sudo apt-get update
  • 升级已安装的软件包:

    1sudo apt-get upgrade
  • 安装软件包:

    1sudo apt-get install package-name
  • 卸载软件包:

    1sudo apt-get remove package-name
  • 卸载软件包并清除配置文件:

    1sudo apt-get purge package-name
  • 清除下载的软件包缓存:

    1sudo apt-get clean

网络相关命令

ping (test Internet connectivity)

用途: ping 命令用于测试与另一台计算机的网络连接是否可达。

语法: ping [选项] 目标地址

选项:

  • -c 或 --count 数量: 发送指定数量的ICMP Echo Request报文。
  • -i 或 --interval 时间: 发送ICMP Echo Request报文之间的间隔时间(以秒为单位)。
  • -t 或 --time-out 时间: 设置超时时间(以毫秒为单位)。
  • -W 或 --timeout 时间: 设置等待每次回复的超时时间(以秒为单位)。
  • -s 或 --size 大小: 设置ICMP Echo Request报文的大小(以字节为单位)。
  • -q 或 --quiet: 减少输出信息。
  • -v 或 --verbose: 增加输出信息。
  • -h 或 --help: 显示帮助信息。
  • -V 或 --version: 显示版本信息。

示例:

  • 测试与 www.example.com 的连接:

    1ping www.example.com
  • 发送 5 个 ICMP Echo Request 报文:

    1ping -c 5 www.example.com
  • 每次发送报文之间间隔 2 秒:

    1ping -i 2 www.example.com
  • 设置超时时间为 500 毫秒:

    1ping -W 0.5 www.example.com

ifconfig (configure network interfaces)

用途: ifconfig 命令用于配置和显示网络接口的信息。

语法: ifconfig [选项] [网络接口]

选项:

  • -a: 显示所有网络接口的信息。
  • -s: 以表格形式显示网络接口统计信息。
  • up: 启用网络接口。
  • down: 关闭网络接口。
  • promisc: 设置网络接口为混杂模式。
  • arp: 启用网络接口的 ARP 功能。
  • noarp: 禁用网络接口的 ARP 功能。
  • mtu MTU: 设置网络接口的最大传输单元。
  • inet IP: 设置网络接口的 IPv4 地址。
  • netmask MASK: 设置网络接口的子网掩码。
  • broadcast BROADCAST: 设置网络接口的广播地址。
  • ether MAC: 设置网络接口的 MAC 地址。
  • alias IP: 设置网络接口的别名地址。
  • -h 或 --help: 显示帮助信息。
  • -V 或 --version: 显示版本信息。

示例:

  • 显示所有网络接口的信息:

    1ifconfig -a
  • 启用网络接口 eth0:

    1ifconfig eth0 up
  • 关闭网络接口 eth0:

    1ifconfig eth0 down
  • 设置 eth0 的 IPv4 地址为 192.168.1.100:

    1ifconfig eth0 inet 192.168.1.100
  • 设置 eth0 的子网掩码为 255.255.255.0:

    1ifconfig eth0 netmask 255.255.255.0
  • 设置 eth0 的广播地址为 192.168.1.255:

    1ifconfig eth0 broadcast 192.168.1.255

常用特殊字符

  1. 通配符 (Wildcard)

    • * (星号)

      • 用途: 代表任意数量的任意字符。
      • 示例:
        1ls *.txt
        这将列出当前目录下所有扩展名为 .txt 的文件。
    • ? (问号)

      • 用途: 代表单个任意字符。
      • 示例:
        1ls a?.txt
        这将列出当前目录下所有以 a 开头,接着是一个任意字符,然后是 .txt 扩展名的文件。
    • [...] (方括号)

      • 用途: 代表方括号内的任何一个字符。
      • 示例:
        1ls a[bcd].txt
        这将列出当前目录下所有以 a 开头,接着是 bc 或 d,然后是 .txt 扩展名的文件。
    • [^...] (方括号加脱字符)

      • 用途: 代表除了方括号内的任何字符。
      • 示例:
        1ls a[^bcd].txt
        这将列出当前目录下所有以 a 开头,接着不是 bc 或 d 的任意字符,然后是 .txt 扩展名的文件。
    • {n...m} (花括号)

      • 用途: 代表一系列字符串的组合。
      • 示例:
        1ls {file1,file2,file3}.txt
        这将列出当前目录下的 file1.txtfile2.txt 和 file3.txt
  2. 选择 (Selection)

    • | (竖线)

      • 用途: 用于管道,将一个命令的输出作为另一个命令的输入。
      • 示例:
        1ls *.txt | grep "example"
        这将列出当前目录下所有 .txt 文件,并通过 grep 命令筛选包含 "example" 的行。
  3. 转义 (Escape)

    • `` (反引号)

      • 用途: 用于嵌入命令的输出。
      • 示例:
        1echo "Today is `date +%Y-%m-%d`."
        这将输出今天的日期,格式为 YYYY-MM-DD
  4. 重定向 (Redirection)

    • > (大于号)

      • 用途: 用于重定向命令的输出到文件,覆盖原有文件内容。
      • 示例:
        1ls *.txt > file_list.txt
        这将把当前目录下所有 .txt 文件的列表写入 file_list.txt 文件中。
    • >> (两个大于号)

      • 用途: 用于追加重定向命令的输出到文件,不会覆盖原有文件内容。
      • 示例:
        1ls *.txt >> file_list.txt
        这将把当前目录下所有 .txt 文件的列表追加到 file_list.txt 文件的末尾。
    • < (小于号)

      • 用途: 用于从文件读取输入,代替标准输入。
      • 示例:
        1cat < input.txt
        这将输出 input.txt 文件的内容。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2058394.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go操作Redis基础方法小全

前言 在前一篇文章中&#xff0c;我们聊了Go操作Redis安装和使用&#xff0c;接下来这篇内容&#xff0c;就简单说一下&#xff0c;Go中操作Redis基础方法&#xff0c;通常是通过第三方库来实现的&#xff0c;如go-redis/redis&#xff08;现在可能已经是v9或更高版本&#xf…

宋红康JVM调优思维导图

文章目录 1. 概述2. JVM监控及诊断命令-命令行篇3. JVM监控及诊断工具-GUI篇4. JVM运行时参数5. 分析GC日志 课程地址 1. 概述 2. JVM监控及诊断命令-命令行篇 3. JVM监控及诊断工具-GUI篇 4. JVM运行时参数 5. 分析GC日志

ubuntu安装minio

# 下载MinIO的可执行文件 curl -O https://dl.min.io/server/minio/release/linux-amd64/minio # 添加执行权限 chmod x minio # 运行MinIO (需要先创建存储数据和存储存储桶的目录) nohup ./minio server /home/lighthouse/minioDir/data /home/lighthouse/minioDir/bucke…

[JAVA]创建多线程的三种方式与区别

继承Thread类创建线程实现Runnable接口创建线程Callable接口创建线程 要学习创建线程&#xff0c;我们要通过代码来演示&#xff0c;这里我们可以通过实现以下参赛者跑步的场景来展开。 模拟以下场景 模拟10秒短跑程序 假设&#xff0c;这里有三名参赛者&#xff0c;十秒钟时…

使用对比!SLS 数据加工 SPL 与旧版 DSL 场景对照

作者&#xff1a;灵圣 概述 如前一篇《SLS 数据加工全面升级&#xff0c;集成 SPL 语法》所述&#xff0c;SLS 数据加工集成了 SLS 数据处理语法 SPL。与旧版本数据加工 DSL 相比&#xff0c;SPL 在处理非结构化数据的场景中&#xff0c;其语法简洁度上有很多提升&#xff0c…

监控台操作台空间设计如何提升工作环境

在现代化办公环境中&#xff0c;监控台与操作台不仅是技术监控与操作的核心区域&#xff0c;更是工作效率与团队协作的关键所在。优化其空间设计&#xff0c;不仅能显著提升工作环境的质量&#xff0c;还能激发员工的工作热情与创造力。 首先&#xff0c;人体工程学设计是提升监…

C++ | Leetcode C++题解之第352题将数据流变为多个不想交区间

题目&#xff1a; 题解&#xff1a; class SummaryRanges { private:map<int, int> intervals;public:SummaryRanges() {}void addNum(int val) {// 找到 l1 最小的且满足 l1 > val 的区间 interval1 [l1, r1]// 如果不存在这样的区间&#xff0c;interval1 为尾迭代…

Ubuntu 中GCC交叉编译工具链安装

​ Ubuntu 自带的 gcc 编译器是针对 X86 架构的&#xff0c;如果要编译的是 ARM 架构的代码&#xff0c;就需要一个在 X86 架构的 PC 上运行&#xff0c;可以编译 ARM 架 构代码的 GCC 编译器&#xff0c;这个编译器就叫做交叉编译器&#xff0c;总结一下交叉编译器就是&#x…

基于springboot的宠物领养与丢失寻找信息平台-计算机毕设 附源码 14772

基于springboot的宠物领养与丢失寻找信息平台 摘 要 本文介绍了一个基于Spring Boot框架的宠物领养与丢失寻找信息平台的设计与实现。该平台旨在解决宠物领养和丢失寻找过程中的信息不对称和效率低下问题&#xff0c;为宠物主人、领养者提供一个便捷、高效的交互平台。 平台采用…

C++观察者模式Observer

组件协作 –(都是晚绑定的&#xff09; ----观察者模式 为某些对象建立一种通知依赖的关系&#xff0c; 只要这个对象状态发生改变&#xff0c;观察者对象都能得到通知。 但是依赖关系要松耦合&#xff0c;不要太依赖。 eg&#xff1a;做一个文件分割器&#xff0c;需要一个…

android13布局查看工具 无源码查看布局 在线查找ui布局id

总纲 android13 rom 开发总纲说明 目录 1.前言 2.工具介绍 2.1工具1 2.2工具2 2.3工具3 2.4工具4 3.彩蛋 1.前言 Android 13提供了一些工具来帮助开发人员查看和优化应用的布局。方便的让我们找到具体应用的布局文件等信息。 2.工具介绍 2.1工具1 老版本DDMS&#x…

【流媒体】RTMPDump—RTMP_Connect函数(握手、网络连接)

目录 1. RTMP_Connect函数1.1 网络层连接&#xff08;RTMP_Connect0&#xff09;1.2 RTMP连接&#xff08;RTMP_Connect1&#xff09;1.2.1 握手&#xff08;HandShake&#xff09;1.2.2 RTMP的NetConnection&#xff08;SendConnectPacket&#xff09; 2.小结 RTMP协议相关&am…

实际开发中的模块化开发 - 模块间通讯(以直播间为例)

实际开发中的模块化开发 - 模块管理&#xff08;以直播间为例&#xff09;-CSDN博客 引言 在之前的博客中&#xff0c;我们讨论了模块化开发的概念、使用场景及其优势&#xff0c;并通过简单的案例实现了一个基础的模块化结构。我们创建了用户卡片模块和礼物展示模块&#xf…

同样的东西,京东贵多了,为啥还有人选择京东呢?

现在很少有商品&#xff0c;只在一个平台上出售了&#xff0c;几乎哪个平台都能买到。 那为什么京东贵多了&#xff0c;还有人去京东买&#xff1f; 小编就以自己的实际体验来说一说。 先看个案例&#xff1a; 小编去年在京东自营店买了一块西数的机械硬盘&#xff0c;用了…

PHP网上花店管理系统—计算机毕业设计源码无偿分享可私信21170

目 录 摘要 1 绪论 1.1研究背景 1.2项目背景 1.3 Thinkphp框架介绍 1.4论文结构与章节安排 2 网上花店管理系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.2.2数据修改流程 2.2.3数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非…

怎样更改电脑的MAC地址?

怎样更改电脑的MAC地址&#xff1f; 电脑的机器码是可以修改的。 操作步骤&#xff1a; 1、通过按WINR键&#xff0c;调来电脑的接运行窗口&#xff0c;打开CMD命令来查看机器码。 2、命令提示符窗口里输入ipconfig /all&#xff0c;回车&#xff0c;即可显示出当前电脑的网…

ARM——操作示例

操作流程: 一、实现一个led亮灯 &#xff08;1&#xff09;GPIO&#xff1a;可编程的输入输出引脚 每一组io都有一个寄存GP*CON控制引脚作用&#xff0c;每个io都有2个位&#xff0c;控制引脚作用 每一组io都有一个寄存GP*DAT控制引脚数据&#xff0c;每个io都有1个位&a…

电脑硬盘坏了怎么恢复数据?

在数字化时代&#xff0c;电脑硬盘作为存储核心&#xff0c;承载着我们的工作文档、学习资料、家庭照片以及无数珍贵的回忆。然而&#xff0c;硬盘作为机械设备&#xff0c;也有其寿命和脆弱性&#xff0c;一旦出现故障&#xff0c;数据恢复便成为了一个紧迫而棘手的问题。本文…

【小趴菜前端学习日记3】

学习项目 一、深度&#xff08;穿透&#xff09;选择器1. /deep/2.>>>3. ::v-deep 二、vue-particles1.安装2.全局引入3.使用 三、v-bind对于样式控制的增强之操作类名class四、CryptoJs加密五、自定义指令的封装和使用防抖 六、mixins七、复制字段vue-clipboard复制文…

复制与引用

复制 复制有复制的特点。 复制可以将不可思议的巧合转变成必然。 假设基于很大的运气成分&#xff0c;探索出了一个执行流程。如果没有任何记录&#xff0c;那么下次再复现出这个流程&#xff0c;会需要同样的运气&#xff0c;甚至可能更多。但运气并不会总是发生的&#xff0c…