Linux高级命令

文章目录

      • 1、重定向
      • 2、查看文件内容命令
        • 2.1 cat查看小文件
        • 2.2 more分屏查看大文件
        • 2.3 管道(|)
      • 3、链接命令
        • 3.1 软链接
        • 3.2 硬链接
      • 4、文本搜索命令
      • 5、查找文件命令
      • 6、压缩和解压缩命令
        • 6.1 tar压缩/解压.gz和.bz2
        • 6.2 zip和unzip压缩/解压.zip
      • 7、文件权限命令
        • 7.1 chmod 字母法
        • 7.2 chmod 数字法
      • 8、获取管理员权限
        • 8.1 sudo获取管理员权限
        • 8.2 whoami查看当前用户
        • 8.3 exit退出登录用户/终端
        • 8.4 who查看所有登录用户
        • 8.5 passwd修改密码
        • 8.6 which查看命令存储位置
        • 8.7 关机和重启命令
      • 9、用户组相关操作
        • 9.1 创建用户组
        • 9.2 查看用户组信息
        • 9.3 修改用户组
        • 9.4 删除用户组
      • 10、用户相关操作
        • 10.1 创建用户
        • 10.2 查看用户信息
        • 10.3 设置密码
        • 10.4 切换用户
        • 10.5 删除用户
      • 11、vim编辑器
        • 11.1 vim 的工作模式
        • 11.2 vim 的末行模式命令
        • 11.3 vim 的常用命令

1、重定向

重定向也称为输出重定向,将在终端执行命令的结果保存到目标文件。只要在终端能显示信息的命令都可以使用重定向,如: tree,cat 1.txt。重定向所需的存储文件若不存在会自动创建。

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

2、查看文件内容命令

2.1 cat查看小文件

【cat 文件】:查看小型文件
cat命令结合重定向可以完成多个文件的合并
e.g cat 1.txt 2.txt > 3.txt
将文件1、2的内容合并重定向到文件3

2.2 more分屏查看大文件

【more 文件】:分屏查看大型文件
当查看内容信息过长无法在一屏上显示时,可以使用 more 命令在终端分配显示文件内容。
操作键说明:

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

2.3 管道(|)

管道(|)将一个命令的输出通过管道做为另一个命令的输入,管道可以临时存储终端结果。
管道(|)一般结合 more 命令使用,主要是分屏查看终端显示内容,但无法查看上一页。
e.g ls / | more,在不新建文件的情况下分屏显示内容

3、链接命令

3.1 软链接

软链接类似于Windows下的桌面快捷方式,当一个源文件的目录层级比较深,想要方便使用它,可以给源文件创建一个软链接,从而方便文件的快速访问。
【ln -s 文件 软链接】:文件创建软链接
【ln -s 目录 软链接】:目录创建软链接
注意:

  • 如果软链接和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
  • 删除源文件,软链接失效(软连接依赖于原文件,原文件要写绝对路径。)

3.2 硬链接

类似于源文件的一个别名,两个名字指向的是同一个文件数据,且硬链接和源文件保持数据同步,任何一个改变另一个一起改变。可以给重要文件创建硬链接,从而防止文件数据被误删。
【ln 文件 硬链接】:创建硬链接
注意:(硬链接数就是文件数据被文件名使用的次数, 好比引用计数)

  • 创建硬链接不受路径影响
  • 删除源文件,硬链接还可以访问到数据(硬链接不依赖于原文件,原文件可以为相对路径。)
  • 创建硬链接,硬链接数会加1,删除源文件或者硬链接,硬链接数会减1
  • 创建软链接,硬链接数不变
  • 不能给目录创建硬链接

4、文本搜索命令

【grep 内容 文件】:在文件中搜索指定内容,输出含有指定内容的行
grep命令选项:

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

结合正则表达式的使用:

