当前位置: 首页 > news >正文

Linux基础知识点全面总结(实操向)

Linux基础知识点全面总结(实操向)

一、系统安装部署

入门Linux首先需完成系统部署,推荐两个常用发行版,适配不同使用场景:

  • CentOS 10:稳定性强,适合服务器场景,后续常用yum包管理器
  • Ubuntu 24.04:桌面友好,适合新手入门,后续常用apt包管理器

二、基础常用命令(必记)

以下命令覆盖日常操作核心场景,附关键用法说明,避免死记硬背:

1. 目录与文件操作

  • ls:列出当前目录下的文件/目录,基础查看命令
  • mkdir:创建目录,例如 mkdir test 新建test目录
  • cd:切换目录,绝对路径(/开头)和相对路径(当前目录为基准)均可使用
  • pwd:查看当前所在绝对路径
  • touch:创建空文件,同时可修改文件时间(atime、mtime、ctime)
    • atime(access):文件访问时间
    • mtime(modify):文件内容修改时间
    • ctime(change):文件属性(权限、归属等)修改时间
  • tree:以树状结构显示目录层级,需先安装:yum install tree -y(CentOS)
  • cp:复制文件/目录,例如 cp feng.txt /home 将文件复制到/home目录
  • rm:删除文件/目录,rm -rf 强制删除(慎用,不可逆)
  • mv:移动文件/目录,也可用于重命名,例如 mv feng.txt hello.txt

2. 系统信息查看

  • ip add:查看系统IP地址、网卡信息
  • hostname:查看当前主机名
  • hostnamectl set-hostname feng:修改主机名为feng(立即生效,重启不失效)
  • stat:查看文件详细信息(包含atime、mtime、ctime)
  • date:查看/设置系统时间,支持格式化输出(常用参数如下)
    • %F:完整日期(格式:YYYY-MM-DD)
    • %Y:年份,%m:月份,%d:日期
    • %H:小时(24小时制),%M:分钟,%S:秒
    • 实操示例: [root@sanchuang ~]# date +%Y%m%d%H%M%S → 输出:20251026100913 [root@sanchuang ~]# date +%Y%m%d-%H:%M:%S → 输出:20251026-10:09:27
  • w/who:查看当前登录系统的用户信息
  • last/lastlog:查看用户登录历史记录

3. 命令辅助与查找

  • man:查看命令手册,例如 man ls 查看ls命令用法
  • history:查看历史执行过的命令
  • which:查找命令的绝对路径,例如 which ls
  • whereis:查找命令及相关配置文件
  • locate:基于文件名快速查找文件,需先安装 yum install locate -y
  • find:精准查找文件,支持多条件筛选(核心用法见下文)
  • alias:设置命令别名,例如 alias ll='ls -l',取消别名用 unalias ll

4. 文件查看与内容操作

  • cat:查看文件内容,也可合并文件、生成文件
    • 合并文件:cat feng.txt hello.c > feng_hello.txt(覆盖)、cat feng.txt hello.c >> feng_hello.txt(追加)
    • 生成文件(here document):cat > feng.txt <<EOF,输入内容后按EOF结束
    • 结合grep查看:cat 文件名 | grep 关键词,-n参数显示行号
  • more:分页显示文件内容(回车下一行、空格下一页、b上一页、q退出,自动退出)
  • less:分页显示文件内容(用法同more,不自动退出)
  • wc:统计文件行数、字数等,-l参数仅统计行数
  • head:查看文件前N行,默认前10行
  • tail:查看文件后N行,-f参数实时监控文件变化(ctrl+c退出)
  • nl:查看文件并显示行号
  • vim:文本编辑器,用于修改文件内容(基础操作:i进入编辑模式,esc退出编辑,:w保存,:q退出,:wq保存退出)

5. 包管理(软件安装/卸载)

  • CentOS(yum):yum install 软件名 -y(安装),例如 yum install tree -y
  • Ubuntu(apt):apt install 软件名(安装),Ubuntu系统专属包管理命令

