Linux入门的基础知识点汇总(带示例)

目录

文件和目录操作

文本处理命令

系统管理命令

用户和权限管理

权限管理

软件安装与管理

网络配置


Linux 是一种广泛使用的开源操作系统,对于初学者而言,掌握一些基础知识点十分关键。以下为你详细介绍:

  • 文件和目录操作

    • ls:用于列出目录内容。
      • -a选项可显示所有文件和目录,包含隐藏文件 ,比如ls -a就能看到当前目录下以.开头的隐藏文件。
      • -l选项是以长格式显示详细信息,像文件权限、所有者、大小、修改时间等,ls -l会展示这些内容。
      • -h选项需与 **-l** 一起使用,以人类可读方式显示文件大小,执行ls -lh后文件大小会以 K、M、G 等单位展示。
      • 示例脚本
#!/bin/bash
# 列出当前目录下所有文件和目录
ls -a
# 以长格式列出当前目录下文件和目录
ls -l
# 以长格式并以人类可读方式列出当前目录下文件和目录
ls -lh
  • cd:用来切换当前工作目录。
    • cd 目录路径可以切换到指定目录,如cd /home就能进入 home 目录。
    • cd..是返回上一级目录 。
    • cd ~则是进入当前用户的家目录。
    • 示例脚本
#!/bin/bash
# 切换到 /etc 目录
cd /etc
# 返回上一级目录
cd..
# 进入当前用户家目录
cd ~
  • mkdir:用于创建新目录。
    • -p选项能创建多级目录,若父目录不存在会自动创建,比如mkdir -p dir1/dir2/dir3可一次性创建多级目录。
    • 示例脚本
#!/bin/bash
# 在当前目录下创建一个名为 new_dir 的目录
mkdir new_dir
# 在当前目录下创建多级目录 dir1/dir2/dir3
mkdir -p dir1/dir2/dir3
  • rmdir:专门删除空目录,例如rmdir new_dir可以删除当前目录下名为 new_dir 的空目录。
    • 示例脚本
#!/bin/bash
# 删除当前目录下名为 new_dir 的空目录
rmdir new_dir
  • cp:用来复制文件或目录。
    • -r选项用于递归复制目录及其所有内容,复制目录时必须加上,如cp -r dir1 dir2 可将 dir1 目录及其所有内容复制到 dir2。
    • 示例脚本
#!/bin/bash
# 复制文件 file1.txt 为 file2.txt
cp file1.txt file2.txt
# 复制目录 dir1 及其所有内容到 dir2
cp -r dir1 dir2
  • mv:可以移动文件或目录,也能重命名文件或目录。
    • mv file.txt /new_path/可将文件 file.txt 移动到 /new_path/ 目录下。
    • mv file.txt new_file.txt则是将文件 file.txt 重命名为 new_file.txt 。
    • 示例脚本
#!/bin/bash
# 移动文件 file.txt 到 /new_path/ 目录下
mv file.txt /new_path/
# 将文件 file.txt 重命名为 new_file.txt
mv file.txt new_file.txt
  • 文本处理命令

    • cat:能查看文件内容,也可合并文件。
      • cat 文件路径可查看文件内容,如cat file.txt查看 file.txt 文件内容。
      • cat 文件1 文件2 > 合并文件可将文件 1 和文件 2 的内容合并到合并文件中,例如cat file1.txt file2.txt > combined.txt 。
      • 示例脚本
#!/bin/bash
# 查看文件 file.txt 的内容
cat file.txt
# 将 file1.txt 和 file2.txt 的内容合并到 combined.txt 文件中
cat file1.txt file2.txt > combined.txt
  • grep:在文件中搜索指定字符串。
    • -i选项是不区分大小写搜索,grep -i "linux" file.txt 可在 file.txt 中不区分大小写搜索 “linux”。
    • -r选项是递归搜索指定目录及其子目录下的所有文件,如grep -r "python" /home/user 可在 /home/user 目录及其子目录下递归搜索 “python”。
    • 示例脚本