正则表达式 说明
^ 以指定字符串开头
$ 以指定字符串结尾
. 匹配一个非换行符的字符
  • grep 命令还可以文本搜索管道中的内容,如: ls / | grep 'lib’
  • 在使用 grep 命令的时候还可以省略搜索内容的引号,如: grep hello 1.txt

5、查找文件命令

【find 目录 -name “文件名”】:根据文件名(目录名)在指定目录下查找文件,子目录内文件也能找到
结合通配符的使用:
通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件

通配符 说明
* 代表0个或多个任意字符
? 代表任意一个字符

通配符不仅能结合 find 命令使用,还可以结合其它命令使用, 如: ls、mv、cp 等。只有find命令使用通配符需要加上引号。

6、压缩和解压缩命令

Linux默认支持的压缩格式:

  • .gz和.bz2的压缩包需要使用tar命令来压缩和解压缩
  • .zip的压缩包需要使用zip命令来压缩,使用unzip命令来解压缩
  • 压缩文件尽量使用.gz格式,一般情况下占用空间较少
  • 使用zip命令压缩的文件占用空间较多, 但比较通用,操作更简单

6.1 tar压缩/解压.gz和.bz2

  • 压缩-c:(无法压缩到指定目录)
    【tar -zcvf 压缩包.tar.gz 目录】:将目录/文件压缩成gz压缩包
    【tar -jcvf 压缩包.bz2 目录】:将目录/文件压缩成bz2压缩包
  • 解压-x:
    gz压缩包
    【tar -zxvf 压缩包.tar.gz】:解压gz压缩包到当前目录
    【tar -zxvf 压缩包.tar.gz -C 目录】:解压gz压缩包到指定目录
    bz2压缩包
    【tar -jxvf 压缩包.bz2】:解压bz2压缩包到当前目录
    【tar -jxvf 压缩包.bz2 -C 目录】:解压bz2压缩包到指定目录
    tar命令选项:
选项 说明
-c 创建打包文件
-v 显示打包或者解包的详细文件信息
-f 指定文件名称, 必须放到所有选项后面
-z 压缩或解压缩(.gz)
-j 压缩或解压缩(.bz2)
-x 解包
-C 解压缩到指定目录

6.2 zip和unzip压缩/解压.zip

【zip 压缩包.zip 目录】:将目录/文件压缩成zip压缩包
【unzip 压缩包.zip】:解压zip压缩包到当前目录
【unzip 压缩包.zip -d 目录】:解压zip压缩包到指定目录

7、文件权限命令

chmod修改文件权限有两种方式:

  • 字母法
  • 数字法

7.1 chmod 字母法

【chmod 角色 操作 权限 文件】:设置文件权限
e.g
chmod u+x 1.txt 对文件所有者增加执行权限
chmod g=rw 1.txt 对用户组设置权限
chmod u=r,g=-,i=rw 1.txt 同时设置多个角色的权限,逗号隔开无空格

角色说明:

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

权限设置说明:

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

权限说明:

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

./文件】:执行文件,e.g./info.py
在执行的代码第一行需声明此代码使用的解释器存放地址,解释器存放地址可以通过which命令查找
在这里插入图片描述
Linux高级命令_第1张图片

7.2 chmod 数字法

数字法就是“rwx” 这些权限也可以用数字计算值来代替
e.g chmod 664 1.txt 对应权限rw-rw-r–
权限说明:

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

8、获取管理员权限

8.1 sudo获取管理员权限

【sudo -s】:切换到root用户,获取管理员权限
【sudo 命令】:某个命令的执行需要获取管理员权限可以在执行命令前面加上sudo
Linux高级命令_第2张图片

  • 如果只是某次操作需要使用管理员权限建议使用sudo,临时使用管理器权限。
  • 如果大量操作都需要使用管理员权限 sudo -s,但是操作需谨慎。

8.2 whoami查看当前用户

【whoami】:查看当前用户

8.3 exit退出登录用户/终端