6. 进程与系统控制

  • top:实时监控系统进程、CPU、内存使用情况,按q退出
  • ps aux:查看当前所有进程信息
  • kill:终止进程,kill -9 进程ID 强制终止(例如 kill -9 1234
  • pkill:按条件终止进程,例如pkill -9 -t tty2 终止tty2终端的所有进程
  • pstree:以树状结构显示进程关系
  • free -m:查看系统内存使用情况(单位:MB)
  • init 0:关闭系统

7. 其他实用命令

  • passwd:修改用户密码,例如 passwd feng 修改feng用户密码
  • chpasswd:批量修改用户密码,例如 echo "moshao:123456"|chpasswd
  • id:查看用户ID、组ID等信息
  • file:查看文件类型
  • gcc:C语言编译器,用于编译C代码
  • du:查看文件/目录大小
  • seq:产生数字序列,例如 seq 10 产生1-10的数字
  • uniq:去除重复内容,-c参数统计重复次数
  • cut:截取字符串,-c参数按字符截取
  • md5sum:计算文件/字符串的MD5值,用于校验文件完整性
  • sort:对内容排序,常用参数:
    • -n:按数值排序,-r:降序,-k:指定列,-t:指定分隔符
    • 实操示例:cat /etc/passwd|sort -t: -k3 -nr|head(按/etc/passwd第3列数值降序,取前10行)
  • awk:字段截取工具,例如 awk -F: '{print $1,$3}' /etc/passwd(截取/etc/passwd第1列和第3列,以:为分隔符)

三、进阶操作(命令组合与重定向)

1. 管道(|)

将前一个命令的输出作为后一个命令的输入,核心用法:命令1 | 命令2,例如:

ls -l | grep txt:查看当前目录下所有.txt文件的详细信息

cat /etc/passwd | sort -t: -k3 -nr:对/etc/passwd按第3列降序排序

2. 重定向

将命令的输出(正确/错误)定向到文件或/dev/null(丢弃输出),常用场景:

  • 正确输出重定向:>(覆盖)、>>(追加),例如 ls > file.txt
  • 错误输出重定向:2>(覆盖)、2>>(追加),例如 ls /test 2> error.txt
  • 正确+错误输出重定向:&>(覆盖)、&>>(追加)
  • 丢弃输出:命令 &> /dev/null(不显示任何输出)

3. 通配符

用于快速匹配文件/目录,简化命令输入:

  • *****:匹配任意长度的字符(包括0个),例如 ls *.txt 匹配所有.txt文件
  • ?:匹配单个字符,例如 ls a?.txt 匹配a开头、后面跟1个字符的.txt文件

4. 命令替换

将命令的执行结果赋值给变量,格式:varname=$(command),优先执行命令,再将结果赋值给变量,实操示例:

[root@sanchuang ~]# c_time=$(date +%Y%m%d-%H:%M:%S)

[root@sanchuang ~]# echo $c_time → 输出:20251026-10:33:07

5. 转义字符与命令连接

  • ****:转义字符,用于取消特殊字符的含义,例如echo "hello\world"
  • ;:命令连接符,依次执行多个命令,例如 ls; pwd
  • &&:逻辑与,前一个命令执行成功,才执行后一个命令
  • ||:逻辑或,前一个命令执行失败,才执行后一个命令

四、Shell编程基础

Shell脚本是Linux自动化操作的核心,以下是基础语法和常用场景,基于bash解释器(Linux默认Shell):

1. 传参方式

  • read:交互式传参,例如 read -p "请输入用户名:" username,读取用户输入并赋值给username变量
  • 位置变量:脚本运行时传入参数,$1、$2...表示第1个、第2个参数,$@/$*表示所有参数(推荐使用)

2. 流程控制

(1)if语句(单分支、双分支、多分支)

# if语句(单分支、双分支、多分支)
# 单分支:
if 条件 ;then命令
fi# 双分支:
if 条件 ;then命令1
else命令2
fi# 多分支:
if 条件1 ;then命令1
elif 条件2;then命令2
elif 条件3;then命令3
else命令4
fi

(2)循环语句(for、while)

# 循环语句(for、while)
# for循环(常用场景):
for i in $(cat username.txt)
doecho "位置变量内容 $i"
done# for循环其他用法:
# 按数字序列循环
for i in $(seq $1)
do命令
done# 按目录文件循环
for i in /boot/*
do命令
done# while循环:支持死循环和控制循环次数
# 死循环示例:
while true
do命令
done          

(3)循环控制

  • break:跳出当前循环,不再执行后续循环
  • continue:终止本次循环,直接开启下一次循环
  • exit:退出整个Shell脚本,不再执行后续所有命令

3. 数学运算

  • 整数运算和比较:使用 (( )),例如 ((a=1+2))((a>b))
  • 小数运算和比较:使用 bc 命令(需提前安装)

4. 随机数

使用 RANDOM 变量生成随机数,范围是0~32767,可结合其他命令使用,例如生成随机数并计算MD5值。

五、用户与组管理

Linux是多用户多任务系统,用户与组管理是系统安全的核心,涵盖用户/组的创建、修改、删除,以及相关配置文件。

1. 核心配置文件

  • /etc/passwd:存储用户基本信息(用户名、UID、GID、家目录、Shell等),备份文件为 /etc/passwd-
  • /etc/shadow:存储用户密码(加密存储),备份文件为 /etc/shadow-
  • /etc/group:存储组基本信息(组名、GID、组内用户),备份文件为 /etc/group-
  • /etc/login.defs:用户和密码的默认规则(如密码有效期、UID/GID范围等)
  • /etc/skel/*:存储用户登录初始化脚本(.bash_logout、.bash_profile、.bashrc),新建用户时会复制到其家目录
  • 家目录:root用户家目录为 /root,普通用户家目录为 /home/用户名
  • 邮箱目录:/var/spool/mail/用户名,存储用户邮件

2. 用户管理命令

  • useradd:创建用户,常用参数: -s:指定用户Shell,-u:指定UID,-g:指定GID,-c:用户描述,-d:指定家目录,-e:过期时间,-r:创建系统用户
  • usermod:修改用户信息(参数同useradd)
  • userdel:删除用户,-r参数同时删除家目录和邮箱(推荐使用)
  • su:切换用户,su - 用户名 切换到该用户的家目录
  • exit:退出当前用户,返回上一个用户

3. 组管理命令

  • groupadd:创建组
  • groupdel:删除组
  • newgrp:切换用户的主要组(临时生效)

4. 手工新建用户(实操重点)

手动新建用户moshao(UID=4455,GID=4455,描述sanchuang student,家目录/home/moshao,Shell=/bin/bash),步骤如下:

  1. 修改/etc/passwd,添加用户信息:moshao:x:4455:4455:sanchuang student:/home/moshao:/bin/bash
  2. 修改/etc/shadow,添加密码占位符:moshao:!:20440:0:99999:7:::(!表示未设置密码)
  3. 修改/etc/group,创建用户组:moshao:x:4455:
  4. 新建家目录并复制初始化脚本: mkdir /home/moshao cp /etc/skel/.bash* /home/moshao
  5. 新建邮箱:touch /var/spool/mail/moshao
  6. 修改家目录权限和归属: chmod 700 /home/moshao -R chown moshao:moshao /home/moshao -R
  7. 修改邮箱权限和归属: chown moshao:mail /var/spool/mail/moshao chmod 660 /var/spool/mail/moshao
  8. (可选)设置密码:echo "moshao:123456"|chpasswd

六、权限控制(重点)

Linux文件/目录权限分为读(r)、写(w)、执行(x),对应数字权限4、2、1,权限控制核心是修改文件/目录的归属和权限。

1. 基础权限修改

  • chmod:修改文件/目录权限,-R参数递归修改(适用于目录) 示例:chmod 755 test.txt(所有者rwx,组用户rx,其他用户rx) 权限对应:r=4,w=2,x=1,7=4+2+1(rwx),5=4+1(rx)
  • chown:修改文件/目录的归属(属主、属组),-R参数递归修改 示例:chown feng:feng test.txt(将文件属主和属组改为feng)

2. suid权限位

suid权限位(s)的作用:普通用户执行该命令时,会拥有文件所有者(通常是root)的权限,相当于“尚方宝剑”,实操示例:

[root@sanchuang test]# ll /usr/bin/passwd → 输出:-rwsr-xr-x. 1 root root 91584 2024年11月 4日 /usr/bin/passwd

注:suid直接授予在命令上,任何人执行该命令都会临时获得root权限,需谨慎使用。

3. sudo授权

sudo用于给普通用户授权,可控制用户能执行哪些命令,比suid更灵活,核心配置文件是/etc/sudoers,授权示例:

  • %sc ALL=(ALL) ALL:授权sc组内所有用户执行所有命令
  • lijieyang ALL=(ALL) ALL:授权lijieyang用户执行所有命令

区别:suid授予命令,sudo授予用户,可精准控制用户的操作权限。

4. acl访问控制列表

用于更精细的权限控制,补充基础权限的不足:

  • setfacl:设置acl权限
  • getfacl:查看acl权限

七、实操注意事项

  • 读写大文件的危害:会瞬间占用大量磁盘IO、内存、CPU资源,导致系统卡顿,示例代码(慎用):

    #!/usr/bin/python
    with open("big_file.txt",'w+',encoding='utf-8') as f:for i in range(1000000000):f.write(f"hello,world,sanchuang fenglaoshi big file {i}\n")
    

    运行命令:python create_big_file.py

  • rm -rf 命令慎用:强制删除文件/目录,不可逆,尤其是root用户,避免误删系统文件

  • sudo授权后,普通用户执行授权命令需加sudo前缀,例如 sudo useradd test

  • 进程终止:kill -9 命令会强制终止进程,可能导致数据丢失,优先尝试正常终止(不加-9)

八、常用实操练习(巩固重点)

  1. 查看当前有哪些用户登录系统:wwho
  2. 开启新终端并登录:ctrl+alt+f2,使用root用户登录
  3. 杀死tty2终端的登录用户:pkill -9 -t tty2
  4. 对/etc/passwd第4个字段降序排序:cat /etc/passwd|sort -t: -k4 -nr
  5. 截取/etc/passwd第1和第3字段:awk -F: '{print $1,$3}' /etc/passwd
  6. 生成随机数并计算MD5,截取第5-20个字符:echo $RANDOM | md5sum | cut -c 5-20
  7. 新建grade.txt文件,按age列排序取年龄最大3行,按grade列排序取分数最高3行(结合sort、awk命令)
http://www.jsqmd.com/news/491011/

相关文章:

  • 【matlab】如何提取论文plot图中的数据
  • 操作HTML网页
  • OpenHarmony Linux 命令行工具适配实战:基于 Cursor × WSL 的 tree 2.2.1 交叉编译与 HNP 打包全流程指南
  • 【微信小程序 + 登录流程】微信小程序授权登录完整流程,一篇搞定!(含代码实现)
  • 终极指南:bootstrap-datepicker版本迁移中的API变更与适配技巧
  • 梳理靠谱的PLC编程学习机构,自学与机器人控制编程怎么收费 - 工业设备
  • 解决SegmentTabLayout的setTabSpaceEqual属性使用误区:从源码到实战的全面解析
  • Linux 进程控制(二) (进程等待wait/waitpid)
  • 如何在5分钟内快速部署Cnblogs-Theme-SimpleMemory主题?新手必备指南
  • nginx-rtmp-module高级配置:直播录制、转码与HTTP回调实战指南
  • CPPM注册职业采购经理证书详解 - 众智商学院官方
  • DeOldify开源大模型部署教程:国产昇腾/寒武纪平台适配可行性分析
  • 利群金卡回收五种精选方法:告别闲置,让消费更自由 - 猎卡回收公众号
  • 华为OD机试双机位C卷-编程能力提升计划 (Py/Java/C/C++/Js/Go)
  • 【全网首发】2026华为OD双机位C卷 机考真题题库含考点说明以及在线OJ(OD上机考试双机位C卷)
  • 闲置微信立减金别扔!可可收专业平台一键回收,安全高效超省心 - 可可收
  • 一级减速器2.2KW
  • MusePublic开源镜像案例:美术馆用AI复原残损壁画的实践路径
  • 华为OD机试双机位C卷-AI面板识别(Py/Java/C/C++/Js/Go)
  • MusePublic Art Studio效果展示:低光照场景下细节保留能力实测
  • java里内存、GC、性能调优的常用方法
  • 乙巳马年春联生成终端企业级落地:API封装+品牌LOGO嵌入实操手册
  • Janus-Pro-7B快速上手:无需GPU环境也能跑通的开源多模态模型
  • VideoAgentTrek-ScreenFilter多场景落地:UI测试、内容审核、无障碍适配三合一
  • python组合数据类型之元组类型字典类型实例
  • 聚合万媒,智链未来:软盟发稿平台打造2026企业对外传播“超级枢纽” - 新闻快传
  • 开源轻量影像工具:Jimeng AI Studio (Z-Image Edition)镜像免配置部署指南
  • GLM-4.7-Flash行业落地:金融研报自动生成与关键信息抽取实战
  • Jmeter接口测试实战:接口加密、接口解密、签名sign接口实战
  • EVA-01实战教程:构建企业内部知识库视觉检索终端——EVA-01+向量数据库集成