Linux 基础知识

B 站学习笔记:https://www.bilibili.com/video/BV1ti4y1t7BF?p=1

常用命令

[] 表示可选项

序号 命令 对应英文 作用
01 ls list 查看当前文件夹下的内容
02 pwd print work directory 查看当前所在文件夹
03 cd [目录名] change directory 切换文件夹
04 touch [文件名] touch 如果文件不存在,则新建
05 mkdir [目录名] make directory 创建目录
06 rm [文件名] remove 删除指定的文件名
07 clear clear 清屏

查阅命令帮助信息

  • command -- help
  • man command

Linux 下文件和目录的特点

  • Linux 文件或者目录 名称最长可以有 256 个字符
  • . 开头的文件为隐藏文件,需要用 -a 参数才能显示
  • . 代表当前目录
  • .. 代表上一级目录

通配符

通配符 含义
* 代表任意个数字符
代表任意一个字符,至少一个
[] 表示可以匹配字符组中的任意一个
[abc] 匹配 a、b、c 中的任意一个
[a-f] 匹配从 a 到 f 范围内的任意一个字符

查看和修改操作

  • ls 常用选项
参数 含义
-a 显示指定目录下所有子目录与文件,包括隐藏文件
-l 以列表形式显示文件的详细信息
-h 配合 -l 以人性化的方式显示文件大小
  • cd 命令
命令 含义
cd 切换到当前用户的主目录(/home/用户目录)
cd ~ 切换到当前用户的主目录(/home/用户目录)
cd . 保持当前目录不变
cd .. 切换到上级目录
cd - 在最近两次工作目录之间来回切换

相对路径和绝对路径

  • 相对路径:在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的位置
  • 绝对路径:在输入路径时,最前面是 / 或者 ~,表示从 根目录/home 目录 开始的具体目录位置

创建和删除操作

  • touch

    创建文件或修改文件时间

    • 如果文件不存在,可以创建一个空白文件
    • 如果文件已经存在,可以修改文件的末次修改时间
  • mkdir

    创建一个新的目录

    选项 含义
    -p 可以递归创建目录

    新建目录的名称 不能与当前目录中 已有的目录或文件 同名

  • rm

    删除文件或目录

    使用 rm 命令要小心,删除后不能恢复

    选项 含义
    -f 强制删除,忽略不存在的文件,无需提示
    -r 递归地删除目录下的内容,删除文件夹 必须加此参数

拷贝和移动文件

序号 命令 对应英文 作用
01 tree [目录名] tree 以树状图列出文件目录结构
02 cp 源文件 目标文件 copy 复制文件或目录
03 mv 源文件 目标文件 move 移动文件或者目录/文件或者目录重命名
  • tree

    选项 含义
    -d 只显示目录
  • cp

    选项 含义
    -f 已经存在的目标文件直接覆盖,不会提示
    -i 覆盖文件提示
    -r 若给出的源文件是目录文件,则cp;若将递归复制该目录下所有子目录和文件,目标文件必须为一个目录名
  • mv

    选项 含义
    -i 覆盖文件前提示

查看文件内容

序号 命令 对应英文 作用
01 cat 文件名 concatenate 查看文件内容、创建文件、文件合并、追加文件内容等功能
02 more 文件名 more 分屏显示文件内容(当文件过大时)
03 grep 搜索文本 文件名 grep 搜索文本文件内容
  • cat

    选项 含义
    -b 对非空输出行编号
    -n 对输出的所有行编号
  • more

    操作键 功能
    空格键 显示手册页的下一屏
    Enter键 一次滚动手册页的一行
    b 回滚一屏
    f 前滚一屏
    q 退出
    /word 搜索 word 字符串
  • grep

选项 含义
-n 显示匹配行及行号
-v 显示不包含匹配文本的所有行(相当于求反)
-i 忽略大小写

常用的两种模式查找

参数 含义
^a 行首,搜寻以 a 开头的行
ke$ 行尾,搜寻以 ke 结束的行

其它

  • echo 文字内容

    在终端中显示参数指定的文字,通常会和 重定向 联合使用

  • 重定向 > 和 >>

    Linux 允许将命令执行结果 重定向 到一个文件

    将本应显示在终端上的内容 输出/追加 到指定文件中

    其中,> 表示输出,会覆盖文件原有的内容

    ​ >> 表示追加,会将内容追加到已有文件的末尾

  • 管道

    Linux 允许将 一个命令的输出 通过管道作为 另一个命令的输入

    | 的左右分为两端,左端塞东西(写),右端取东西(读)

    常用的管道命令有:

    • more:分屏显示内容
    • grep:搜索指定文本文件内容

