一、Linux内核

Linux内核:由芬兰人林纳斯开发,是操作系统内部操作和控制硬件设备的核心程序

二、Linux发行版(操作系统)

1、Linux 发行版:Linux内核与各种常用软件的组合产品,通俗来说就是我们常说的Linux操作系统

2、常见操作系统

  • Ubuntu
  • CentOS
  • Readhad

三、Linux终端

  • 打开终端:ctrl + alt + t
  • 终端字体放大:ctrl + shift + +
  • 终端字体缩小:ctrl + -

img

三、Linux终端命令

1. 命令格式

1、基本格式([]代表可选):command [-options] [parameter]

  • command:命令名
  • [-options]:选项,分为短选项和长选项,可以有多个选项,且多个选项可以合并

短选项:-后面接单个字母,如:-r
长选项:--后面接单词,如:--help

  • [parameter]:参数,命令的操作对象,一般是文件名或者目录名,可以有多个参数

2、选项和参数一般情况下没有顺序要求,但是scp命令必须按照上述格式

2. 常用基础命令

(1)查看目录命令

1、**ls**

  • 查看目录信息(只能查看一层目录信息)
命令 说明
ls 显示当前路径目录信息
ls 目录路径 显示指定路径目录信息
ls -l 以列表方式显示
ls -h 文件大小单位显示,默认字节
ls -a 显示隐藏文件和隐藏目录

img

命令ll等价于ls -al

img

2、**tree**

  • 以树状方式显示目录信息(可以查看多层目录信息)
命令 说明
tree 以树状图方式显示当前目录信息
tree 目录路径 以树状图方式显示指定目录信息

img

  • 找不到的解决方案tree
    img
  1. 输入命令:sudo apt-get update
    img
  2. 输入命令:sudo apt-get install tree
    img

3、**pwd**

  • 查看当前目录路径
命令 说明
pwd 查看当前目录路径

img

(2)切换目录命令

1、**cd**

  • 完成目录切换操作(当切换目录时,这个目录必须存在,且不能切换文件)
命令 说明
cd 目录 切换到指定目录
cd ~ / cd 切换到当前用户的主目录
cd . 切换到当前目录
cd .. 切换到上一级目录
cd - 切换到上一次目录

img

2、绝对路径&相对路径的使用

  • 若切换的目录离当前目录近可使用相对路径
  • 若切换的目录离根目录近可使用绝对路径

当切换目录的时候,如果不确定当前目录下有哪些子目录,可以通过tab键查看

(3)创建文件和目录命令

1、**touch**

命令 说明
touch 文件路径 创建文件

img

2、**mkdir**

命令 说明
mkdir 目录路径 创建目录
mkdir -p 目录路径 创建目录,且创建不存在的父目录

创建隐藏文件/目录:文件或目录以.开头

img

(4)删除文件和目录命令

1、**rm**

命令 说明
rm 文件路径 删除文件
rm -i 文件路径 删除文件,且出现交互式提示
rm -f 文件路径 强制删除文件,忽略不存在的文件
rm -r 目录路径 删除目录及其内容
rm -d 目录路径 删除空目录

img

2、**rmdir**

命令 说明
rmdir 目录路径 删除空目录

img

(5)复制文件和目录命令

1、**cp**

命令 说明
cp 拷贝文件路径 粘贴文件路径 拷贝文件
cp -i 拷贝文件路径 粘贴文件路径 拷贝文件,粘贴文件路径下已有同名文件时,会出现交互式提示
cp -v 拷贝文件路径 粘贴文件路径 拷贝文件,且显示拷贝后的路径
cp -a 拷贝文件路径 粘贴文件路径 拷贝文件,且保留文件的原有权限
cp -r 拷贝目录路径 粘贴目录路径 拷贝目录及其内容

img

(6)移动/重命名文件和目录命令

1、**mv**

命令 说明
mv 拷贝文件/目录路径 粘贴文件/目录路径 移动文件/目录,若拷贝粘贴在同一级目录,且粘贴路径不存在,则是文件/目录重命名
mv -i 拷贝文件路径 粘贴文件路径 移动文件,粘贴文件路径下已有同名文件时,会出现交互式提示
mv -v 拷贝文件路径 粘贴文件路径 移动文件,且显示移动后的路径

