美文网首页
Linux 常用高级命令总结

Linux 常用高级命令总结

作者: 越大大雨天 | 来源:发表于2019-05-08 12:55 被阅读0次

重定向命令

将命令行输出的结果写入指定文件内.

命令 说明
> 如果文件存在会覆盖原有文件内容,相当于文件操作中的‘w’模式
>> 如果文件存在会追加写入文件末尾,相当于文件操作中的‘a’ 模式

常用命令为:

  • ls /home > ./info.text

    将home目录的文件目录内容覆盖写入当前目录的info.txt文件中

  • pwd home >> ./info.text

    将home路径信息内容追加写入当前目录的info.txt文件中

查看文件内容

查看文件选项

命令 选项
cat 查看小型文件
more 分屏查看大型文件

常用命令为:

  • cat 1.txt

    查看1.txt文件内容,可结合重定向命令实现文件合并.如下:

  • cat 1.txt >> 2.txt

    将1.txt文件内容追加到2.txt文件内

  • more msg.txt

    分屏查看msg.txt文件内容

more分屏查看文件时操作命令:

操作间 说明
空格 显示下一屏信息
回车 现实下一行信息
b 显示上一屏信息
f 显示下一屏信息
q 退出查看

管道命令使用

管道(|):一个命令的输出可以通过管道做为另一个命令的输入,可以理解成是一个容器,存放在终端显示的内容。

常用命令为:

  • ls -lh | more

    将当前目录信息使用more分屏模式查看

  • 可结合后面的grep文本搜索命令使用,如下:

  • ls | grep 'txt'

    在ls返回的目录信息中搜索'txt'字段

链接命令

链接命令是创建链接文件,分为硬链接和软连接两种:

命令 说明
ln -s 创建软链接
ln 创建硬链接

软链接

类似于Windows下的快捷方式,当一个源文件的目录层级比较深,我们想要方便使用它可以给源文件创建一个软链接。

软链接命令为:

  • ln -s /home/python/Desktop/AA/info.txt ./info-s.txt

    给桌面AA文件夹内info.txt文件在当前路径创建软链接,名为info-s.txt

注意事项:

  • 如果软链接和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径

  • 删除源文件或移动源文件位置则软链接失效

  • 可以给目录创建软链接

硬链接

类似于源文件的一个别名,也就是说硬链接同源文件名一样,指向的是同一个文件数据,而不是指向它的源文件名.

硬链接的作用是可以给重要文件创建硬链接,能够防止文件数据被误删。

硬链接命令为:

  • ln ./AA/info.txt ./info-h.txt

    给当前目录下AA文件夹内info.txt文件在当前路径创建软链接,名为info-h.txt

注意事项:

  • 创建硬链接使用相对路径和绝对路径都可以

  • 删除源文件,硬链接还可以访问到数据。

  • 创建硬链接,硬链接数会加1,删除源文件或者硬链接,硬链接数会减1。

  • 创建软链接,硬链接数不会加1

  • 不能给目录创建硬链接

硬链接数:

硬链接数就是文件数据被文件名使用的次数, 好比引用计数

文本搜索命令

命令 说明
grep 文本搜索

grep命令选项:

命令选项 说明
-i 忽略大小写
-n 显示匹配行号
-v 显示不包含匹配的行

grep结合正则表达式使用:

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

常用命令为:

  • grep "python" hello.py -in

    在hello.py文件中搜索"python"内容,忽略大小写,并显示匹配行号.

  • grep "python" hello.py -iv

    在hello.py文件中搜索不包含"python"的行,忽略大小写.

  • grep "^py" hello.py -n"

    在hello.py文件中搜索"py"开头的内容,显示匹配行号.

  • grep "on$" hello.py -n

    在hello.py文件中搜索"on"结尾的内容,显示匹配行号.

  • grep "py.on" hello.py -n

    在hello.py文件中搜索符合"py.on"的内容,显示匹配行号.

结合管道使用:

  • ls | grep 'txt'

查找文件命令

命令 说明
find 在指定目录下查找文件(包括目录)

find常用选项:

选项 说明
-name 根据文件名(包括目录名)查找
- perm 根据文件权限查找

find可结合通配符使用:

  • 通配符不仅可用于文件查找,还可在其他命令中使用,比如ls、mv等
通配符 说明
* 代表0个或多个任意字符
? 代表任意一个字符

常用命令为:

  • find . -name "*.txt"

    在当前路径起始向下,所有文件名结尾为.txt的文件.

  • find ~ -perm 755

    在家目录下,查找所有权限为755的文件,即用户、用户组、其他用户权限分别为可读写操作/可读操作/可读操作。详细权限内容参考后文。

