Linux - Ubuntu常用操作
一、Linux内核
Linux内核:由芬兰人林纳斯开发,是操作系统内部操作和控制硬件设备的核心程序
二、Linux发行版(操作系统)
1、Linux 发行版:Linux内核与各种常用软件的组合产品,通俗来说就是我们常说的Linux操作系统
2、常见操作系统
- Ubuntu
- CentOS
- Readhad
三、Linux终端
- 打开终端:
ctrl
+alt
+t
- 终端字体放大:
ctrl
+shift
++
- 终端字体缩小:
ctrl
+-
三、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 |
显示隐藏文件和隐藏目录 |
命令ll
等价于ls -al
2、**tree**
- 以树状方式显示目录信息(可以查看多层目录信息)
命令 | 说明 |
---|---|
tree |
以树状图方式显示当前目录信息 |
tree 目录路径 |
以树状图方式显示指定目录信息 |
- 找不到的解决方案
tree
:
- 输入命令:
sudo apt-get update
- 输入命令:
sudo apt-get install tree
3、**pwd**
- 查看当前目录路径
命令 | 说明 |
---|---|
pwd |
查看当前目录路径 |
(2)切换目录命令
1、**cd**
- 完成目录切换操作(当切换目录时,这个目录必须存在,且不能切换文件)
命令 | 说明 |
---|---|
cd 目录 |
切换到指定目录 |
cd ~ / cd |
切换到当前用户的主目录 |
cd . |
切换到当前目录 |
cd .. |
切换到上一级目录 |
cd - |
切换到上一次目录 |
2、绝对路径&相对路径的使用
- 若切换的目录离当前目录近可使用相对路径
- 若切换的目录离根目录近可使用绝对路径
当切换目录的时候,如果不确定当前目录下有哪些子目录,可以通过tab键查看
(3)创建文件和目录命令
1、**touch**
命令 | 说明 |
---|---|
touch 文件路径 |
创建文件 |
2、**mkdir**
命令 | 说明 |
---|---|
mkdir 目录路径 |
创建目录 |
mkdir -p 目录路径 |
创建目录,且创建不存在的父目录 |
创建隐藏文件/目录:文件或目录以.
开头
(4)删除文件和目录命令
1、**rm**
命令 | 说明 |
---|---|
rm 文件路径 |
删除文件 |
rm -i 文件路径 |
删除文件,且出现交互式提示 |
rm -f 文件路径 |
强制删除文件,忽略不存在的文件 |
rm -r 目录路径 |
删除目录及其内容 |
rm -d 目录路径 |
删除空目录 |
2、**rmdir**
命令 | 说明 |
---|---|
rmdir 目录路径 |
删除空目录 |
(5)复制文件和目录命令
1、**cp**
命令 | 说明 |
---|---|
cp 拷贝文件路径 粘贴文件路径 |
拷贝文件 |
cp -i 拷贝文件路径 粘贴文件路径 |
拷贝文件,粘贴文件路径下已有同名文件时,会出现交互式提示 |
cp -v 拷贝文件路径 粘贴文件路径 |
拷贝文件,且显示拷贝后的路径 |
cp -a 拷贝文件路径 粘贴文件路径 |
拷贝文件,且保留文件的原有权限 |
cp -r 拷贝目录路径 粘贴目录路径 |
拷贝目录及其内容 |
(6)移动/重命名文件和目录命令
1、**mv**
命令 | 说明 |
---|---|
mv 拷贝文件/目录路径 粘贴文件/目录路径 |
移动文件/目录,若拷贝粘贴在同一级目录,且粘贴路径不存在,则是文件/目录重命名 |
mv -i 拷贝文件路径 粘贴文件路径 |
移动文件,粘贴文件路径下已有同名文件时,会出现交互式提示 |
mv -v 拷贝文件路径 粘贴文件路径 |
移动文件,且显示移动后的路径 |
3. 常用高级命令
(1)重定向命令
- 把在终端执行命令的结果保存到目标文件
命令 | 说明 |
---|---|
命令 > 文件路径 |
如果文件存在,会覆盖原有文件内容 |
命令 >> 文件路径 |
如果文件存在,会追加写入文件末尾 |
只要在终端能显示信息的命令都可以使用重定向
(2)查看和编辑文件内容命令
1、**cat**
- 结合重定向可以完成多个文件的合并
命令 | 说明 |
---|---|
cat 文件路径 |
查看小型文件 |
2、**more**
- 当查看内容信息过长无法在一屏上显示时,可以使用 more 命令在终端分配显示文件内容
命令 | 说明 |
---|---|
more 文件路径 |
分屏查看大型文件 |
操作键 | 说明 |
---|---|
空格 |
显示下一屏信息 |
回车 |
显示下一行信息 |
b |
显示上一屏信息 |
f |
显示下一屏信息 |
q |
退出 |
3、**gedit**
命令 | 说明 |
---|---|
gedit 文件路径 |
查看和编辑文件 |
(3)管道命令
- 管道类似一个容器,用于存放在终端显示的内容
- 一般结合 more 命令使用,主要是分配查看终端显示内容
命令 | 说明 |
---|---|
命令1 | 命令2 |
命令1 的输出作为命令 2 的输入 |
(4)创建链接命令
- 创建软链接时,如果软链接和原文件不在同一级目录,原文件要使用绝对路径,不要使用相对路径
- 创建硬链接时,硬链接数会加1,删除原文件或者硬链接时,硬链接数会减1
命令 | 说明 |
---|---|
ln -s 原文件/目录路径 软链接文件/目录路径 |
创建软链接,指向原文件,方便文件的快速访问,删除源文件软链接会失效 |
ln 原文件路径 硬链接文件路径 |
创建硬链接,与原文件指向同一个文件数据,防止文件数据被误删,删除源文件硬链接不会失效 |
硬链接数:文件数据被文件名使用的次数
(5)文本搜索命令
命令 | 说明 |
---|---|
grep 文本 文件路径 |
在指定文件路径下搜索指定文本 |
grep -i 文本 文件路径 |
在指定文件路径下搜索指定文本,且忽略大小写 |
grep -n 文本 文件路径 |
在指定文件路径下搜索指定文本,且显示匹配行号 |
grep -v 文本 文件路径 |
在指定文件路径下搜索指定文本,且显示不包含匹配文本的所有行 |
- 可以结合正则表达式
正则表达式 | 说明 |
---|---|
^ |
以指定字符串开头 |
$ |
以指定字符串结尾 |
. |
匹配一个非换行符的字符 |
- 可以文本搜索管道中的内容
(6)查找文件命令
命令 | 说明 |
---|---|
find 目录路径 |
查找指定目录下所有文件/目录 |
find 目录路径 -name 文件名/目录名 |
在指定目录下查找文件/目录查找指定文件名/目录名 |
- 可以结合通配符使用,用来模糊搜索文件
通配符 | 说明 |
---|---|
* |
代表0个或多个任意字符 |
? |
代表任意一个字符 |
通配符不仅能结合 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 |
解压缩到指定目录 |
.gz文件标准命名方式:文件名.tar.gz
2、**zip**
和**unzip**
命令 | 说明 |
---|---|
zip 文件名.zip 文件/目录路径 |
压缩成.zip格式文件 |
unzip .zip文件路径 |
解压缩.zip格式文件 |
unzip .zip文件路径 -d 目录路径 |
解压缩到指定目录 |
压缩文件尽量使用.gz格式,因为占用空间较少
(8)文件权限命令
1、**chmod**
字母法
命令 | 说明 |
---|---|
chmod 角色+操作符+权限 文件路径 |
修改文件权限 |
- 角色
角色 | 说明 |
---|---|
u |
user,表示该文件的所有者 |
g |
group,表示用户组 |
o |
other,表示其他用户 |
a |
all,表示所有用户 |
- 操作符
操作符 | 说明 |
---|---|
+ |
增加权限 |
- |
撤销权限 |
= |
设置权限 |
- 权限
权限 | 说明 |
---|---|
r |
可读 |
w |
可写 |
x |
可执行 |
- |
无任何权限 |
2、**chmod**
数字法
命令 | 说明 |
---|---|
chmod 所有者权限值之和+同组用户权限值之和+其他用户权限值之和 |
修改文件权限 |
- 权限值
权限 | 说明 |
---|---|
r | 可读,权限值是4 |
w | 可写,权限值是2 |
x | 可执行,权限值是1 |
- |
无任何权限,权限值是0 |
权限值之和即权限对应的值相加,例:可读可写权限值为 4+2=6,可读可写可执行权限值为 4+2+1=7
(9)获取管理员权限
1、**sudo**
命令 | 说明 |
---|---|
sudo -s |
切换到root用户,获取管理员权限 |
sudo 命令 |
获取管理员权限执行单条命令(临时管理员权限) |
- 使用
sudo –s
后,操作需谨慎 - 如果只是某次操作需要使用管理员权限,建议使用 sudo
- 用户相关命令大部分需要使用管理员权限,所以前面需要加上
sudo
(10)用户组设置相关命令
需要管理员权限
1、创建用户组:**groupadd**
命令 | 说明 |
---|---|
groupadd 用户组名 |
创建用户组 |
- 查看用户组是否创建成功,可以查看文件:
cat /etc/group
- group内容格式:用户组名:密码占位符(一般Linux系统的用户组都没有密码):用户组id
2、删除用户组:**groupdel**
命令 | 说明 |
---|---|
groupdel 用户组名 |
删除用户组 |
如果用户组下面有用户,需要先删除用户
(11)用户设置相关命令
1、创建用户:**useradd**
需要管理员权限
命令 | 说明 |
---|---|
useradd 用户名 |
创建用户 |
useradd -m 用户名 |
创建用户,且自动创建用户主目录,主目录名就是用户名 |
useradd -g 用户组 |
创建用户,且指定用户所属的用户组 |
不使用
-g
选项时,会给用户自动创建一个同用户名的用户组查看用户是否创建成功,可以查看文件:
cat /etc/passwd
passwd内容格式:用户名:密码占位符:用户id(uid):用户gid(主组id):用户描述(可选):用户主目录所在位置:用户所用 shell 的类型(一般为bash或sh,默认sh类型)
2、设置用户密码:**passwd**
命令 | 说明 |
---|---|
passwd |
给当前用户设置密码 |
passwd 用户名 |
给其它用户设置密码,需要管理员权限 |
3、查看用户信息:**id**
命令 | 说明 |
---|---|
id 用户名 |
查看用户信息 |
用户信息格式:uid =用户id(用户名) gid=用户主组id(用户组名) 组=用户组id(用户组名)
4、修改用户信息:**usermod**
需要管理员权限
命令 | 说明 |
---|---|
usermod -g 用户组名 用户名 |
修改用户所属用户组 |
usermod -G 用户组名 用户名 |
给用户设置附加组 |
5、删除用户附加组:**gpasswd**
需要管理员权限
命令 | 说明 |
---|---|
gpasswd -a 用户名 用户组名 |
给用户添加附加组 |
gpasswd -d 用户名 用户组名 |
给用户删除附加组 |
6、删除用户:**userdel**
命令 | 说明 |
---|---|
userdel 用户名 |
删除用户 |
userdel -r 用户名 |
删除用户,且删除用户主目录 |
若用户组与用户名同名,则删除用户后,用户组也会被删除
(12)用户切换相关命令
1、**who**
命令 | 说明 |
---|---|
who |
查看所有的登录用户 |
2、**whoami**
命令 | 说明 |
---|---|
whoami |
查看当前用户 |
3、**su**
命令 | 说明 |
---|---|
su - 用户名 |
切换用户 |
4、**exit**
命令 | 说明 |
---|---|
exit |
若是切换后的登陆用户,则返回上一个登录用户;若是终端界面,则退出当前终端 |
(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
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
(14)编辑器 vim
vim 是一款功能强大的文本编辑器,也是早年 Vi 编辑器的加强版,它的最大特色就是使用命令进行编辑,完全脱离了鼠标的操作
vim 打开文件进入的是命令模式,编辑模式和末行模式之间不能直接进行切换,都需要通过命令模式来完成
- 按
i
进入编辑模式,esc
退回命令模式 - 按
:
进入末行模式,esc
退回命令模式
- 按
1、vim 打开文件
命令 | 说明 |
---|---|
vim 文件路径 |
使用 vim 打开文件,进入命令模式 |
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 安装包 |
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 |
退出 |