img

3. 常用高级命令

(1)重定向命令

  • 把在终端执行命令的结果保存到目标文件
命令 说明
命令 > 文件路径 如果文件存在,会覆盖原有文件内容
命令 >> 文件路径 如果文件存在,会追加写入文件末尾

只要在终端能显示信息的命令都可以使用重定向

img

(2)查看和编辑文件内容命令

1、**cat**

  • 结合重定向可以完成多个文件的合并
命令 说明
cat 文件路径 查看小型文件

img

2、**more**

  • 当查看内容信息过长无法在一屏上显示时,可以使用 more 命令在终端分配显示文件内容
命令 说明
more 文件路径 分屏查看大型文件
操作键 说明
空格 显示下一屏信息
回车 显示下一行信息
b 显示上一屏信息
f 显示下一屏信息
q 退出

img

3、**gedit**

命令 说明
gedit 文件路径 查看和编辑文件

img

(3)管道命令

  • 管道类似一个容器,用于存放在终端显示的内容
  • 一般结合 more 命令使用,主要是分配查看终端显示内容
命令 说明
命令1 | 命令2 命令1 的输出作为命令 2 的输入

img

(4)创建链接命令

  • 创建软链接时,如果软链接和原文件不在同一级目录,原文件要使用绝对路径,不要使用相对路径
  • 创建硬链接时,硬链接数会加1,删除原文件或者硬链接时,硬链接数会减1
命令 说明
ln -s 原文件/目录路径 软链接文件/目录路径 创建软链接,指向原文件,方便文件的快速访问,删除源文件软链接会失效
ln 原文件路径 硬链接文件路径 创建硬链接,与原文件指向同一个文件数据,防止文件数据被误删,删除源文件硬链接不会失效

硬链接数:文件数据被文件名使用的次数

img

(5)文本搜索命令

命令 说明
grep 文本 文件路径 在指定文件路径下搜索指定文本
grep -i 文本 文件路径 在指定文件路径下搜索指定文本,且忽略大小写
grep -n 文本 文件路径 在指定文件路径下搜索指定文本,且显示匹配行号
grep -v 文本 文件路径 在指定文件路径下搜索指定文本,且显示不包含匹配文本的所有行

img

  • 可以结合正则表达式
正则表达式 说明
^ 以指定字符串开头
$ 以指定字符串结尾
. 匹配一个非换行符的字符

img

  • 可以文本搜索管道中的内容

(6)查找文件命令

命令 说明
find 目录路径 查找指定目录下所有文件/目录
find 目录路径 -name 文件名/目录名 在指定目录下查找文件/目录查找指定文件名/目录名

img

  • 可以结合通配符使用,用来模糊搜索文件
通配符 说明
* 代表0个或多个任意字符
? 代表任意一个字符

img

通配符不仅能结合 find 命令使用,还可以结合其它命令使用,但只有 find 命令使用通配符需要加上引号

(7)压缩和解压缩命令

Linux默认支持的压缩格式:.gz.bz2.zip

1、**tar**

命令 说明
tar -zcvf 文件名.gz 文件/目录路径 将文件/目录压缩为指定文件名的 .gz 文件
tar -jcvf 文件名.bz2 文件/目录路径 将文件/目录压缩为指定文件名的 .bz2 文件
tar -zxvf .gz文件路径 解压缩.gz 文件
tar -jxvf .bz2文件路径 解压缩.bz2 文件
tar -zxvf .gz文件路径 -C 目录路径 解压缩.gz 文件到指定目录
tar -jxvf .bz2文件路径 -C 目录路径 解压缩.bz2 文件到指定目录
  • 选项说明
选项 说明
-z 压缩/解压缩(.gz)
-j 压缩/解压缩(.bz2)
-c 打包文件
-x 解包文件
-v 显示打包/解包的详细信息
-f 文件/目录路径(必须放到所有选项后面)
-C 解压缩到指定目录

img
img

.gz文件标准命名方式:文件名.tar.gz

2、**zip****unzip**

命令 说明
zip 文件名.zip 文件/目录路径 压缩成.zip格式文件
unzip .zip文件路径 解压缩.zip格式文件
unzip .zip文件路径 -d 目录路径 解压缩到指定目录

img

