Bootstrap

Linux常用命令大全

作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师

主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互助

收藏点赞不迷路  关注作者有好处

文末获取源码 

一、Linux基础命令

1.0 帮助命令

1.0.1 man 获得帮助信息

  • 基本语法
    man [命令或配置文件]       (功能描述:获得帮助信息)

    通过man命令查看其它命令的详细文档,man 工具是显示系统手册页中的内容

  • 显示说明
信息功能
NAME命令的名称和单行描述
SYNOPSIS怎样使用命令
DESCRIPTION命令功能的深入讨论
EXAMPLES怎样使用命令的例子
SEE ALSO相关主题(通常是手册页)
  • 案例实操

查看ls命令的帮助信息

[root@java137~]# man ls

1.0.2 help 获得shell内置命令的帮助信息

  • 基本语法
    help 命令 (功能描述:获得shell内置命令的帮助信息)
    
  • 案例实操

    查看cd命令的帮助信息

    [root@localhost ~]# help cd

1.0.3 常用快捷键

常用快捷键功能
ctrl + c停止进程
ctrl+l清屏;彻底清屏是:reset
ctrl + q退出
善于用tab键提示(更重要的是可以防止敲错)
上下键查找执行过的命令
ctrl +altlinux和Windows之间切换

1.1 Linux命令-查看IP

  • ifconfig

1.2 Linux命令-文件列表

命令功能
ls列出当前文件夹下文件名称
ls -l列出当前文件夹下文件名称和详细信息
ls -a查看隐藏文件
ls [文件]...ls 后可以跟多个文件夹的名称, 一次可以查看多个文件夹中的内容
ll列出当前文件夹下文件名称和详细信息( ls -l 的简写) 注意此命令属于扩展命令, 有些linux版本不支持

重点掌握: ll 和 ls 常用的是ll 可以查看文件详细信息 ls只查看名称没有详细信息

1.3 Linux命令-目录切换

命令功能
cd ~切换至当前用户的跟目录
cd /切换至跟目录
cd ..切换至上一级 (注意空格)
cd -退回上一次操作的目录路径
cd app切换到app
pwd显示当前工作目录的绝对路径

1.4 Linux命令-目录创建和删除

  • mkdir(make directory)命令可用来创建子目录

    mkdir app 当前目录下创建 app 目录 mkdir -p a/b/c 级联创建目录

  • rmdir(remove directory)命令可用来删除“空”的子目录:

    rmdir app 删除app目录

  • ==注意事项==

    rmdir只能删除空文件夹(目录)

    如果删除多层目录,需要加上 -p参数【x】,这样删除不掉,后期删多级目录使用 rm

    rmdir -p a/b/c

1.5 Linux命令-文件查看

1.5.1 cat 查看文件内容【掌握】

查看文件内容,从第一行开始显示。主要用于查看小文件

  • 基本语法
    cat  [选项] 要查看的文件
  • 选项说明
    选项功能描述
    -n显示所有行的行号,包括空行。
  • 案例操作
    [atguigu@java137 ~]$ cat -n houge.txt 

1.5.2 more 文件内容分屏查看器

more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明。

  • 基本语法
    more 要查看的文件
  • 操作说明
操作功能说明
空格键 (space)代表向下翻一页;
Enter代表向下翻『一行』;
q代表立刻离开 more ,不再显示该文件内容。
Ctrl+F向下滚动一屏
Ctrl+B返回上一屏
=输出当前行的行号
:f输出文件名和当前行的行号
  • 采用more查看文件
    [root@java137 ~]# more smartd.conf

1.5.3 less 分屏显示文件内容【掌握】

less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率

  • 基本语法
less 要查看的文件

  • 操作说明
    操作功能说明
    空白键向下翻动一页;
    [pagedown]向下翻动一页
    [pageup]向上翻动一页;
    /字串向下搜寻『字串』的功能;n:向下查找;N:向上查找;
    ?字串向上搜寻『字串』的功能;n:向上查找;N:向下查找;
    q离开 less 这个程序;
  • 采用less查看文件
    [root@java137 ~]# less smartd.conf