【exit】

  • 如果是切换后的登录用户,退出则返回上一个登录账号。
  • 如果是终端界面,则退出当前终端。

8.4 who查看所有登录用户

【who】:查看所有的登录用户

8.5 passwd修改密码

【passwd】:修改用户密码,不指定用户默认修改当前登录用户密码
【passwd 用户名】:修改指定用户密码

8.6 which查看命令存储位置

【which 命令】:查看命令存储位置

8.7 关机和重启命令

【shutdown –h now】:立即关机
【reboot】:重启

9、用户组相关操作

9.1 创建用户组

【groupadd 用户组】:创建用户组

9.2 查看用户组信息

【cat /etc/group】:查看/etc/group这个文件中的用户组信息,确认用户组是否创建成功

  • group文件中的每项信息说明:
    e.g laowang: x :1001:
    第一个:用户组名
    第二个:用户组密码占位符,一般Linux系统的用户组都没有密码
    第三个:用户组id

9.3 修改用户组

【sudo usermod -g 用户组 用户名】:修改用户组
usermod选项:

命令 说明
-G 设置一个附加组
-g 修改用户组

9.4 删除用户组

【groupdel 用户组】:删除用户组,当用户组下有用户时,需要先删除用户再删除用户组

10、用户相关操作

10.1 创建用户

【useradd -m 用户名】:创建用户,默认同时创建一个同名的用户组
【useradd -mg 用户组 用户名】:创建用户并指定用户组
useradd命令选项:

选项 说明
-m 自动创建用户主目录,主目录的名字就是用户名
-g 指定用户所属的用户组,默认不指定会自动创建一个同名的用户组

10.2 查看用户信息

【id 用户名】:查看指定用户信息
在这里插入图片描述

  • 每项信息说明:
    e.g uid=1001(laowang) gid=1001(laowang) 组=1001(laowang)
    第一个: uid – 表示用户id
    第二个: gid – 表示用户组id
    第三个: 组 – 表示用户所在的用户组

【cat /etc/passwd】:查看/etc/passwd文件中所有用户信息,确认用户是否创建成功,新建用户信息在文件末尾
Linux高级命令_第3张图片

  • 每项信息说明:
    e.g root: x :0:0:root:/root:/bin/bash
    第一个:root,用户名
    第二个:x,密码占位符
    第三个:uid,用户id
    第四个:gid,用户所在组id
    第五个:用户描述,,可选
    第六个:用户的主目录所在位置
    第七个:用户所用shell的类型,一般有bash或者sh,默认不设置是sh类型

10.3 设置密码

【passwd】:给当前用户设置密码
【passwd 用户名】:给指定用户设置密码

10.4 切换用户

【su - 用户名】:切换指定用户
【sudo -s】:切换到root用户,获取管理员权限。如果当前用户不在sudo用户组里,则报错不能切换到管理员用户
centos解决办法:【vim /etc/sudoers】修改sudoers文件,在root ALL=(ALL) ALL下一行添加用户名 ALL=(ALL) ALL。注意退出时需要强制保存退出(:wq!),切换回该用户就可以使用sudo命令了。
Linux高级命令_第4张图片

10.5 删除用户

【userdel -r 用户名】:删除用户,默认同名的用户组也会被删除。-r选项必须,删除用户主目录。

11、vim编辑器

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

11.1 vim 的工作模式

  • 命令模式 – vim 打开文件进入的是命令模式
  • 编辑模式(i)
  • 末行模式(:)
    Linux高级命令_第5张图片
    编辑模式和末行模式之间不能直接进行切换,都需要通过命令模式来完成转换

11.2 vim 的末行模式命令

  • :w 保存
  • :wq 保存退出
  • :x 保存退出
  • :q 退出
  • :q! 强制退出,对修改的内容不保存

11.3 vim 的常用命令

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

你可能感兴趣的:(学习笔记--linux,linux)