压缩文件尽量使用.gz格式,因为占用空间较少

(8)文件权限命令

1、**chmod**字母法

命令 说明
chmod 角色+操作符+权限 文件路径 修改文件权限
  • 角色
角色 说明
u user,表示该文件的所有者
g group,表示用户组
o other,表示其他用户
a all,表示所有用户
  • 操作符
操作符 说明
+ 增加权限
- 撤销权限
= 设置权限
  • 权限
权限 说明
r 可读
w 可写
x 可执行
- 无任何权限

img

2、**chmod**数字法

命令 说明
chmod 所有者权限值之和+同组用户权限值之和+其他用户权限值之和 修改文件权限
  • 权限值
权限 说明
r 可读,权限值是4
w 可写,权限值是2
x 可执行,权限值是1
- 无任何权限,权限值是0

权限值之和即权限对应的值相加,例:可读可写权限值为 4+2=6,可读可写可执行权限值为 4+2+1=7

img

(9)获取管理员权限

1、**sudo**

命令 说明
sudo -s 切换到root用户,获取管理员权限
sudo 命令 获取管理员权限执行单条命令(临时管理员权限)
  • 使用sudo –s后,操作需谨慎
  • 如果只是某次操作需要使用管理员权限,建议使用 sudo
  • 用户相关命令大部分需要使用管理员权限,所以前面需要加上 sudo

img

(10)用户组设置相关命令

需要管理员权限

1、创建用户组:**groupadd**

命令 说明
groupadd 用户组名 创建用户组
  • 查看用户组是否创建成功,可以查看文件:cat /etc/group
  • group内容格式:用户组名:密码占位符(一般Linux系统的用户组都没有密码):用户组id

img
img

2、删除用户组:**groupdel**

命令 说明
groupdel 用户组名 删除用户组

如果用户组下面有用户,需要先删除用户

img

(11)用户设置相关命令

1、创建用户:**useradd**

需要管理员权限

命令 说明
useradd 用户名 创建用户
useradd -m 用户名 创建用户,且自动创建用户主目录,主目录名就是用户名
useradd -g 用户组 创建用户,且指定用户所属的用户组
  • 不使用 -g 选项时,会给用户自动创建一个同用户名的用户组

  • 查看用户是否创建成功,可以查看文件:cat /etc/passwd

  • passwd内容格式:用户名:密码占位符:用户id(uid):用户gid(主组id):用户描述(可选):用户主目录所在位置:用户所用 shell 的类型(一般为bash或sh,默认sh类型)

img
img

2、设置用户密码:**passwd**

命令 说明
passwd 给当前用户设置密码
passwd 用户名 给其它用户设置密码,需要管理员权限

img
img

3、查看用户信息:**id**

命令 说明
id 用户名 查看用户信息

用户信息格式:uid =用户id(用户名) gid=用户主组id(用户组名) 组=用户组id(用户组名)

img

4、修改用户信息:**usermod**

需要管理员权限

命令 说明
usermod -g 用户组名 用户名 修改用户所属用户组
usermod -G 用户组名 用户名 给用户设置附加组

img

5、删除用户附加组:**gpasswd**

需要管理员权限

命令 说明
gpasswd -a 用户名 用户组名 给用户添加附加组
gpasswd -d 用户名 用户组名 给用户删除附加组

img

6、删除用户:**userdel**

命令 说明
userdel 用户名 删除用户
userdel -r 用户名 删除用户,且删除用户主目录

若用户组与用户名同名,则删除用户后,用户组也会被删除

img

(12)用户切换相关命令

1、**who**

命令 说明
who 查看所有的登录用户

img

2、**whoami**

命令 说明
whoami 查看当前用户

img

3、**su**

命令 说明
su - 用户名 切换用户

img

4、**exit**

命令 说明
exit 若是切换后的登陆用户,则返回上一个登录用户;若是终端界面,则退出当前终端

img

(13)远程命令

1、远程登录命令:**ssh**

  • ssh是专门为远程登录提供的一个安全性协议,常用于远程登录,需要安装相应的服务端和客户端软件