1.5.4 tail 输出文件尾部内容

tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。主要用于日志查询

  • 基本语法
    • (1)tail 文件 (功能描述:查看文件后10行内容)

    • (2)tail -n 5 文件 (功能描述:查看文件后5行内容,5可以是任意行数)

    • (3)tail -f 文件 (功能描述:实时追踪该文档的所有更新)

  • 选项说明
    选项功能
    -n<行数>输出文件尾部n行内容
    -f显示文件最新追加的内容,监视文件变化
  • 案例实操
    • 查看文件头1行内容
      [root@java137 ~]# tail -n 1 smartd.conf 
    • 实时追踪该档的所有更新
      [root@java137 ~]# tail -f houge.txt

1.5.5 > 覆盖 和 >> 追加

  • 基本语法
    选项功能
    ll >文件列表的内容写入文件a.txt中(覆盖写
    ll >>文件列表的内容追加到文件aa.txt的末尾
    cat 文件1 > 文件2将文件1的内容覆盖到文件2
    echo “内容” >> 文件将内容写文件中【掌握

  • 案例实操
    • 将ls查看信息写入到文件中
      [root@java137 ~]# ls -l>houge.txt
    • 将ls查看信息追加到文件中
      [root@java137 ~]# ls -l>>houge.txt
    • 采用echo将hello单词追加到文件中
      [root@java137 ~]# echo hello>>houge.txt

1.6 Linux命令-文件删除、创建、拷贝

1.6.1 创建文件【touch】

  • 语法
    touch 文件名称
  • 示例
    [root@java137 ~]# touch xiyou/dssz/sunwukong.txt

    mkdir 创建目录的

    touch 文件的名称

4.6.2 文件拷贝【cp】

cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。ca

示例
cp a.txt b.txt: 将a.txt复制为b.txt文件
cp a.txt ../ : 将a.txt文件复制到上一层目录中
cp -r xiyou/dssz/ ./ : 递归复制整个文件夹。 -r:递归复制整个文件夹

1.6.3 文件移动或重命名【mv】

  • 语法
    1. mv oldNameFile newNameFile   (功能描述:重命名)
    2. mv /temp/movefile /targetFolder  (功能描述:移动文件)
示例
mv a.txt ../: 将a.txt文件移动到上一层目录中
mv a.txt b.txt : 将a.txt文件重命名为b.txt

4.6.4 文件删除【rm】【慎重操作

  • 基本语法
    rm [选项] deleteFile          (功能描述:递归删除目录中所有内容)

  • 选项说明
    选项功能
    -r递归删除目录中所有内容
    -f强制执行删除操作,而不提示用于进行确认。
    -v显示指令的详细执行过程
  • 常用命令
    命令功能
    rm a.txt删除a.txt文件 (需要确认,输入yes 或y)
    rm -f a.txt不询问,直接删除 a.txt
    rm -r app删除app目录(需要确认,输入yes 或y,递归)
    rmdir app删除app目录(必须为空否则无法删除)
    rm -rf a不询问递归删除a 及其子目录下的东西
    rm -rf *删除当前文件夹及其自目录
    rm -rf /*格式化磁盘【慎重操作

1.7 Linux命令-压缩、解压缩

1.7.1 tar命令

tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。 一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件

1.7.2 常用参数

选项功能
-c创建一个新tar文件
-v显示运行过程的信息
-f指定文件名
-z调用gzip压缩命令进行压缩/解压缩
-t查看压缩文件的内容
-x解压tar文件

1.7.3 tar压缩打包

  • 打包文件
    tar –cvf xxx.tar 目录名/文件1 文件2

示例:

tar -cvf mycvfab.tar a.txt b.txt

  • 打包并且压缩
    tar –zcvf xxx.tar.gz 目录名/文件1 文件2

    示例:

    tar -zcvf houma.tar.gz houge.txt bailongma.txt 

1.7.4 tar解压

  • 解压到当前目录
    tar -zxvf houma.tar.gz
  • 解压到指定目录

    解压到usr目录下的aa目录中

    tar -zxvf xxx.tar.gz -C /usr/aaa 

1.8 Linux命令-搜索查找类

1.8.1 查找文件或者目录【find】

find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。

  • 基本语法
    find [搜索范围] [选项]
  • 选项说明
    选项功能
    -name<查询方式>按照指定的文件名查找模式查找文件
    -user<用户名>查找属于指定用户名所有文件
    -size<文件大小>按照指定的文件大小查找文件。
  • 案例实操
    • 按文件名:根据名称查找/目录下的filename.txt文件。

      [root@java137 ~]# find xiyou/ -name “*.txt”
    • 按拥有者:查找/opt目录下,用户名称为-user的文件

      [root@java137 ~]# find opt/ -user zhangsan
    • 按文件大小:在/home目录下查找大于200m的文件(+n 大于 -n小于 n等于)

      [root@java137 ~]find /home -size +204800

1.8.2 过滤查找【grep 】及【|】管道 符

find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。

  • 基本语法
    grep 选项 查找内容 源文件
  • 选项说明
    选项功能
    -n显示匹配行及行号。
  • 示例

    查找root用户目录下 a.txt文件,以及在第几行

    [root@java137 ~]# ll | grep -n a.txt
    ​

    管道其实就是参数的意思。

    相当于ll 和 grep -n a.txt两个方法

    ll的方法执行完毕之后,将该方法的结果,传递给 grep -n a.txt 方法,做为参数

    在linux中我们称为管道的

1.8.3 which 查找命令

查找命令在那个目录下

  • 基本语法
    which 命令

  • 案例实操
    [root@java137 ~]# which ll

1.9 Linux命令-VIM编辑器

VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。

VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。如果安装的Linux操作系统是纯命令行的,即最小化安装,那么没有vim编辑器,需要在联网的情况下通过以下命令安装:yum -y install vim

VI有四种模式

正常模式(Normal-mode)

以vi/vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。

语法功能描述
yy复制光标当前一行
y数字y复制一段(从第几行到第几行)
p箭头移动到目的行粘贴
u撤销上一步
dd删除光标当前行
d数字d删除光标(含)后多少行
x删除一个字母,相当于del,向后删
X删除一个字母,相当于Backspace,向前删
yw复制一个词
dw删除一个词
^移动到行头
$移动到行尾
gg或者1+G移动到页头(第一行)
G移动到页尾(最后一行)
数字+G(先输入数字,在按G)移动到目标行

插入模式(Insert-mode)

在一般模式中可以进行删除、复制、粘贴等的动作,但是无法编辑文件内容!要等到你按下『i, I, o, O, a, A』等任何一个字母之后才会进入编辑模式。

注意了!通常在Linux中,按下这些按键时,在画面的左下方会出现『INSERT或 REPLACE』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。

按键功能
i当前光标前
a当前光标后
o当前光标行的下一行
I光标所在行最前
A光标所在行最后
O当前光标行的上一行

命令模式(Command-mode)

在一般模式当中,输入『 : / ?』3个中的任何一个按钮,就可以将光标移动到最底下那一行。

在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!

命令功能
:w保存
:q退出
:!强制执行
: %s/old字符/new字符批量替换
/ 要查找的词n 查找下一个,N 往上查找
? 要查找的词n是查找上一个,N是往下查找
:set nu显示行号
:set nonu关闭行号
ZZ(shift+zz) :nohl没有修改文件直接退出,如果修改了文件保存后退**去除高亮显示**

可视模式(Visual-mode)

1.10 Linux命令-重定向输出&系统命令

1.10.1 重定向【cat】

命令
cat /etc/passwd > a.txt 将输出定向到a.txt中
cat /etc/passwd >> a.txt 输出并且追加

1.10.2 系统命令

命令
ps –ef 查看所有进程
ps –ef | grep ssh 查找某一进程
kill 2868 杀掉2868编号的进程
==kill -9 2868 强制杀死进程==

1.11 Linux命令-其他常见命令

  • 【pwd】

    显示当前所在目录

  • 【touch】

    创建一个空文件: touch a.txt

  • 【clear/ crtl + L】

    清屏

  • 【history】

    查看已经执行过的历史命令

二、用户管理命令

在公司中你没有这个权限

2.1 useradd 添加新用户

  • 基本语法

useradd 用户名 (功能描述:添加新用户)

useradd -g 组名 用户名 (功能描述:添加新用户到某个组)

  • 案例实操

    添加一个用户

    [root@java137 ~]# useradd tangseng
    [root@java137 ~]# ll /home/

2.2 passwd 设置用户密码

  • 基本语法
    passwd 用户名  (功能描述:设置用户密码)
  • 案例实操

    设置用户的密码

    [root@java137~]# passwd tangseng

2.3 id 查看用户是否存在

  • 基本语法
    id 用户名
  • 案例实操

    查看用户是否存在

    [root@java137~]# id tangseng

2.4 cat /etc/passwd 查看创建了哪些用户

  • 基本语法
    [root@java137~]# cat  /etc/passwd

2.5 su 切换用户

su: swith user 切换用户

  • 基本语法
    su 用户名称  (功能描述:切换用户,只能获得用户的执行权限,不能获得当前用户环境变量,而是获取原用户的环境变量)
    ​
    su - 用户名称       (功能描述:切换到用户并获得该用户的环境变量及执行权限)

  • 案例实操

    切换用户

    [root@java137 ~]#su tangseng
    ​
    [root@java137 ~]#echo $PATH
    ​
    /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    ​
    --------------------------------------------------------------------------------------------
    ​
    [root@java137 ~]#exit
    ​
    [root@java137 ~]#su - tangseng
    ​
    [root@java137 ~]#echo $PATH
    ​
    /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tangseng/bin

2.6 userdel 删除用户

  • 基本语法
    userdel  用户名        (功能描述:删除用户但保存用户主目录)
    ​
    userdel -r 用户名      (功能描述:用户和用户主目录,都删除)

  • 选项说明
    选项功能
    -r删除用户的同时,删除与用户相关的所有文件。
  • 案例实操

    删除用户但保存用户主目录

    [root@java137 ~]#userdel tangseng
    ​
    [root@java137 ~]#ll /home/

    删除用户和用户主目录,都删除

    [root@java137 ~]#useradd zhubajie
    ​
    [root@java137 ~]#ll /home/
    ​
    [root@java137 ~]#userdel -r zhubajie
    ​
    [root@java137 ~]#ll /home/

2.7 who 查看登录用户信息

  • 基本语法
    whoami          (功能描述:显示自身用户名称)
    who am i        (功能描述:显示【登录用户】的用户名)
  • 案例实操

    显示自身用户名称

    [root@java137 opt]# whoami

    显示登录用户的用户名

    [root@java137 opt]# who am i

2.8 sudo 设置普通用户具有root权限

有一些情况下,我不用root用户登录,但是我还想有root用户的权限。

  • 添加wangwu用户,并对其设置密码
    [root@java137 ~]# useradd wangwu
    ​
    [root@java137 ~]# passwd wangwu

  • 修改配置文件
    [root@java137 ~]# vi /etc/sudoers
  • 修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示
    \## Allow root to run any commands anywhere
    ​
    root   ALL=(ALL)   ALL
    ​
    wangwu  ALL=(ALL)   ALL
    ​
    或者配置成采用sudo命令时,不需要输入密码
    ​
    \## Allow root to run any commands anywhere
    ​
    root    ALL=(ALL)   ALL
    ​
    wangwu  ALL=(ALL)   NOPASSWD:ALL

    修改完毕,现在可以用wangwu帐号登录,然后用命令 sudo ,即可获得root权限进行操作。

  • 案例实操

用普通用户在/opt目录下创建一个文件夹

[wangwu@java137 opt]$ sudo mkdir module
​
[wangwu@java137 opt]# chown wangwu:wangwu module/

2.9 usermod 修改用户

  • 基本语法
    usermod -g 用户组 用户名
  • 选项说明
选项功能
-g修改用户的初始登录组,给定的组必须存在
  • 案例实操

将用户加入到用户组

[root@java137opt]#usermod -g root zhubajie

三、Linux权限操作

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。

image-20230901144409481

如果没有权限,就会出现减号[ -]而已。从左至右用0-9这些数字来表示:

  • 0 首位表示类型

    在Linux中第一个字符代表这个文件是目录、文件或链接文件等等

    • - 代表文件

    • d 代表目录

    • l 链接文档(link file);

  • 1-3位确定属主(该文件的所有者)拥有该文件的权限。---User

  • 4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group

  • 7-9位确定其他用户拥有该文件的权限 ---Other

u + 添加权限 - 取消权限 =重新赋值权限

a.txt --> rw u+x ---> rwx ---> u-x ---> rw ---> u=r ---> rgo

3.1 rxw作用文件和目录的不同解释

3.1.1 作用到文件

  • [ r ] 代表可读(read): 可以读取,查看

  • [ w ] 代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.

  • [ x ] 代表可执行(execute):可以被系统执行

3.1.2 作用到目录

  • [ r ]代表可读(read): 可以读取,ls查看目录内容

  • [ w ] 代表可写(write): 可以修改,目录内创建+删除+重命名目录

  • [ x ]代表可执行(execute):可以进入该目录

3.2 文件基本属性介绍

3.3 chmod 改变权限

3.3.1 改变权限方式一

  • 语法
    chmod  [{ugoa}{+-=}{rwx}] 文件或目录
  • 示例
    ​
    [root@java137 ~]# chmod u-x a.txt
    ​
    [root@java137 ~]# chmod u+x a.txt
    ​
    [root@java137 ~]# chmod u=rwx a.txt
    ​
    [root@java137 ~]# chmod u=rwx,g+w,o+x a.txt
    

经验技巧: u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)

3.3.2 改变权限方式二

  • 语法
    chmod  [mode=421 ]  [文件或目录]
  • 示例

    4 表示的是读的权限(r)

    2 表示的是写的权限 (w)

    1 表示执行的权限 (x)

    [root@java137 ~]# chmod 614 a.txt

  • 案例实操
    • 修改文件使其所属主用户具有执行权限

      [root@java137 ~]# chmod u+x houge.txt
    • 修改文件使其所属组用户具有执行权限

      [root@java137 ~]# chmod g+x houge.txt
    • 修改文件所属主用户执行权限,并使其他用户具有执行权限

      [root@java137 ~]# chmod u-x,o+x houge.txt
    • 采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限

      [root@java137 ~]# chmod 777 houge.txt
    • 修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限

      [root@java137 ~]# chmod -R 777 xiyou/

3.4 chown 改变所有者

  • 基本语法
    chown [选项] [最终用户] [文件或目录]       (功能描述:改变文件或者目录的所有者)
  • 选项说明
    选项功能
    -R递归操作
  • 案例实操
    • 修改文件所有者
      [root@hadoop101 ~]# chown zhangsan houge.txt 
      ​
      [root@hadoop101 ~]# ls -al
      
      

    • 递归改变文件所有者和所有组
      [root@java137 ~]# chown zhangsan:zhangsan -R abc
      [root@java137 ~]# ll
      
      [root@java137 ~]# cd abc
      [root@java137 abc]# ll
      ​

3.5 chgrp 改变所属组

  • 基本语法
    chgrp [最终用户组] [文件或目录]   (功能描述:改变文件或者目录的所属组)
  • 案例实操

    需求: 修改文件的所属组

    [root@java137 ~]# chgrp zhangsan b.txt
    [root@java137 ~]# ll
    

四,相关作品展示

基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目

基于Nodejs、Vue等前端技术开发的前端实战项目

基于微信小程序和安卓APP应用开发的相关作品

基于51单片机等嵌入式物联网开发应用

基于各类算法实现的AI智能应用

基于大数据实现的各类数据管理和推荐系统

 

 

;