linux高级命令
一、重定向命令
- 重定向命令的介绍:重定向也称为输出重定向,把在终端执行命令的结果保存到目标文件。
- 重定向命令的使用
命令 说明
>如果文件存在会覆盖原有文件内容,相当于文件操作中的‘w’模式
>>如果文件存在会追加写入文件末尾,相当于文件操作中的‘a’ 模式
终端内容保存到文件使用重定向有两种方式: > 和 >>
>表示每次只写入最新的数据,原有数据不保留。
>>表示每次在原有数据的基础上进行追加,原有数据会保留。
二、查看文件内容命令的使用
cat 查看小型文件
cat命令结合重定向可以完成多个文件的合并
gedit 文件编辑命令,可以查看和编辑文件
more 分屏查看大型文件
空格 显示下一屏信息
回车 显示下一行信息
b 显示上一屏信息
f 显示下一屏信息
q 退出
管道(|)命令的使用
管道(|)一般结合 more 命令使用,主要是分配查看终端显示内容。
小结
查看小文件使用 cat 命令
分屏查看大型文件使用 more 命令,
查看终端显示内容并分屏展示,使用 管道(|) 结合 more 命令。
三、链接命令
ln -s 创建软链接
ln 创建硬链接
(1). 软链接
注意:
- 如果软链接和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
- 删除源文件则软链接失效
- 可以给目录创建软链接
- 软链接小结
软链接的作用是方便文件的快速访问,比如:给一个复杂路径下的文件创建一个软链接,以后就可以通过软链接完成快速访问操作。
创建软链接命令格式: ln -s 源文件路径(使用绝对路径) 软链接
(2). 硬链接
注意:
- 创建硬链接使用相对路径和绝对路径都可以
- 删除源文件,硬链接还可以访问到数据。
- 创建硬链接,硬链接数会加1,删除源文件或者硬链接,硬链接数会减1。
- 创建软链接,硬链接数不会加1
- 不能给目录创建硬链接
- 硬链接数:硬链接数就是文件数据被文件名使用的次数, 好比引用计数
- 硬链接小结
硬链接的作用是可以给重要文件创建硬链接,能够防止文件数据被误删。
删除源文件,软链接失效,但是硬链接依然可以使用。
创建硬链接命令格式: ln 源文件路径 硬链接
四、文本搜索命令
- grep命令的使用
grep 文本搜索 - grep命令选项的使用
-i 忽略大小写
-n 显示匹配行号
-v 显示不包含匹配文本的所有行 - grep命令结合正则表达式的使用
^ 以指定字符串开头
$ 以指定字符串结尾
. 匹配一个非换行符的字符 - 扩展
grep 命令还可以文本搜索管道中的内容,比如: ls / | grep ‘lib’
在使用 grep 命令的时候还可以省略搜索内容的引号,比如: ls / | grep lib, grep hello 1.txt - 小结
grep 命令是完成文本搜索操作的
文本搜索的命令格式: grep 选项 文本搜索内容
五、查找文件命令
- find命令及选项的使用
命令 说明
find 在指定目录下查找文件(包括目录)
find命令选项:
选项 说明
-name 根据文件名(包括目录名)字查找 - find命令结合通配符的使用
通配符:是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件
*代表0个或多个任意字符
?代表任意一个字符
通配符不仅能结合 find 命令使用,还可以结合其它命令使用, 比如: ls、mv、cp 等,这里需要注意只有 find 命令使用通配符需要加上引号。
六、压缩和解压缩命令
-
压缩格式的介绍
Linux默认支持的压缩格式:
.gz
.bz2
.zip
说明:.gz和.bz2的压缩包需要使用tar命令来压缩和解压缩
.zip的压缩包需要使用zip命令来压缩,使用unzip命令来解压缩
压缩目的:节省磁盘空间 -
tar命令及选项的使用
tar 压缩和解压缩命令
tar命令选项:
-c 创建打包文件
-v 显示打包或者解包的详细信息
-f 指定文件名称, 必须放到所有选项后面
-z 压缩或解压缩(.gz)
-j 压缩或解压缩(.bz2)
-x 解包
-C 解压缩到指定目录 -
zip和unzip命令及选项的使用
命令 说明
zip 压缩成.zip格式文件
unzip 解压缩.zip格式文件
unzip命令选项:
选项 说明
-d 解压缩到指定目录
说明:
压缩文件尽量使用.gz格式,因为占用空间较少
使用zip命令压缩的文件占用空间比较多, 当时比较通用,操作更加简单。
- 小结
.gz和.bz2的压缩文件使用tar命令来完成压缩和解压缩
.zip的压缩文件使用zip和unzip命令来完成压缩和解压缩
七、文件权限命令
- chmod命令的介绍
命令 说明
chmod 修改文件权限
chmod修改文件权限有两种方式:
字母法
数字法 - chmod 字母法的使用
角色说明:
u user, 表示该文件的所有者
g group, 表示用户组
o other, 表示其他用户
a all, 表示所有用户
权限设置说明:
+增加权限
-撤销权限
=设置权限
权限说明:
r 可读
w 可写
x 可执行
-无任何权限 - chmod 数字法的使用
数字法就是“rwx” 这些权限也可以用数字来代替
权限说明:
r 可读,权限值是4
w 可写,权限值是2
x 可执行,权限值是1
-无任何权限,权限值是0 - 小结
利用 chmod 命令可以控制文件的操作权限。
字母法格式: chmod 不同角色设置的权限 文件
数字法格式: chmod 不同角色的权限值 文件名
八、获取管理员权限的相关命令
- sudo命令的使用
sudo -s 切换到root用户,获取管理员权限
sudo 某个命令的执行需要获取管理员权限可以在执行命令前面加上sudo
如果只是某次操作需要使用管理员权限建议使用 sudo , 也就是说临时使用管理器权限。
如果大量操作都需要使用管理员权限 sudo –s, 但是操作需谨慎 - whoami命令的使用
whoami 查看当前用户限 - exit命令的使用
exit 退出登录用户
如果是切换后的登陆用户,退出则返回上一个登陆账号。
如果是终端界面,退出当前终端。 - who命令的使用
who 查看所有的登录用 - passwd命令的使用
passwd 修改用户密码,不指定用户默认修改当前登录用户密码 - which命令的使用
which 查看命令位置 - 关机和重启命令的使用
命令 说明
shutdown –h now 立刻关机
reboot 重启 - 小结
sudo 是临时获取管理员权限
sudo -s 是切换到管理员用户,一直使用管理员权限,需要谨慎操作。
exit 是退出当前用户
passwd 默认修改当前用户密码
九、用户相关操作
- 创建用户
useradd 创建(添加)用户
useradd命令选项:
-m 自动创建用户主目录,主目录的名字就是用户名
-g 指定用户所属的用户组,默认不指定会自动创建一个同名的用户组
-
说明:
useradd 命令的使用需要使用管理员权限,前面需要加上 sudo
创建用户如果不指定用户组,默认会自动创建一个同名的用户组
查看用户是否创建成功,可以查看/etc/passwd这个文件
查看用户组是否创建成功,可以查看/etc/group这个文件 -
passwd文件中的每项信息说明,以
root: x:0:0:root:/root:/bin/bash为例:
第一个:用户名
第二个:密码占位符
第三个:uid, 用户id
第四个:gid, 用户所在组id
第五个:用户描述, 可选,
第六个:用户的主目录所在位置
第七个:用户所用 shell 的类型,一般由bash或者sh,默认不设置是sh类型 -
group文件中的每项信息说明, 以laowang❌1001:为例:
第一个:用户组名
第二个:用户组密码占位符,一般Linux系统的用户组都没有密码的
第三个:组id -
id命令查看用户信息:
id 查看用户信息
每项信息说明:
uid=1001(laowang) gid=1001(laowang) 组=1001(laowang)
第一个: uid 表示用户id
第二个: gid 表示用户组id
第三个: 组 表示用户所在的用户组
- 设置密码
给其它用户设置密码,需要使用: sudo passwd 用户名 - 切换用户
命令 说明
su 切换用户
语法格式: su - 用户名
在laowang用户使用sudo -s效果图:
解决办法:
给laowang用户设置一个sudo附加组, 需要使用usermod修改用户信息
-
修改用户信息
usermod 修改用户信息
usermod选项:
-G 设置一个附加组
-g 修改用户组
-
扩展: 删除附加组
gpasswd 添加和删除附加组信息
gpasswd命令选项:
-a 用户名 给用户添加附加组
-d 用户名 给用户删除附加组 -
删除用户
userdel 删除用户
userdel命令选项:
-r 用户名 删除用户主目录,必须要设置,否则用户主目录不会删除
删除用户,默认同名的用户组也会被删除 -
小结
创建用户命令格式: sudo useradd -m 用户名, 默认会创建一个同名的用户组。
查看用户信息使用 id 命令或者 /etc/passwd文件
查看用户组信息使用 /etc/group文件
给用户设置密码使用 sudo passwd 用户名
切换用户使用 su - 用户名
设置附加组使用 sudo usermod -G 组名 用户名
删除用户使用 sudo userdel -r 用户名,默认会删除同名的用户组。
十、用户组相关操作
- 创建用户组
groupadd 创建(添加)用户组 (最前面要加上sudo)
- 创建用户并指定用户组
- 修改用户组
- 删除用户组
groupdel 删除用户组
如果用户组下面有用户先删除用户再删除用户组 - 小结
创建用户组使用: sudo groupadd 用户组名
创建用户并指定用户组使用: sudo useradd -m -g 用户组 用户名
修改用户组使用: sudo usermod -g 用户组 用户名
删除用户组使用: sudo groupdel 用户组名
十一、远程登录、远程拷贝命令
- 远程登录、远程拷贝命令的介绍
ssh 远程登录
scp 远程拷贝 - ssh命令的使用
ssh是专门为远程登录提供的一个安全性协议,常用于远程登录,想要使用ssh服务,需要安装相应的服务端和客户端软件,当软件安装成功以后就可以使用ssh命令了,以后可以通过远程登录之间操作远程的服务器。
远程登录效果图:
ssh命令
软件安装步骤:
假如Ubuntu作为服务端,需要安装ssh服务端软件. 执行命令: sudo apt-get install openssh-server
客户端电脑如果是 macOS 系统则不需要安装 ssh 客户端软件,默认已经安装过了,直接可以使用 ssh 命令
客户端电脑如果是Windows系统则需要安装OpenSSH for Windows这个软件
ssh命令格式:
ssh 用户名@ip地址
ssh命令效果图:
ssh命令
说明:
在一台电脑上可以安装安装ssh客户端和ssh服务端软件
在Ubuntu安装ssh客户端命令: sudo apt-get install openssh-client
3. scp命令的使用
scp是基于ssh进行远程文件拷贝的命令,也就是说需要保证服务端和客户端电脑安装了相应的ssh软件,以后可以把我们写代码远程拷贝到服务器。
scp命令格式:
远程拷贝文件
scp 本地文件 远程服务器用户名@远程服务器ip地址:指定拷贝到远程服务器的路径
scp 远程服务器用户名@远程服务器ip地址:远程服务器文件 指定拷贝到本地电脑的路径
远程拷贝目标
scp -r 本地目录 远程服务器用户名@远程服务器ip地址:指定拷贝到远程服务器的路径
scp -r 远程服务器用户名@远程服务器ip地址:远程服务器目录 指定拷贝到本地电脑的路径
-r 表示递归拷贝整个目录
本地文件远程拷贝到服务器效果图:
服务器文件远程拷贝到本地效果图:
本地目录远程拷贝到服务器效果图:
服务器目录远程拷贝到本地效果图:
4. 小结
ssh命令是远程登录主机电脑,相当于直接操作的是远程电脑。
scp命令是可以完成远程拷贝操作,注意:拷贝文件夹需要加-r选项。
大量的文件上传和下载可以通过可视化工具FileZilla来完成。
十二、编辑器vim
- vim 的介绍
vim 是一款功能强大的文本编辑器,也是早年 Vi 编辑器的加强版,它的最大特色就是使用命令进行编辑,完全脱离了鼠标的操作。 - vim 的工作模式
命令模式
编辑模式
末行模式
说明:
vim 打开文件进入的是命令模式
工作模式效果图:
编辑模式和末行模式之间不能直接进行切换,都需要通过命令模式来完成。 - vim 的末行模式命令
:w 保存
:wq 保存退出
:x 保存退出
:q! 强制退出 - vim 的常用命令
命令 说明
yy 复制光标所在行
p 粘贴
dd 删除/剪切当前行
V 按行选中
u 撤销
ctr+r 反撤销
>>往右缩进
<<往左缩进
:/搜索的内容 搜索指定内容
:%s/要替换的内容/替换后的内容/g 全局替换
:开始行数,结束行数s/要替换的内容/替换后的内容 局部替换
. 重复上一次命令操作
G 回到最后一行
gg 回到第一行
数字+G 回到指定行
shift+6 回到当前行的行首
shift+4 回到当前行的行末
ctr+f 下一屏
ctr+b 上一屏