#!/bin/bash
# 在文件 file.txt 中搜索包含 "hello" 的行
grep "hello" file.txt
# 在文件 file.txt 中不区分大小写搜索包含 "linux" 的行
grep -i "linux" file.txt
# 在 /home/user 目录及其子目录下递归搜索包含 "python" 的文件和行
grep -r "python" /home/user
  • sed:是流编辑器,可对文本进行替换、删除、插入等操作。
    • sed's/旧字符串/新字符串/g' 文件路径 能将文件中的旧字符串替换为新字符串,g表示全局替换,如sed's/old/new/g' file.txt 可将 file.txt 中的 “old” 替换为 “new”。
    • sed '行号d' 文件路径 可以删除文件中指定行号的行,比如sed '1d' file.txt 可删除 file.txt 的第一行。
    • 示例脚本
#!/bin/bash
# 将文件 file.txt 中的 "old" 替换为 "new"
sed's/old/new/g' file.txt
# 删除文件 file.txt 的第一行
sed '1d' file.txt
  • awk:是强大的文本处理工具,可格式化输出、统计等。
    • awk '{print $列号}' 文件路径 能打印文件中指定列的内容,如awk '{print $1}' file.txt 可打印 file.txt 中每一行的第一列内容。
    • awk -F分隔符 '{print $列号1,$列号2}' 文件路径 是以指定分隔符分割文件内容,并打印指定列的内容,比如awk -F: '{print $1,$3}' /etc/passwd 是以冒号为分隔符,打印 /etc/passwd 文件中的用户名和用户 ID。
    • 示例脚本
#!/bin/bash
# 打印文件 file.txt 中每一行的第一列内容
awk '{print $1}' file.txt
# 以冒号为分隔符,打印 /etc/passwd 文件中的用户名和用户ID
awk -F: '{print $1,$3}' /etc/passwd
  • 系统管理命令

    • ps:用于查看当前正在运行的进程。
      • -aux选项可显示所有用户的所有进程,包括详细的进程信息,如 CPU 使用率、内存使用率等 ,执行ps -aux就能查看。
      • 示例脚本
#!/bin/bash
# 查看所有用户的所有进程信息
ps -aux
# 查看与 apache 相关的进程信息
ps -aux | grep apache
  • top:动态显示系统中各个进程的资源占用情况,包括 CPU 使用率、内存使用率、进程状态等。
    • 按下M键会按照内存使用量对进程进行排序 。
    • 按下P键会按照 CPU 使用率对进程进行排序。
    • 示例脚本:无实际脚本,直接在终端输入top命令即可启动。
  • df:用来查看磁盘空间使用情况。
    • -h选项以人类可读的方式显示磁盘空间信息,执行df -h 就能看到如 K、M、G 等单位表示的磁盘空间信息。
    • -T选项可显示磁盘分区的文件系统类型,df -T可查看。
    • 示例脚本
#!/bin/bash
# 以人类可读方式查看磁盘空间使用情况
df -h
# 查看磁盘分区的文件系统类型
df -T
  • du:用于查看目录或文件占用的磁盘空间。
    • -sh选项以人类可读的方式显示指定目录或文件的总大小 ,du -sh /var可查看 /var 目录的总大小。
    • -d 深度选项指定查看目录的深度,如-d 1表示只查看一级子目录,du -d 1 -h /var 可查看 /var 目录下一级子目录的磁盘占用情况。
    • 示例脚本
#!/bin/bash
# 查看 /var 目录的总大小
du -sh /var
# 查看 /var 目录下一级子目录的磁盘占用情况
du -d 1 -h /var
  • 用户和权限管理

    • 用户管理
      • 添加用户:使用useradd命令添加新用户,useradd testuser 可添加名为 testuser 的用户。
#!/bin/bash
# 添加名为 testuser 的用户
useradd testuser
  • 设置密码:使用passwd命令为用户设置密码,passwd testuser 可为 testuser 用户设置密码。
