一、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目录结构

常见目录:

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

三、Linux核心命令

pwd

查看当前路径

pwd

ls

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

详细查看:

ls -l

显示隐藏文件:

ls -la

cd

切换目录

cd 目录名

返回上一级:

cd ..

直接回家目录:

cd ~

四、文件操作相关命令

mkdir

创建目录

mkdir text

递归创建:

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

touch

touch main.py

一次创建多个:

touch app.py config.py

rm

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

删除文件

rm test.txt

删除目录:

rm -r test

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

rm -rf test

cp

复制

# cp 源文件 目标文件
cp a.txt b.txt

复制目录:

cp -r app backup

mv

移动 / 重命名

重命名:

# mv old-name new-name
mv a.txt b.txt

移动:

# mv 源文件 目标路径
mv main.py app/

五、查看文件内容

cat

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

查看文件

cat -n main.py

less

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

less app.log

退出:

q

more

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

more app.log

tail

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

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

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

六、输出重定向

列表的内容覆盖写入文件

ls -a > 文件

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

ls -a >> 文件

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

echo "内容" > 文件

七、vi/vim 编辑器

在这里插入图片描述

八、用户管理命令

8.1 root 用户

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

1. root 用户特点

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

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

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

sudo apt install package_name

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

8.2 useradd 添加新用户

# 添加新用户
useradd 用户名  
# 添加新用户到某个组
useradd -g 组名 用户名  

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

8.3 passwd 设置用户密码

# 设置用户密码
passwd 用户名 

8.4 id 查看用户是否存在

# 查看用户是否存在
id 用户名  

8.5 查看创建了哪些用户

cat /etc/passwd 

8.6 删除用户

# 删除用户但保存用户主目录
userdel 用户名    
# 用户和用户主目录,都删除
userdel -r 用户名 

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

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

useradd testu
passwd testu

2.修改配置文件

vi /etc/sudoers

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

## Allow root to run any commands anywhere
root ALL=(ALL) ALL 
testu ALL=(ALL) ALL

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

## 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:自动把旧家目录文件移动到新目录里
# 基本语法
usermod -l 新用户名 老用户名
usermod -d /home/新目录名 -m 新用户名

九、用户组管理命令

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

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

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

9.1 groupadd 新增组

groupadd 组名

9.2 groupdel 删除组

groupdel 组名

9.3 groupmod 修改组名

  • -n:指定工作组的新组名
groupmod -n 新组名 老组名

9.4 usermod 修改用户组

  • -g:指定用户需要加入的用户组
# 指定用户需要加入的用户组
usermod -g 组名 用户名   

9.5 查看创建了哪些组

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. 字母方式
u  所有者
g  所属组
o  其他人
a  所有人

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

r  读
w  写
x  执行

例子:

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

10.3 chown

修改所有者和所属组

chown 用户名 文件
chown 用户名:组名 文件
chown -R 用户名:组名 目录  # 递归修改

例子:

chown root shturl.c
chown root:root shturl.c
chown -R zxf:zxf test/

10.4 chgrp

只修改所属组

chgrp 组名 文件

例子:

chgrp zxf shturl.c

十一、收索查找类

11.1 find查找文件或者目录

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

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

案例:

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

11.2 grep与管道符过滤查找

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

  • grep:文本搜索匹配工具

  • -n:显示行号

案例:

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

十二、压缩解压文件

tar 打包

  • -c:创建打包文件
  • -v:显示详细信息
  • -f:指定压缩后的文件名
  • -z:打包并压缩
  • -x:解包 .tar文件
  • -C:解压到指定目录
# 压缩多个文件
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 查看磁盘空间

df -h

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

13.2 du 查看文件/目录大小

du -a 目录/文件

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

十四、网络类

14.1 ifconfig

ifconfig

查看网络接口与IP地址

14.2 ping

ping 目标主机

测试网络联通性

14.3 主机名

# 查看主机名
hostname
# 修改主机名
vi /etc/hostname

十五、进程类

15.1 ps 查看进程

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

15.2 kill 终止进程

# 强制杀死进程
kill -9 进程号

15.3 free 查看内容

# 以MB为单位显示内存使用
free -m

15.4 top系统监控

# 快捷键:P(CPU 排序)、M(内存排序)、q(退出)
top

15.5 netstat 查看网络端口

# 查看端口占用
netstat -nlp | grep 端口号
# 查看进程网络信息
netstat -anp | grep 进程号
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