Linux 基本操作

本文详细讲解了Linux系统中的用户管理(添加、密码管理、删除等)、文件和目录操作(cd、mkdir、rm等)、权限控制(chmod、chown、group管理)以及定时任务(crontab)和网络管理(网络状态、接口修改、mtr和端口检查)。深入浅出地介绍了压缩与解压、查找工具、硬盘使用和系统分区技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 用户管理相关

1.1 添加用户

  • 基本语法:useradd [新用户名]
  • 应用案例:添加一个用户 jason,默认该用户的家目录在 /home/jason
  • 细节说明:
    1. 当创建用户成功后,会自动创建和用户名同名的家目录
    2. 也可以通过 useradd -d [指定目录] [新用户名] 的方式给新用户指定家目录
    3. useradd -g [用户组] [用户名] 可以在新建用户的时候指定用户组

1.2 指定/修改 密码

  • 基础语法:passwd [待修改的用户名],如果不指定用户名,则是修改当前用户的密码
  • 应用案例:

1.3 删除用户

  • 基本语法:userdel [待删除的用户名]

  • 应用案例:

    1. 删除用户,但是保留家目录:userdel jason
    2. 删除用户及其家目录:userdel -r king 该操作要谨慎!
  • 细节说明:一般删除也是需要保留家目录的


1.4 查询用户

  • 基本语法:id [待查询的用户名]
  • 应用案例:id jason
  • 细节说明:当用户不存在时,返回无此用户

1.5 切换用户

  • 基本语法:su - [待切换的用户名]
  • 应用案例:su - jason
  • 细节说明:
    • 从权限较高的用户切换到低权限的用户时,不需要输入密码,反之则需要
    • 当需要返回原来的用户时,使用 exit/logout 指令

1.6 用户组

1.6.1 新增用户组

  • 基本语法:groupadd [组名]

1.6.2 删除用户组

  • 基本语法:groupdel [组名]

1.6.3 增加用户时直接加上组

  • 基本语法:useradd -g [用户组] [用户名]
  • 细节说明:当创建用户时未指定组,会默认给这个用户创建同用户名的组

1.6.4 修改用户组

  • 基本语法:usermod -g [用户组] [用户名]

  • 细节说明:当创建用户时未指定组,会默认给这个用户创建同用户名的组

  • 查看用户信息:cat /etc/passwd

  • 查看组信息:cat /etc/group


2. 文件目录相关

2.1 cd

切换目录

  • 回到家目录:cd ~
  • 回到上一级目录:cd ..

2.2 mkdir

创建(一级)目录
创建多级目录:mkdir -p /home/tom/hello, -p, --parents no error if existing, make parent directories as needed


2.3 rmdir

删除目录
递归删除目录:rmdir -p [目标目录]-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。


2.4 touch

创建空文件:touch test.txt


2.5 cp

  • 基本语法:cp [选项] source dest

  • 常用选项:-r 递归复制整个文件夹

  • 案例1:将 /home/hello.txt 文件拷贝到 /home/bbb 目录下

    cp /home/hello.txt /home/bbb
    
  • 案例2:递归复制整个文件夹,比如将 /home/bbb 整个目录拷贝到 /opt

    cp -r /home/bbb /opt/
    
  • 案例3:强制覆盖不提示:

    \cp -r /home/bbb /opt
    

2.6 rm

  • 基本语法:rm [选项] [待移除文件或目录]

  • 常用选项:

    • -r:递归删除整个文件夹
    • -f:强制删除不提示
  • 案例1:将 home/hello.txt 文件删除

    rm /home/hello.txt
    
  • 案例2:递归删除整个文件夹 /home/bbb

    rm -rf /home/bbb
    

2.7 mv

移动(重命名)文件

  • 基本语法:rm [原地址] [新地址]

如果在同一个目录下,是重命名文件;如果不在同一个目录,则是移动文件。


2.8 cat

查看文件内容

  • 基本语法:cat [选项] [要查看的文件]
  • 常用参数:-n 显示行号

在这里插入图片描述
在这里插入图片描述
less 动态加载,对于显示大型文件有较高的效率。
在这里插入图片描述

2.9 echo

echo 输出内容到控制台

  • 基本语法:echo [选项] [输出内容]
    在这里插入图片描述

2.10 head

head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容

  • 基本语法:
    • head [文件] (默认显示前 10 行)
    • head -n 5 [文件] (查看文件前 5 行)

2.11 tail

tail 用于输出文件尾部的内容,默认情况下下显示文件的最后 10 行

  • 基本语法:
    • tail 文件 (查看文件的尾 10 行的内容)
    • tail -n 5 文件 (查看文件的尾部 5 行的内容)
    • tail -f 文件 (实时追踪文件的更新)

2.12 > 和 >>

> 输出重定向
>> 追加

在这里插入图片描述

2.13 ln