命令 说明
ssh 服务器用户名@服务器ip地址 远程登录
  • 在Ubuntu安装ssh服务端软件,命令:sudo apt-get install openssh-server

  • 在Ubuntu安装ssh客户端软件,命令:sudo apt-get install openssh-client

  • 在 Windows安装 ssh服务端/客户端,需要安装OpenSSH for Windows这个软件

  • macOS默认自带ssh服务端/客户端

  • Linux查看主机 ip 地址命令:ifconfig

  • windows 查看主机 ip 地址命令为:ipconfig

img

img

2、远程拷贝命令:**scp**

  • scp是基于ssh进行远程文件拷贝的命令,需要保证服务端和客户端电脑都安装了相应的ssh软件
命令 说明
scp 本地文件路径 服务器用户名@服务器ip地址:服务器目录路径 将本地文件拷贝到服务器
scp 服务器用户名@服务器ip地址:服务器文件路径 本地目录路径 将服务器文件拷贝到本地
scp -r 本地目录路径 服务器用户名@服务器ip地址:服务器目录路径 将本地目录拷贝到服务器
scp -r 服务器用户名@服务器ip地址:服务器目录路径 本地目录路径 将服务器目录拷贝到本地

注意:scp命令的-r选项不能放到最后

3、FileZilla软件

  • FileZilla 是一个免费开源的FTP软件,使用可视化方式进行上传和下载文件;可以通过 FileZilla 来代替 scp 命令
    下载地址:https://filezilla-project.org/index.php
    img

(14)编辑器 vim

  • vim 是一款功能强大的文本编辑器,也是早年 Vi 编辑器的加强版,它的最大特色就是使用命令进行编辑,完全脱离了鼠标的操作

  • vim 打开文件进入的是命令模式,编辑模式和末行模式之间不能直接进行切换,都需要通过命令模式来完成
    img
    img
    img

    • i 进入编辑模式,esc 退回命令模式
    • : 进入末行模式,esc 退回命令模式
      img

1、vim 打开文件

命令 说明
vim 文件路径 使用 vim 打开文件,进入命令模式

img

2、vim 命令模式常用操作键

常用操作键 说明
yy 复制光标所在行
dd 删除/剪切当前行
p 粘贴
u 撤销
ctr+r 反撤销
>> 往右缩进
<< 往左缩进
. 重复上一次命令操作
V 按行选中
G 回到最后一行
gg 回到第一行
数字+G 回到指定行
shift+6 回到当前行的行首
shift+4 回到当前行的行末
ctr+f 下一屏
ctr+b 上一屏
:/搜索的内容 搜索指定内容
:%s/要替换的内容/替换后的内容/g 全局替换
:开始行数,结束行数s/要替换的内容/替换后的内容 局部替换

3、vim 末行模式常用命令

命令 说明
:w 保存
:wq 保存退出
:x 保存退出
:q! 强制退出,且不保存

(15)软件安装和卸载

需要管理员权限

1、离线安装和卸载

  • deb 是 Ubuntu 的安装包格式,可以使用 dpkg 命令进行软件的安装和卸载
命令 说明
dpkg -i 安装包路径 离线安装 deb 安装包
dpkg –r 安装包名 离线卸载 deb 安装包

img

2、在线安装和卸载

  • 主要用于在线从互联网的软件仓库中搜索、安装、升级、卸载软件
命令 说明
sudo apt–get install 安装包名 在线安装deb安装包
sudo apt–get remove 安装包名 在线卸载deb安装包

3、更改镜像源

因为使用 apt-get 命令默认是从国外的服务器下载安装软件的,会导致下载安装速度很慢,所以需要更改成国内的镜像源服务器

  • 方法一:可视化方式更改镜像源
  • 方法二:手动方式更改镜像源

查看已安装软件:apt list,建议结合 grep 命令搜索

4. 其他命令

1、清除终端

命令 说明
clear 清除终端内容

2、关机和重启

命令 说明
shutdown –h now 立刻关机
reboot 重启

3、查看命令所在位置

命令 说明
which 命令 查看命令所在位置

4、查看命令帮助

  • 方法一:命令 --help
  • 方法二:man 命令

man命令的说明

操作键 说明
空格 显示下一屏信息
回车 显示下一行信息
b 显示上一屏信息
f 显示下一屏信息
q 退出

附录-参考资料

菜鸟教程-Linux教程

https://www.runoob.com/linux/linux-tutorial.html