压缩和解压缩命令

Linux 默认支持的3种格式

  • .gz :使用tar命令来压缩和解压缩

  • .bz2 :使用tar命令来压缩和解压缩

  • .zip :使用zip命令来压缩和解压缩

tar 命令选项

选项 命令
-c 创建打包文件
-v 显示打包或解包详细信息
-f 指定文件名称
-z 压缩或解压缩(用于.gz格式)
-j 压缩或解压缩(用于.bz2格式)
-x 解包
-C 解压缩到指定目录

常用命令为:

  • tar -zcvf test.tar.gz dir1 dir2

    将dir1和dir2压缩为test.tar.gz 名的gz压缩文件

  • tar -zxvf test.tar.gz -C DIC

    将test.tar.gz文件解压到当前目录的DIC文件夹内

  • tar -jcvf test.bz2 dir1 dir2

    将dir1和dir2压缩为test.bz2 名的bz2压缩文件

  • tar -zxvf test.bz2 -C DIC

    将test.bz2文件解压到当前目录的DIC文件夹内

可不指定解压或压缩路径,默认解压或压缩到当前路径

zip 和unzip命令选项的使用

命令及选项 说明
zip 压缩成.zip格式文件
unzip 解压缩.zip格式文件
-d 解压缩到指定目录

常用命令为:

  • zip test.zip dir1 dir2

    将dir1和dir2压缩为test.zip

  • unzip test.zip -d DIC

    将test.zip解压到DIC目录内

说明

  • 压缩文件尽量使用.gz格式,占用空间更少

  • zip格式占用空间较大,但各平台较通用

用户权限命令

chmod命令介绍

chmod用于修改文件权限,修改方式分为两种:

  • 字母法

  • 数字法

字母法

角色 说明
u user,文件所有者
g group,用户组
o other,其他用户
a all,所以用户

权限说明

权限 说明
r 可读
w 可写
x 可执行
- 无任何权限

权限设置说明:

操作符 说明
+ 增加权限
- 撤销权限
= 设置权限

各角色权限对应位置说明:

image.png

如图:使用ls -l命令以列表方式显示文件信息,信息开头如-rw-rw-r--即为每个文件的权限,其长度为10。第一个位置为文件类型,除开第一个,其于9个每3个为一组,分别对应用户u、g、o权限的r、w、x权限,无权限的为-表示。

权限对应示例:

---------所有用户均无任何权限

rwxrwxrwx所有用户都有读、写、可执行的权限

rwxrw-r--user可读、写、执行,group可读、写,other只可读

字母法修改权限命令示例:

就以上图1.bz2文件权限为例修改

  • 命令:chmod u=rwx,g-w,o+x 1.bz2

    解析:命令修改1.bz2文件权限:user改为rwx权限,user去掉w权限,other增加x权限,修改后1.bz2权限如下,可与上图对比。

    image.png

数字法

数字法可以让“rwx”三个权限字母仅用一个数字来代替

权限说明:

权限 说明 权限值
r 可读 4
w 可写 2
x 可执行 1
- 无任何权限 0

把对应权限的权限值相加,即可得到最终权限值;

如rw- 对应权限值6,r-x对应权限值5,r--对应权限值4;

在修改权限命令中用3个数字可分别对应u、g、o的权限内容。

数字法修改权限命令示例:

同样以上图1.bz2文件权限为例修改

  • 命令:chmod 666 1.bz2

    解析:命令修改1.bz2文件权限为666,6=4+2 ,即分别对应u、g、o权限为rw-, 即修改所有角色权限为可读写权限,可继续对比上图。

    image.png

说明

常使用的是数字法给不同角色修改权限,语法更简洁。

获取管理员权限相关命令

sudo 命令的使用

命令 说明
sudo 单个命令l临时获取root权限,命令前加sudo
sudo -s 切换到root用户,获取管理员权限
  • 例:在根目录新建文件,需使用root权限:

    使用sudo获取临时权限:sudo touch /test.txt

whoami 命令

  • 查看当前用户权限