远程管理命令

  • 关机和重启

    序号 命令 对应英文 作用
    01 shutdown 选项 时间 shutdown 关机/重启
    选项 含义
    -r 重新启动

    不指定选项和参数,默认表示在1分钟后关闭电脑

    远程维护服务器时,最好不要关闭系统,而应该重新启动系统

  • 查看或配置网卡信息

    序号 命令 对应英文 作用
    01 ifconfig configure a network interface 查看/配置计算机当前的网卡配置信息
    02 ping ip地址 ping 检测到目标ip地址的连接是否正常
  • 远程登录和复制文件

    序号 命令 对应英文 作用
    01 ssh 用户名@ip secure shell 远程登录
    02 scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 secure copy 远程复制文件

    通过 SSH 客户端,可以连接到运行了 SSH 服务器 的远程机器上

    SSH 客户端是一种使用 Secure Shell(SSH)协议连接到远程计算机的软件程序

    好处:

    • 数据传输是加密的,可以防止信息泄露
    • 数据传输是压缩的,可以防止传输速度

    端口号

    • IP 地址:通过 IP 地址找到网络上的计算机
    • 通过 端口号 可以找到 计算机上运行的应用程序(如果是默认端口号,在连接的时候,可以省略)

    常见服务端口号列表:

    序号 服务 端口号
    01 SSH 服务器 22
    02 Web 服务器 80
    03 HTTPS 443
    04 FTP 服务器 21
  • SSH 客户端的简单使用

    ssh [-p port] user@remote
    
    • user 是在远程机器上的用户名,如果不指定的话默认为当前用户
    • remote 是远程机器的地址,可以是 IP/域名
    • port 是 SSH Server 监听的端口,如果不指定,默认为 22

    使用 exit 退出当前用户的登录

  • scp

    Linux 下用来进行 远程拷贝文件 的命令

    它的地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的 -P 而不是小写的

    # 把本地当前目录下的 test.py 文件 复制到 远程/home/Desktop/test.py
    scp -P port test.py user@remote:/home/Desktop/test.py
    
    # 把远程 /home/Desktop/test.py 文件复制到 本地当前目录下 test.py
    scp -P port user@remote:/home/Desktop/test.py test.py
    
    # 加上 -r 选项可以传送文件夹
    scp -r demo user@remote:/home/Desktop
    scp -r user@remote:/home/Desktop demo
    
    选项 含义
    -r 若给出的源文件是目录文件,则scp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
    -P 若远程 SSH 服务器的端口不是 22,需要用 -P 选项指定端口

    这个命令在 MAC 和 Linux 可以直接使用, windows 上可以下载 FileZilla 进行远程拷贝

  • SSH 高级

    有关 SSH 配置信息都保存在用户 home 目录下的 .ssh 目录下

    • 免密码登录

      1. 配置公钥

        执行 ssh-keygen 即可生成 SSH 钥匙,一路回车即可

      2. 上传公钥到服务器

        执行 ssh-copy-id -p port user@remote, 可以让服务器记住我们的公钥

      本地 使用 私钥 对数据进行 加密/解密

      服务器 使用 公钥 对数据进行 加密/解密

    • 配置别名

      每次输入 ssh -p port user@remote, 会很不方便且不好记忆

      可以在 ~/.ssh/config 里面追加一下内容:

      Host fer
      	HostName ip地址
      	User alivinfer
      	port 22
      

      保存之后,即可以使用 ssh fer 实现远程登录了,scp 同样可以使用