ln 可以给文件/目录创建软连接,类似于 Windows 里的快捷方式

  • 基本语法:ln -s [原文件/目录] [连接名]
  • 案例1:在 /home 目录下创建软连接 myroot,连接到 /root 目录
    ln -s /root /home/myroot
    
  • 案例2:删除软连接 myroot
    rm /home/myroot
    

2.14 history

在这里插入图片描述

2.15 wc

  • Linux wc命令用于计算字数。利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

  • 查看某个文件行数

    wc -l test.txt
    
  • 查看某个文件的单词数

    wc -w test.txt
    
  • 查看某个文件的字符数

    wc -c test.txt
    
  • 查看某个目录下的文件个数

    # 查看根目录下的文件个数
    ls / | wc -l
    
    # 查看当前目录下的文件个数
    ls . | wc -l
    

2.16 du

  • du 命令,全称是 disk usage,用来展示磁盘使用量的统计信息。

  • 查看某个目录的磁盘使用情况

    du -sh 路径
    # -s选项,是 --summarize 的缩写形式,其作用是对 du 的每一个给定参数计算其磁盘使用量
    # -h选项是 --human-readable 的缩写形式,表示以人类可读的形式展示磁盘使用量的单位名称(K/M/G)
    
  • 排序某个目录下的磁盘使用情况

    du -sh 目录/* | sort -hr
    

ref: Linux du命令

3 查找指令

3.1 find

find 指令将从指定目录向下递归遍历各个子目录,将满足条件的文件或者目录显示在终端。

  • 基本语法:find [搜索范围] [选项]

  • 选项说明

    • -name:按照文件名查找文件,可以模糊匹配
    • -user:查找属于指定用户的所有文件
    • -size:按照指定大小查找文件
  • 案例1:找 /opt 目录下的 hello.txt 文件:

    find /home -name heelo.txt
    
  • 案例2:查找 /opt 目录下,用户名未 nobody 的文件:

    find /opt -user nobody
    
  • 案例3:查找整个 linux 系统下大于 200M 的文件(单位还有 k, M, G):

    find / -size +200M # 大于 200M
    find / -size 200M  # 等于 200M
    find / -size -200M # 小于 200 M
    

3.2 locate

locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中的所有文件名及路径的 locate 数据库实现快速定位给定文件的路径。locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。

  • 基本语法:locate [待搜索的文件]
  • 特别说明:由于 locate 指令给予数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库
    在这里插入图片描述

locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:updatedb


3.3 which

which 指令可以查找某个指令在哪个目录下

  • 查询 ls 指令在哪个目录下:which ls
    在这里插入图片描述

3.4 grep

grep 过滤查找

  • 基本语法:grep [选项] 查找内容 源文件
  • 常用选项:
  • -n:显示匹配及行号
  • -i:忽略字母大小写
  • 案例:请在 a.txt 文件中查找 “hello” 所在行,并且显示行号
1. 第一种写法: cat /home/a.txt | grep -n "hello"
2. 第二种写法: grep -n "hello" a.txt

4. 压缩和解压

4.1 gzip / gunzip

gzip 用于压缩文件,gunzip 用于解压文件

  • 基本语法:gzip 文件(只能将文件压缩为 *.gz 文件)
  • 基本语法:gunzip 文件.gz

在这里插入图片描述


4.2 zip / unzip

zip 用于压缩文件(文件夹),unzip 用于解压,这两个命令在打包发布中很有用

  • 基本语法:

    • zip [选项] XXX.zip [文件/文件夹],选项 -r 递归压缩
    • unzip [选项] XXX.zip,选项 -d 指定解压后文件存放路径
  • 案例1:将 /home 下的所有文件/文件夹压缩成 myhome.zip:zip -r myhome.zip /home/*

  • 案例2:将 myhome.zip 解压到 /opt/tmp 路径:unzip -d /opt/tmp/ myhome.zip 如果 tmp 文件夹不存在,则会自动创建


4.3 tar

tar 既可以打包压缩也可以进行解压

  • 基本语法:tar [选项] XXX.tar.gz [待压缩的内容]

  • 选项说明:

    • -c:生成 .tar 打包文件
    • -v:显示详细信息
    • -f:指定压缩后的文件名
    • -z:打包同时压缩
    • -x:解包 .tar 文件
  • 案例1:压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz:tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt

  • 案例2:将 /home 的文件夹压缩成 myhome.tar.gz:tar -zcvf myhome.tar.gz /home/*

  • 案例3:将 pc.tar.gz 解压到当前目录:tar -zxvf pc.tar.gz

  • 案例4: 将 myhome.tar.gz 解压到 /opt/tmp2 目录下:tar -zxvf /home/myhome.tar.gz -C /opt/tmp2 -C 不要忘记

5. 文件权限

5.1 chown

一般文件是谁创建的,文件的所有者就是谁。

  • 查看文件所有者:ls -ahl
  • 修改文件/目录所有者:chown 新用户名 文件/目录
  • 修改文件/目录所有者和所在组:chown 新用户名:新组名 文件/目录
  • -R 可以递归修改目录下的所有子文件或子目录
  • 案例1:使用 root 创建一个文件 apple.txt,然后将其所有者修改为 tom
    su root             # 切换用户
    touch apple.txt     # 创建 apple.txt
    chown apple.txt tom # 更换文件所有者
    
  • 案例2:将 /home/kkk 目录下的所有文件和目录的所有者修改成 tom
    chown -R tom /home/kkk
    

5.2 文件/目录 所在组

  • 创建一个组,monster

    groupadd monster
    
  • 创建一个用户 fox ,并将 fox 添加到 monster 组内

    useradd -g monster fox
    
  • 修改文件 / 目录所属组:chgrp 新组名 文件/目录

  • 使用 root 创建 orange.txt 文件,查看这个文件的归属组,然后修改到 fruit 组

    su root                # 切换到 root 用户
    touch orange.txt       # 创建 orange.txt 文件
    ll                     # 查看文件所在组 
    groupadd fruit         # 新增 fruit 组
    chgrp fruit orange.txt # 修改文件所在组
    
  • 递归修改所属组:chgrp -R 新组名 文件/目录

5.3 其它组

除了文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

5.4 改变用户所在组

  • 改变用户所在组:usermod -g 新组名 用户名

  • 案例1 :将 zwj 用户更改到 wudang 组

    usermod -g wudang zwj # 修改
    id zwj                # 查看
    

5.5 权限的基本介绍

在这里插入图片描述

  1. 第 0 位确定文件类型(d, -, l, c, b)

    l 是链接,相当于 Windows 的快捷方式
    d 是目录,相当于 Windows 的文件夹
    c 是字符设备文件,鼠标、键盘等
    b 是块设备,比如硬盘
    ‘-’ 是文件

  2. 第 1-3 位是所有者(该文件的所有者)拥有该文件的权限

  3. 第 4-6 位确定所属组(同用户组的)拥有该文件的权限

  4. 第 7-9 位是其它用户拥有该文件的权限

  5. 其它说明

    1  如果是文件,则代表硬连接数;如果是目录,则表示子目录数 
    admin 文件所有者 
    admin 文件所在组 
    4096 文件大小 
    Apr 19 11:16 最后修改日期 
    admin 文件名/目录名
    

rwx 权限详解

rwx 作用到文件

  1. [r] 代表可读:可以读取、查看
  2. [w] 代表可写:可以修改,但是不代表可以删除,能删除一个文件的前提是拥有该文件所在目录的写权限
  3. [x]代表可执行:文件可以被运行,前提该文件是可执行文件

rwx 作用到目录

  1. [r] 代表可读:可以读取,可以利用 ls 命令查看目录
  2. [w] 代表可写:可以修改,可以在目录内创建 +删除 + 重命名
  3. [x]代表可执行:可以进入该目录 cd 进来

5.6 修改权限 chmod

在这里插入图片描述

5.6.1 + - = 变更权限

u:所有者
g:所有组
o:其它人
a:所有人(u、g、o 的总和)

  • chmod u=rwx,g=rx,o=x 文件/目录名 逗号 , 不能忘记!!!

  • chmod o+w 文件/目录名

  • chmod a-x 文件/目录名

  • 案例1:给 abc 文件的所有者读写执行的权限,所在组执行权限,给其它组读执行权限

    chmod u+rwx,g+rx,o+x abc
    
  • 案例2:给 abc 文件的所有者除去执行的权限,增加所属组写的权限

    chmod u-x,g+w abc
    
  • 案例3:给 abc 文件的所有用户增加读的权限

    chmod a+r abc
    

5.6.2 通过数字变更权限

r = 4
w = 2
x = 1

  • chmod 751 文件/目录名

  • 案例1:将 /home/abc.txt 文件的权限修改为 rwxr-xr-x,使用数字的方式实现:

    chmod 755 /home/abc.txt
    

6 定时任务

6.1 crontab

  • 编辑定时任务:crontab -e

    # 每分钟执行 ls -l /etc/ > /tmp/to.txt 命令
    crontab -e
    */1 * * * * ls -l /etc/ > /tmp/to.txt
    

    在这里插入图片描述

  • 列出定时任务:crontab -l

  • 案例1:每隔1分钟,将当前日期和日历都追加到 /home/mycal 文件中

    # 先写 shell 脚本 mycal.sh
    date >> /home/mycal.txt
    cal >> /home/mycal.txt
    # 增加执行权限
    chmod u+x mycal.sh
    
    # 再编写定时任务
    crontab -e
    */1 * * * * /home/mycal.sh
    

@命令

7 Linux 分区


在这里插入图片描述
在这里插入图片描述

7.1 查看分区挂载情况

  • 命令 lsblk 或者 lsblk -f

在这里插入图片描述


8 网络管理

8.1 网络状态查看命令

在这里插入图片描述

8.2 网络接口命名修改

8.3 mtr = ping + traceroute

Linux 链路测试工具 mtr 使用介绍
Linux mtr命令

8.4 查端口 - telnet

telnet www.baidu.com 80

如果端口是通的,显示如下图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值