exit 命令

  • 退出登录用户(在不同用户之前切换时需先使用exit推出栈

who 命令

  • 查看所有登录用户

passwd 命令

  • 修改用户密码,不指定用户时默认修改当前登录用户密码

关机重启命令

  • shutdown -h now 立即关机

  • shutdown -h 10 10分钟后关机

  • reboot重启

用户相关操作

useradd 创建用户

创建用户需使用root权限

选项 说明
-m 创建用户时,自动创建用户主目录(基本都会使用该选项)
-g 指定用户所属的用户组,默认不指定时自动创建同名用户组

示例:

  • sudo useradd -m demo

    解析:创建用户demo,并默认创建同名用户组,图中可见,家目录中新增demo用户。

    image.png

    也可在使用命令cat /etc/passwd/etc/passwd中查看新增用户,最文件最后一行显示demo用户信息:

    image.png
  • id命令查看用户信息

    • 第一个: uid 表示用户id

    • 第二个: gid 表示用户组id

    • 第三个: 组 表示用户所在的用户组

    且可见新建demo用户的组数量小于python用户,这将会在下面详细讲到。

    image.png

设置密码

使用sudo passwd 用户名的命令形式给用户设置密码

  • 给新建用户demo设置密码命令:sudo passwd demo
image.png

切换用户

  • 使用su 用户命令切换用户

    切换用户后,当前用户名变为demo

    image.png
  • 新建的用户不在sudo的组内,是无法使用使用root权限的

    image.png

    解决办法:

    • 给demo用户设置一个sudo附加组, 需要使用usermod修改用户信息

修改用户信息

usermod:修改用户信息

选项 说明
-G 设置一个附加组
-g 修改用户组
  • 切换回原用户给demo用户设置附加组sudo,让其可使用sudo命令:

    sudo usermod -G sudo demo

image.png
  • 给demo用户修改组信息过后,即可成功切换到root用户下:
image.png

删除附加组

gpasswd :添加或删除附加组信息

选项 说明
-a 用户名 给用户添加附加组
-d 用户名 给用户删除附加组
  • 在python用户下删除demo用户的sudo组

    sudo gpasswd -d demo sudo

删除用户

userdel:删除用户

选项 说明
-r 用户名 删除用户主目录,必须要设置,否则用户主目录不会删除
  • 命令:sudo userdel -r demo删除创建的demo用户:

    删除前请确保使用exit完全退出了栈

    image.png

    忽略最后的提示,demo用户成功删除。

    删除用户,默认同名的用户组也会被删除

用户组相关操作

  • groupadd :创建用户组

    • sudo groupadd test
  • sudo useradd -m -g test demo: 创建demo用户同时指定用户组test

  • sudo usermod -g abc demo:修改用户组为abc

  • sudo usermod -G sudo demo: 给用户设置附加组sudo

  • groupdel:删除组

    • sudo groupdel test:删除用户组

    • 如果用户组下面有用户,需要先使用userdel -r删除用户,再删除组

编辑器 vim

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

vim的工作模式

  • 命令模式

  • 编辑模式: i

  • 末行模式:

    image.png

编辑模式和末行模式之间不能直接切换,都需要先退回到命令模式

vim 末行模式命令

命令模式下进入末行模式

  • :w 保存

  • :wq 保存退出

  • :x 保存退出

  • :q! 强制退出

vim 命令模式下常用命令

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

相关文章

  • Linux 常用高级命令总结

    重定向命令 将命令行输出的结果写入指定文件内. 常用命令为: ls /home > ./info.text将hom...

  • Linux系统基础命令汇总

    Linux系统学习,总结汇总了linux系统下基础常用的命令: 一.Linux系统基础常用命令 1.命令da...

  • Linux常用高级命令

    title: Linux常用高级命令date: 2017-09-30 19:36:51tags:Linux

  • linux的常用命令以及常用工具

    linux的常用命令以及常用工具 大数据的学习难免要做集群,集群难免用到linux,所以总结常用的linux命令,...

  • Linux常用简单命令

    0.前言 小白刚接触Linux。所以总结了Linux中常用的简单命令。本文涉及Linux常用的简单命令的介绍。比如...

  • linux常用命令行

    linux系统的使用离不开linux命令行,先对常用的linux命令行做个总结记录。目前,个人比较常用的命令行有如...

  • Linux学习总结

    Linux学习总结 一、Linux常用命令 1.1 命令格式 命令名 [选项] [参数1] [参数2] 使用bas...

  • 其他

    Git常用命令mac常用命令Linux 常用命令汇总Linux 常用命令0Linux 常用命令1--ls命令

  • 第 2 章 新手必须掌握的Linux命令(一)

    《Linux就该这么学》的作者总结了一些常用的命令 一、常用系统工作命令 1、echo命令 echo命令用...

  • Linux的cut,split,paste,grep,sed和a

    这是linux文本操作常用的几个命令,现在进行总结下

网友评论

      本文标题:Linux 常用高级命令总结

      本文链接:https://www.haomeiwen.com/subject/wpkmoqtx.html