用户权限相关命令

  • 用户 和 权限 的基本概念

    • 用户管理包括 用户组(对相同用户的权限放在一个组里) 管理

    • 每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限

    • 在 Linux 中,可以指定 每一个用户 针对 不同的文件或者目录 的不同权限

    • 对 文件/目录 的权限包括:

      序号 权限 英文 缩写 数字代号
      01 read r 4
      02 write w 2
      03 执行 excute x 1

    ls -l 扩展

    使用 ls -l 可以产看文件夹下的详细信息,从左到右依次是:

    • 权限:第一个字符如果是 d 表示目录
    • 硬连接数,就是有多少种方式,可以访问到当前目录/文件
    • 拥有者,home 下 文件/目录 的拥有者通常都是当前用户
    • ,在 Linxu 中,很多时候,会出现组名和用户名相同的情况
    • 文件大小
    • 时间
    • 名称

    用户管理 终端命令

    超级用户

    • Linxu 系统中的 root 账号通常 用于系统的维护和管理,对操作系统的所有资源 具有所有访问权限
    • 在大多数版本的 Linux 中,都不推荐 直接使用 root 账号登录系统
    • 在 Linux 安装的过程中,系统会自动创建一个用户账号,而这个默认的用户就称为 “标准用户”

    sudo

    • su 是 substitute user 的缩写,表示 使用另一个用户的身份
    • sudo 命令用来以其他身份来执行明磊,预设的身份为 root
    • 用户使用 sudo 时,必须先输入密码,之后又 5 分钟的有效权限,超过期限则必须重新输入密码

    创建用户 / 设置密码 / 删除用户

    创建用户 / 删除用户 / 修改其他用户密码 的终端命令 都需要通过 sudo 执行

    序号 命令 作用 说明
    01 uesradd -m -g 组 新建用户名 添加新用户 -m 自动创建用户 /home 目录 ; -g 指定用户所在的组 ,否则会建立一个同名的组
    02 passwd 用户名 设置用户密码 如果是普通用户,直接用 passwd 可以修改自己的账号密码
    03 userdel -r 用户名 删除用户 -r 选项会自动删除用户 /home 目录
    04 cat /etc/passwd | grep 用户名 确认用户信息 新建用户后。用户信息会保存在 /etc/passwd 文件中

    创建用户时,如果忘记添加 -m 选项指定新用户的 /home 目录,最简单的办法就是删除用户,重新创建

    创建用户时,默认会创建一个和用户名同名的组名

    用户讯息保存在 /etc/passwd 文件中

    查看用户信息

    序号 命令 作用
    01 id[用户名] 查看用户 UID 和 GID
    02 who 查看当前所有登录的用户列表
    03 whoami 查看当前登录用户的账户名

    passwd 文件

    /etc/passwd 文件存放的是用户的信息,由 6 个分号组成的7个信息,分别是

    1. 用户名
    2. 密码(x,表示加密的密码)
    3. UID(用户标识)
    4. GID(组标识)
    5. 用户全名或本地账号
    6. /home 目录
    7. 登录使用的 Shell,就是登录之后,使用的终端命令,ubuntu 默认的是 dash

    which(重要)命令

    可以查看执行命令所在位置,如

    which ls
    /bin/ls   # 输出
    
    which useradd
    /usr/sbin/useradd   # 输出
    

    cd 这个终端命令是内置在系统内核中的,没有独立的文件,因此用 which 无法找到

    bin 和 sbin

    • 在 Linux 中,绝大多数可执行文件都是保存在 /bin、/sbin、/usr/bin、/usr/sbin
    • /bin (binary)是二进制执行文件目录,主要用于具体应用
    • /sbin (system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理
    • /usr/bin (user commands for applications)后期安装的一些软件
    • /usr/sbin(super user commands for applications)超级用户的一些管理程序

    切换用户

    序号 命令 作用 说明
    01 su -用户名 切换用户,并且切换目录 - 可以切换到用户 /home 目录,否则保持位置不变
    02 exit 退出当前登录账号

    su 不接用户名,可以切换到 root,但是不推荐使用,因为不安全

  • 组管理 终端命令

    创建组/删除组 的终端命令都需要通过 sudo 执行

    序号 命令 作用
    01 groupadd 组名 添加组
    02 groupdel 组名 删除组
    03 cat /etc/group 确认组信息
    04 chgrp -R 组名 文件/目录名 修改文件/目录的所属组

    组信息保存在 /etc/group 文件中

    /etc 目录专门用来保存 系统配置信息 的目录

  • 修改文件权限 终端命令

    序号 命令 作用
    01 chown 修改拥有者
    02 chgrp 修改组
    03 chmod 修改权限

    chmod 简单使用(重要)

    • chmod 可以修改 用户/组 对文件/目录 的权限

      其命令格式为:

      # 修改文件|目录的拥有者
      chown 用户名 文件名|目录名
      
      # 递归修改文件|目录的组
      chgrp -R 组名 文件名|目录名
      
      # 直接修改 文件|目录的 读|写|执行 权限,但不能精确到 拥有者|组|其他
      chmod +/-rwx 文件名|目录名
      如 chmod -x test  # 去掉 test 文件可执行权限(在没有可执行权限后,可读可写权限也会同时失去)
      
      # chmod 另一种更加具体的方式
      # 递归修改文件权限
      chmod -R 755 文件名|目录名
      

系统信息相关命令

  1. 时间和日期

    序号 命令 作用
    01 date 查看系统时间
    02 cal calendar 查看日历,加 -y 产看一年的日历
  2. 磁盘信息

    序号 命令 作用
    01 df -h disk free 显示磁盘空间(主要看 / (根目录))
    02 du -h disk usage 显示目录下的文件大小

    -h 以人性化的方式显示文件大小

  3. 进程信息

    通俗地说就是 当前正在执行的一个程序

    序号 命令 作用
    01 ps aux process status 产看进程的详细状况
    02 top 动态显示运行中的进程并且排序
    03 kill [-9] 进程代号 终止指定代号的进程,-9 表示强行终止

    ps 默认只会显示当前用户通过终端启动的应用程序

    选项 含义
    a 显示终端上的所有进程,包含其他用户的进程
    u 显示进程的详细状态
    x 显示没有控制终端的进程

    使用 kill 命令时,最好只终止由当前用户开启的进程,而不要终止 root 身份开启的进程,以免导致系统崩溃

    要退出 top 可以直接输入 q

其它常用命令

  1. 查找文件

    find 命令

    其功能非常强大,通常用来在 特定的目录下 搜索符合条件的文件

    序号 命令 作用
    01 find [路径] -name ".py" 查找指定路径下扩展名是 .py 的文件,包括子目录
    • 如果省略路径,表示在当前目录下
    • 之前的通配符,可以与 find 命令配合使用
  2. 软链接 (在 Linux 中,文件名和文件的数据是分开存储的)

    序号 命令 作用
    01 ln -s 被链接的源文件 链接文件(快捷方式的名称) 建立文件的软链接,类似于 windows 下的快捷方式
    • 没有 -s 选项建立的是一个 硬链接文件
    • 源文件要使用绝对路径,不能使用相对路径,这样方便移动链接文件后,仍能正常使用

    硬链接

    相当于另外构建了一个文件,以同样的方式去访问文件数据

  3. 打包和压缩

    在不同的操作系统中,常用的打包压缩方式是不同的

    • Windows 常用 rar
    • Mac 常用 zip
    • Linux 常用 tar.gz

    打包 / 解包

    tar 是Linux 中最常用的 备份 工具,此命令可以 把一系列文件 打包到 一个大文件中,也可以把 打包的文件恢复到一系列文件

    命令格式:

    # 打包文件
    tar -cvf 打包文件.tar 被打包的文件 / 路径...
    
    #解包文件
    tar -xvf 打包文件.tar
    
    选项 含义
    c 生成档案文件,创建打包文件
    x 解开档案文件
    v 列出归档解档的详细过程,显示进度
    f 指定档案文件名称,f 后面一定是 .tar 文件

    f 选项必须放在最后,其他选项可以任意

  4. 压缩 / 解压缩

    1)tar 与 gzip 命令结合可以实现文件 打包和压缩

    用 gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz(最为常见的压缩文件格式)

    在 tar 命令中有一个选项 -z 可以调用 gzip ,从而方便实现压缩和解压缩功能

    命令格式:

    # 压缩文件
    tar -zcvf 打包文件.tar.gz 被压缩的文件 / 路径...
    
    # 解压缩文件
    tar -zxvf 打包文件.tar.gz
    
    # 解压到指定路径(指定的路径必须存在)
    tar -zxvf 打包文件.tar.gz -C 目标路径
    

    2)bzip2

    其扩展名一般用 xxx.tar.bz2

    方式同 gzip 相同,只需将 tar 命令的 -z 选项改为 -j 以及将扩展名进行更改,即可调用

  5. 软件安装

    通过 apt 安装 / 卸载 软件

    apt 是 Advanced Packaging Tool,是 Linux 下的一款安装包管理工具

    可以在终端中方便的 安装/卸载/更新软件包

    # 安装软件
    sudo apt install 软件包
    
    # 卸载软件
    sudo apt remove 软件名
    
    # 更新已安装的包
    sudo apt upgrade
    
原文地址:https://www.cnblogs.com/alivinfer/p/13150667.html