作者简介: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 +alt | linux和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命令来显示一个文件的属性以及文件所属的用户和组。
如果没有权限,就会出现减号[ -
]而已。从左至右用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智能应用
基于大数据实现的各类数据管理和推荐系统