Linux入门及相关命令

文章目录

    • 一、Linux入门
    • 二、Linux文件与目录结构
    • 三、Linux核心命令
    • 四、文件操作相关命令
    • 五、查看文件内容
    • 六、输出重定向
    • [七、vi/vim 编辑器](#七、vi/vim 编辑器)
    • 八、用户管理命令
      • [8.1 root 用户](#8.1 root 用户)
        • [1. root 用户特点](#1. root 用户特点)
        • [2. 切换root用户](#2. 切换root用户)
        • [3. 使用sudo替代root用户操作](#3. 使用sudo替代root用户操作)
      • [8.2 useradd 添加新用户](#8.2 useradd 添加新用户)
      • [8.3 passwd 设置用户密码](#8.3 passwd 设置用户密码)
      • [8.4 id 查看用户是否存在](#8.4 id 查看用户是否存在)
      • [8.5 查看创建了哪些用户](#8.5 查看创建了哪些用户)
      • [8.6 删除用户](#8.6 删除用户)
      • [8.7 设置普通用户具有root 权限](#8.7 设置普通用户具有root 权限)
      • [8.8 修改用户](#8.8 修改用户)
    • 九、用户组管理命令
      • [9.1 groupadd 新增组](#9.1 groupadd 新增组)
      • [9.2 groupdel 删除组](#9.2 groupdel 删除组)
      • [9.3 groupmod 修改组名](#9.3 groupmod 修改组名)
      • [9.4 usermod 修改用户组](#9.4 usermod 修改用户组)
      • [9.5 查看创建了哪些组](#9.5 查看创建了哪些组)
    • 十、文件权限类
      • [10.1 文件属性](#10.1 文件属性)
        • [1. 字符解释](#1. 字符解释)
        • [2. rwx作用文件和目录的不同解释](#2. rwx作用文件和目录的不同解释)
        • [3. 实例操作](#3. 实例操作)
      • [10.2 chmod](#10.2 chmod)
        • [1. 字母方式](#1. 字母方式)
        • [2. 数字方式](#2. 数字方式)
      • [10.3 chown](#10.3 chown)
      • [10.4 chgrp](#10.4 chgrp)
    • 十一、收索查找类
      • [11.1 find查找文件或者目录](#11.1 find查找文件或者目录)
      • [11.2 grep与管道符过滤查找](#11.2 grep与管道符过滤查找)
    • 十二、压缩解压文件
    • 十三、磁盘类
      • [13.1 df 查看磁盘空间](#13.1 df 查看磁盘空间)
      • [13.2 du 查看文件/目录大小](#13.2 du 查看文件/目录大小)
    • 十四、网络类
      • [14.1 ifconfig](#14.1 ifconfig)
      • [14.2 ping](#14.2 ping)
      • [14.3 主机名](#14.3 主机名)
    • 十五、进程类
      • [15.1 ps 查看进程](#15.1 ps 查看进程)
      • [15.2 kill 终止进程](#15.2 kill 终止进程)
      • [15.3 free 查看内容](#15.3 free 查看内容)
      • [15.4 top系统监控](#15.4 top系统监控)
      • [15.5 netstat 查看网络端口](#15.5 netstat 查看网络端口)

一、Linux入门

1.1、概述

Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于UNIX和POSIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持3 2位和6 4位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

目前市面上较知名的发行版有:UbuntuRedHatCentOS、Debain、Fedora、SuSE、OpenSUSE。

1.2、Linux和Windows区别

对比维度 Windows Linux
免费与收费 收费且很贵 免费或少许可费用
软件与支持 数量和质量有优势,不过大部分为收费软件;由微软官方提供支持和服务 开源自由软件,用户可以修改定制和再发布;因基本免费缺乏资金支持,部分软件质量和体验欠缺;由全球的 Linux 开发者和自由软件社区提供支持
安全性 需频繁打补丁安装系统安全更新,仍易中病毒木马 并非没有安全问题,但比 Windows 更稳定安全,不易产生垃圾文件,适合长期运行
使用习惯 普通用户基本在纯图形界面下操作,依靠鼠标和键盘完成一切操作,上手容易、入门简单 兼具图形界面和完整命令行操作,可仅用键盘完成一切操作;新手入门较困难,需要学习和指导,熟练后效率极高
可定制性 封闭系统,可定制性很差 开源系统,可定制化非常强
应用场景 桌面操作系统的主流选择 支撑百度、谷歌、淘宝等应用和服务的后台服务器主机;世界上大部分软件和服务都运行在 Linux 之上

二、Linux文件与目录结构

2.1、Linux文件

在 Linux系统设计思想 中,遵循万物皆文件(Everything is a file)核心机制,系统将硬件设备、进程、网络套接字、目录、普通文本、驱动接口、内存资源等所有软硬件资源,统一抽象为文件形式进行管理。

2.2、Linux目录结构

常见目录:

tex 复制代码
/
├── home        # 用户目录
├── root        # root管理员目录
├── dev         # 设备
├── etc         # 配置文件
├── var         # 日志
├── usr         # 软件安装目录
├── tmp         # 临时文件
├── opt         # 第三方软件

三、Linux核心命令

pwd

查看当前路径

bash 复制代码
pwd

ls

bash 复制代码
ls
  • -a:全部的文件,连同隐藏档(开头为 . 的文件)一起列出来
  • -l:长数据串列出,包含文件的属性与权限等等数据
  • -R:递归列出目录下所有子目录及文件

详细查看:

bash 复制代码
ls -l

显示隐藏文件:

bash 复制代码
ls -la

cd

切换目录

bash 复制代码
cd 目录名

返回上一级:

bash 复制代码
cd ..

直接回家目录:

bash 复制代码
cd ~

四、文件操作相关命令

mkdir

创建目录

bash 复制代码
mkdir text

递归创建:

  • -p:创建多层目录(目标目录以及父目录)
bash 复制代码
mkdir -p app/api/v1

touch

bash 复制代码
touch main.py

一次创建多个:

bash 复制代码
touch app.py config.py

rm

  • r:递归删除目录以及其中所有内容
  • -f:强制执行删除操作,而不提示用于进行提示确认
  • -v:显示指令的详细执行过程

删除文件

bash 复制代码
rm test.txt

删除目录:

bash 复制代码
rm -r test

强制删除(递归的强制删除):

bash 复制代码
rm -rf test

cp

复制

bash 复制代码
# cp 源文件 目标文件
cp a.txt b.txt

复制目录:

bash 复制代码
cp -r app backup

mv

移动 / 重命名

重命名:

bash 复制代码
# mv old-name new-name
mv a.txt b.txt

移动:

bash 复制代码
# mv 源文件 目标路径
mv main.py app/

五、查看文件内容

cat

  • -n:显示所有的行号,包括空行

查看文件

bash 复制代码
cat -n main.py

less

可分页,但不显示进度,从头开始

bash 复制代码
less app.log

退出:

bash 复制代码
q

more

可分页,显示进度,从头开始

sql 复制代码
more app.log

tail

  • -n:指定要看的行数,不写默认10行
  • -F:实时追踪改文档的所有更新

查看最后几行(-n不填默认10行,一般用于看日志)

bash 复制代码
tail -n 要看的行数 app.log
# 修改改文件实时显示
tail -F 文件名 

六、输出重定向

列表的内容覆盖写入文件

bash 复制代码
ls -a > 文件

列表的内容追加到文件的末尾

bash 复制代码
ls -a >> 文件

可以通过echo来进行输出重定向

bash 复制代码
echo "内容" > 文件

七、vi/vim 编辑器

八、用户管理命令

8.1 root 用户

root 用户是具有最高权限的超级用户

1. root 用户特点

​ root 用户拥有系统的所有权限,可以对系统进行任何操作,包括修改系统关键配置文件、安装和卸载系统级软件、管理用户账户等。但由于其权限过大,不当操作可能会导致系统出现严重问题,甚至无法正常运行。

2. 切换root用户
bash 复制代码
# 切换用户,只能获得用户的执行权限,不能获得环境变量
su 用户名称
# 切换到用户并获得该用户的环境变量及执行权限
su - 用户名称
# 退出root 用户
exit
3. 使用sudo替代root用户操作

​ 虽然可以使用root用户登录并操作,但更推荐使用sudo命令。sudo 允许普通用户在需 要时以 root 权限执行特定的命令,而不需要一直以 root 用户身份登录。

在需要执行的命令前加上 sudo,例如要安装软件包:

bash 复制代码
sudo apt install package_name

系统会提示你输入当前普通用户的密码,输入正确后命令将以 root 权限执行。

8.2 useradd 添加新用户

bash 复制代码
# 添加新用户
useradd 用户名  
# 添加新用户到某个组
useradd -g 组名 用户名  

可以在useradd后面加-m指定是否创建用户目录

8.3 passwd 设置用户密码

bash 复制代码
# 设置用户密码
passwd 用户名 

8.4 id 查看用户是否存在

bash 复制代码
# 查看用户是否存在
id 用户名  

8.5 查看创建了哪些用户

bash 复制代码
cat /etc/passwd 

8.6 删除用户

bash 复制代码
# 删除用户但保存用户主目录
userdel 用户名    
# 用户和用户主目录,都删除
userdel -r 用户名 

8.7 设置普通用户具有root 权限

1.添加testu用户,并对其设置密码

bash 复制代码
useradd testu
passwd testu

2.修改配置文件

bash 复制代码
vi /etc/sudoers

修改 /etc/sudoers 文件,在root下面添加一行,如下所示:

bash 复制代码
## Allow root to run any commands anywhere
root ALL=(ALL) ALL 
testu ALL=(ALL) ALL

或者配置成采用sudo命令时,不需要输入密码

bash 复制代码
## Allow root to run any commands anywhere
root ALL=(ALL) ALL 
testu ALL=(ALL) NOPASSWD:ALL

修改完毕,通过:wq!退出编辑,然后可以用 testu 帐号登录,用命令 sudo ,即可获得 root 权限进行操作。不需要多次输入密码。

8.8 修改用户

  • -l:改变用户名
  • -d:指定新的家目录路径
  • -m:自动把旧家目录文件移动到新目录里
bash 复制代码
# 基本语法
usermod -l 新用户名 老用户名
usermod -d /home/新目录名 -m 新用户名

九、用户组管理命令

​ 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同。

​ 如 Linux 下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

​ 用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对**/etc/group** 文件的更新。

9.1 groupadd 新增组

bash 复制代码
groupadd 组名

9.2 groupdel 删除组

bash 复制代码
groupdel 组名

9.3 groupmod 修改组名

  • -n:指定工作组的新组名
bash 复制代码
groupmod -n 新组名 老组名

9.4 usermod 修改用户组

  • -g:指定用户需要加入的用户组
bash 复制代码
# 指定用户需要加入的用户组
usermod -g 组名 用户名   

9.5 查看创建了哪些组

bash 复制代码
cat /etc/group

十、文件权限类

10.1 文件属性

​ Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在 Linux 中我们可以使用 ll 或者 ls -l 命令来显示一个文件的属性以及文件所属的用户和组。

1. 字符解释

从左到右的10个字符表示

如果没有权限,就会出现 "-" ;从左至右用0-9这些数字来表示:

  1. 0:表示类型,在Linux中的第一个字符,代表这个文件是目录(d)、文件(-)、链接文件(l)等等。
  2. 第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User
  3. 第4-6位确定属组(所有者的同组用户)拥有该文件的权限。---Group
  4. 第7-9位确定其他用户拥有该文件的权限。---Other
2. rwx作用文件和目录的不同解释
权限 文件 目录
r(读) 可以读取、查看文件内容(如 cat 可以用 ls 查看目录里的文件名列表
w(写) 可以修改、写入文件内容(如 vim 保存) 可以在目录内创建、删除、重命名文件 / 子目录
x(执行) 可以把文件当作程序 / 脚本运行(如 ./shturl 可以用 cd 进入该目录,访问里面的文件

注意

  • 删除文件,看的是目录权限,不是文件权限
  • 目录要正常用,r和x必须同时存在
3. 实例操作

10.2 chmod

改变权限

1. 字母方式
tex 复制代码
u  所有者
g  所属组
o  其他人
a  所有人

+  加权限
-  减权限
=  直接设权限

r  读
w  写
x  执行

例子:

bash 复制代码
chmod u+x  文件    # 给所有者加执行权限
chmod g-w  文件    # 给组去掉写权限
chmod u+x,o+x 文件 # 所有者+其他人都加执行
2. 数字方式
tex 复制代码
r=4  w=2  x=1
rwx=7  rw-=6  r-x=5  --x=1

10.3 chown

修改所有者和所属组

tex 复制代码
chown 用户名 文件
chown 用户名:组名 文件
chown -R 用户名:组名 目录  # 递归修改

例子:

bash 复制代码
chown root shturl.c
chown root:root shturl.c
chown -R zxf:zxf test/

10.4 chgrp

只修改所属组

bash 复制代码
chgrp 组名 文件

例子:

bash 复制代码
chgrp zxf shturl.c

十一、收索查找类

11.1 find查找文件或者目录

功能:从指定目录递归遍历,查找满足条件的文件/目录

  • -name:按文件名查找(需要加引号)
  • -user:按文件所有者查找
  • -size:按文件大小查找
    • 'c':字节,'k':KB,'M':MB,'G':GB
    • '+n':大于,'-n':小于,'n':等于

案例:

bash 复制代码
find ./ -name "*.txt"         # 查找当前目录下所有txt文件
find ./ -user "zxf"           # 查找所有者是zxf的文件
find ./ -size "+200c"         # 查找大于200字节的文件

11.2 grep与管道符过滤查找

  • 管道符 | :将前一个命令结果传给后一个命令处理

  • grep:文本搜索匹配工具

  • -n:显示行号

案例:

bash 复制代码
# 查看系统中所有和 MySQL 相关的进程(看看 MySQL 有没有在运行)
ps -ef | grep -n mysqld

十二、压缩解压文件

tar 打包

  • -c:创建打包文件
  • -v:显示详细信息
  • -f:指定压缩后的文件名
  • -z:打包并压缩
  • -x:解包 .tar文件
  • -C:解压到指定目录
bash 复制代码
# 压缩多个文件
tar -zcvf tt.tar.gz tt.txt tt2.txt
tar -zcvf tt.tar.gz ./*
# 压缩目录
tar -zcvf test.tar.gz test/
# 解压到当前目录
tar -zxvf test.tar.gz
# 解压到指定目录
tar -zxvf test.tar.gz -C ./work

十三、磁盘类

13.1 df 查看磁盘空间

bash 复制代码
df -h

人性化显示磁盘整体使用情况

13.2 du 查看文件/目录大小

bash 复制代码
du -a 目录/文件

显示文件/目录占用的磁盘空间

十四、网络类

14.1 ifconfig

bash 复制代码
ifconfig

查看网络接口与IP地址

14.2 ping

bash 复制代码
ping 目标主机

测试网络联通性

14.3 主机名

bash 复制代码
# 查看主机名
hostname
# 修改主机名
vi /etc/hostname

十五、进程类

15.1 ps 查看进程

bash 复制代码
# 查看所有进程(cpu/内存占用)
ps -aux
# 查看进程父子关系
ps -ef
# 常用
ps -ef | grep 程序名

15.2 kill 终止进程

bash 复制代码
# 强制杀死进程
kill -9 进程号

15.3 free 查看内容

bash 复制代码
# 以MB为单位显示内存使用
free -m

15.4 top系统监控

bash 复制代码
# 快捷键:P(CPU 排序)、M(内存排序)、q(退出)
top

15.5 netstat 查看网络端口

bash 复制代码
# 查看端口占用
netstat -nlp | grep 端口号
# 查看进程网络信息
netstat -anp | grep 进程号
相关推荐
kyle~1 小时前
机器人感知 --- 多相机传感时间误差分析
linux·c++·数码相机·机器人·ros2·传感器
minji...1 小时前
Linux 网络基础之传输层协议TCP(九)从内核源码的角度打通系统与网络之间的关系,套接字多态的体现
linux·运维·服务器·网络·网络协议·tcp/ip·http
Hui_AI7201 小时前
抖店铺货自动化:7个核心功能的技术实现方案
大数据·运维·人工智能·自动化·产品运营·ai写作·内容运营
yyuuuzz2 小时前
独立开发者线上服务运维的几点实践经验
运维·服务器·网络·云计算·aws
想唱rap2 小时前
IO多路转接Select
运维·服务器·网络·数据库·sql·tcp/ip·mysql
樱桃花下的小猫2 小时前
Rust 服务器倍率参数配置指南
服务器·云鸢互联·零门槛一键搭建·新手友好无技术门槛要求·腐蚀rust服务器一键开服·腐蚀rust·腐蚀rust低延迟稳定服务器
深藏bIue2 小时前
MySQL切换服务器数据迁移记录
服务器·mysql·oracle
云智慧AIOps社区2 小时前
轻帆云ITSM|制造业智能化转型,从流程重构看 IT 服务管理发展新趋势
运维·自动化·aiops·智能运维·itsm平台·it服务管理系统
闵孚龙2 小时前
Claude Code 技能系统全解析:AI Agent 自定义能力、SKILL.md、MCP 扩展、上下文预算与企业级自动化落地
运维·人工智能·自动化