#!/bin/bash
# 为 testuser 用户设置密码
passwd testuser
  • 删除用户:使用userdel命令删除用户,userdel testuser 可删除名为 testuser 的用户。
#!/bin/bash
# 删除名为 testuser 的用户
userdel testuser
  • 权限管理

    • 权限类型
      • 读(r):对于文件,表示可以读取文件内容;对于目录,表示可以列出目录内容。
      • 写(w):对于文件,表示可以修改文件内容;对于目录,表示可以在目录中创建、删除文件。
      • 执行(x):对于文件,表示可以执行文件(如果是可执行文件);对于目录,表示可以进入目录。
    • 修改权限:使用chmod命令修改文件或目录的权限。
      • chmod 数字权限 文件/目录路径 是通过数字表示权限,如755表示所有者有读写执行权限,所属组和其他用户有读和执行权限,chmod 755 file.txt 可将文件 file.txt 的权限设置为此。
      • chmod u+rwx,g+rx,o+r 文件/目录路径 是使用字母表示权限修改,u表示所有者,g表示所属组,o表示其他用户,+表示添加权限,-表示删除权限,chmod u+rwx,g+rx,o+r file.txt 可为文件 file.txt 的所有者添加读写执行权限,所属组添加读和执行权限,其他用户添加读权限。
#!/bin/bash
# 将文件 file.txt 的权限设置为所有者有读写执行权限,所属组和其他用户有读和执行权限
chmod 755 file.txt
# 为文件 file.txt 的所有者添加读写执行权限,所属组添加读和执行权限,其他用户添加读权限
chmod u+rwx,g+rx,o+r file.txt
  • 软件安装与管理

    • apt(基于 Debian 的系统,如 Ubuntu)
      • 更新软件包列表:使用sudo apt update命令更新软件包列表,获取最新的软件包信息。
#!/bin/bash
# 更新软件包列表
sudo apt update
  • 安装软件包:使用sudo apt install 软件包名命令安装指定的软件包,sudo apt install firefox 可安装 firefox 浏览器。
#!/bin/bash
# 安装 firefox 浏览器
sudo apt install firefox
  • 卸载软件包:使用sudo apt remove 软件包名命令卸载指定的软件包,sudo apt remove firefox 可卸载 firefox 浏览器。
#!/bin/bash
# 卸载 firefox 浏览器
sudo apt remove firefox
  • yum(基于 Red Hat 的系统,如 CentOS)
    • 更新软件包:使用sudo yum update命令更新系统中已安装的软件包。
#!/bin/bash
# 更新软件包
sudo yum update
  • 安装软件包:使用sudo yum install 软件包名命令安装指定的软件包,sudo yum install httpd 可安装 httpd(Apache Web 服务器)。
#!/bin/bash
# 安装 httpd(Apache Web服务器)
sudo yum install httpd
  • 卸载软件包:使用sudo yum erase 软件包名命令卸载指定的软件包,sudo yum erase httpd 可卸载 httpd(Apache Web 服务器)。
#!/bin/bash
# 卸载 httpd(Apache Web服务器)
sudo yum erase httpd
  • 网络配置

    • 查看网络配置
      • ifconfig(部分系统已被替代,但仍常用):用于查看网络接口的配置信息,如 IP 地址、子网掩码、广播地址等,直接在终端输入ifconfig命令即可查看。
      • ip addr:用于查看网络接口的详细配置信息,包括 IP 地址、MAC 地址、网络状态等,直接在终端输入ip addr命令即可查看。
    • 设置静态 IP 地址
      • CentOS 7:编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件(eth0为网络接口名,可能因系统而异),修改相关配置参数来设置静态 IP 地址。
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.101
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
  • Ubuntu 20.04:编辑/etc/netplan/00-installer-config.yaml文件,修改相关配置参数来设置静态 IP 地址。
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.102/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8]

你可能感兴趣的:(操作系統,linux,ubuntu)