linux命令
目录结构
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/dce84ff333724f0c03a5401c0e989d88.png)
1、/bin :获得最小的系统可操作性所需要的命令
2、/boot :内核和加载内核所需的文件
3、/dev :终端、磁盘、调制解调器等的设备项
4、/etc :关键的启动文件和配置文件
5、/home :用户的主目录
6、/lib :C编译器的库和部分C编译器
7、/media :可移动介质上文件系统的安装点
8、/opt :可选的应用安装包
9、/proc :所有正在运行进程的映像
10、/root :超级用户的主目录
11、/sbin :引导、修复或者恢复系统的命令
12、/tmp :每次重新引导就消失的临时文件
13、/usr :次要文件和命令的层次结构
14、/usr/bin :大多数命令和可执行文件
15、/usr/include :编译C程序的头文件
16、/usr/lib :库,供标准程序使用的支持文件
17、/usr/local :本地软件(用户所编写或者安装的软件)
18、/usr/local/bin :本地的可执行文件
19、/usr/local/etc :本地系统配置文件和命令
20、/usr/local/lib :本地的支持文件
21、/usr/local/sbin :静态链接的本地系统维护命令
22、/usr/local/src :/usr/local/*的源代码
23、/usr/man :联机用户手册
24、/usr/sbin不太关键的系统管理命令和修复命令
25、/usr/share :多种系统共同的东西(只读)
26、/usr/share/man :练级用户手册
27、/usr/src :非本地软件包的源代码
28、/var :系统专用数据和配置文件
29、/var/adm :各种不同的东西
30、/var/log :各种系统日志文件
31、/var/spool :供打印机、邮件等使用的假脱机目录
32、/var/tmp :更多的临时空间(在重新引导之后,文件予以保留)
目录处理
查看目录
# 语法: ls [参数] 目录
* 参数:
-l 以详细形式查询当前目录下的文件(不包含隐藏文件)
-a 查看目录下的所有的文件,包含隐藏文件(不是详情展示)
-la 上面两个功能的组合(详细的查看所有的文件)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1bd018c6e552030cc73050ee400e3e52.png)
查看当前的目录
* pwd
切换目录
* 语法: cd 目录
* 目录表达式
/ 从根目录开始写到绝对路径目录
.. 上层目录
返回上次层目录
. 当前目录
./ 当前的目录
~ 宿主目录(家目录)
- 上次的目录
切换到上一次操作的目录
创建目录
# 语法: mkdir 目录 [参数]
* 参数
-p 一次性创建多级目录
-v 显示创建的过程
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/56604c48280fb6c97e94aabb16535896.png)
删除目录
# 语法: rm [参数] 目录或者文件
* 参数
-r 递归处理,将制定目录下的所有文件及子目录一并删除,他需要你二次确认是否删除
-f 强制删除目录,它不会询问你
-rf 强制递归删除目录,不会询问你
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3c58b65ac821e79d3b04cc1de07706e1.png)
复制
# 语法: cp [-r] 源目录 目标目录
* 参数
-r
递归处理,将制定目录下的文件与子目录一并处理
* 总结:
cp -r 源目录 目标目录 复制一个目录
cp 源文件 目标目录 复制一个文件
cp 源文件 目标文件 复制并且改名一个文件
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3684b5ebee904c9450261426cbaffd98.png)
移动
# 语法: mv 原目录位置 新目录位置
* mv 源文件或者目录 目标目录/ 剪切
mv 源文件 目标文件 剪切并重命名
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/36767bbaec9cc5c99411ad992c4aba03.png)
find 查找
# 语法: find 路径 -name 文件名[允许模糊匹配]
* 查询跟目录下(包括子目录),名为b的目录和文件
find / -name b
* 查询根目录下(包括子目录),名以b开头的目录和文件
find / -name b*
文件处理
创建文件
# 语法: touch 文件名
查看文件
# 语法: more 文件名
* 扩展
cat a.java 查看a.java文件的最后一页内容
more a.java 从第一页开始,按回车键换行,按空格健翻页,q退出
head a.java 查看a.java文件的前10行内容
tail a.java 查看a.java文件的后10行内容
head -n 7 a.java 查看a.java文件的前7行内容
tail -n 7 a.java 查看a.java文件的后7行内容
tail -f 文件名 动态查看文件信息
编辑文件
# vim linux下vi是一种文字编辑器,后来的升级版本是vim
* 打开文件
vim文件名(如果文件存在,就是打开文件;如果文件不存在,就是新建打开)
* 编辑文件
使用vim刚刚进入文件,我们处于命令行模式,此时不能进行文件的编辑
此时按下键盘上的 i 键就能进入编辑模式,让后就能修改文件内容了
* 保存文件
当编辑工作完成后,我们首先退出编辑模式
按一下esc,就可以退出命令行模式
wq 回车 保存并且退出文件
q! 不保存直接退出
压缩解压
压缩文件
# windows 中常见的压缩格式 zip rar
linux下常见的压缩格式 zip gz
* 压缩
语法: tar -zcvf 压缩包名称 要压缩的文件
* 解压
语法: tar -zxvf 压缩文件 -C 要解压的目录
* 文件压缩命令:
tar [参数] 打包压缩后的文件名 要打包压缩的文件,支持统配符*号
-c 创建新的文件(必选项)
-f 文件名由命令台设置(必选项)
-v 输出文件清单(可选项)
-z 自动是识别压缩或解压(可选项)
* 文件解压命令:
tar [参数] 压缩文件 [-C 要压缩到的目录]
-x 取出文件中的内容(必选项)
-f 文件名由命令台设置(必选项)
-v 输出文件清单(可选项)
-z 自动识别压缩或者解压
tar -zxvf 压缩文件 -C 要解压的目录
权限管理命令
文件类型
* 在linux中有一句话,叫一切皆文件.就是说linux下所有的东西都是文件,就像java中的对象是一样的.但是文件有不同的类型,linux规定了三种类型的文件
d 目录文件
- 普通文件
l 连接文件
c 字符设备
s 套接字
P 管道
b 快设备
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6d0aae7d4ac08c1c78778f10641f7279.png)
文件属主(组)
# 在linux下,创建出来的文件都会默认有一个默认属主和默认属组.就像是 一个文件在出生就被标记了它的管理者和管理组一样
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/89c09e4057a0d350903e2957dff745f4.png)
文件权限
# 在linux中,有三种权限分别是 读权限 ,写权限 ,执行权限
读 r 4
写 w 2
执行 x 1
他们的组合就可以表示某类用户对一个文件的权限
英文比如 rw(可读可写) wx(可写可执行) wrx(可读可写可执行)
数字比如 6(可读可写) 3(可写可执行) 7(可读可写可执行)
u | g | o
u: 所有人的权限
g: 所有组的权限
o: 其他人的权限
文件的具体权限控制
# 文件的权限控制就是定义了什么身份用于什么权限
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/77017c129d13e680bfd6ef1bc20aa557.png)
文件权限的修改
# 文字设定法:
语法: chmod [who] [+ | - | = ] [mode] -R 文件名
各个选项的含义
操作对象who可以是下述字母中的人一个或者他们的组合:
u: 表示用户(user),即文件或目录的所有者
g: 表示同组用户(group),即与文件属主有相同组ID的所有用户.
o: 表示其他用户(others),
a: 表示所有的用户(all),他是系统的默认值
操作符可以使:
+: 添加某个权限
-: 取消某个权限
=: 赋予给定权限并且取消其他所有权限(如果有的话)
设置mode 所表示的权限可用下述字母的任意组合:
r: 可读
w: 可写
x: 可执行
X: 只有目标文件是可执行的或该目标文件是目录时才追加X属性
s: 在文件执行时把进程的属主或组Id置为该文件的文件属主
方式"u+s"设置文件的用户ID位,"g+s"设置组Id位
t: 保存程序的文本到交换设备上
u: 与文件属主拥有一样的权限
g: 与文件属主同组的用户拥有一样的权限
o: 与其他用户拥有一样的权限
-R: 表示修改该目录下的所有的文件
文件名:以空格分开的要改变权限的文件列表,支持通配符.
在一个命令行中可以给出多个权限方式,其间用逗号隔开,列如:
chmod g+r,o+r example %使 同组和其他用户对文件example 有读权限.
* 形式:
* 语法一: chmod 用户类型 权限的英文表示 -R 文件
chmod o+w -R test.txt
对其他的拥有这对test这个文件添加些的权限
* 语法二: chmod 英文权限标识 -R 文件
chmod u=wrx,g=wr,o=r test.txt
分别对用户和同组用户和其他用户对这个文件添加相关的权限
* 语法三: chmod 数字权限标识 -R 文件
chmod 775 -R test.txt
分别对属主属组和其他人添加相关的权限
文件属性详情
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b4e2cd4e99388497d047b999ec4b340c.png)
其他的命令
查看指定进程信息
# 语法: ps-ef | grep redis
ps-ef 查看所有的正在进行的进程
| 管道命令,他会将管道前面的命令输出作为管道后面的命令输入
grep 文本搜索命令
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/67443c0ab75d7c1721fb86a94e8b048d.png)
强制杀死进程
# 语法: kill [-9] 进程号
关机和重启
# 关机 halt
# 重启 reboot
防火墙
# 防火墙,工作在主机或者网络边缘,对出入网络的IP,端口进行访问控制的软件
我们的任务是定义防火墙如何工作,也就是防火墙策略
在centos7中,防火墙已经被做成了一个服务,默认使用的是firewall
防火墙相关的操作
* 开启防火墙
systemctl start firewalld
* 关闭防火墙
systemctl stop firewalld
* 重启防火墙
systemctl restart firewalld
* 查看防火墙的状态
systemctl status firewalld
* 打开防火墙开机自启动
systemctl enable firewalld
* 关闭防火墙开启自启动
systemctl disable firewalld
设定防火墙的规则
# 防火墙默认是进制所有端口访问的
* 允许某端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
* 禁止某端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
* 查看允许的端口
firewall-cmd --zone=public --list-ports
* 注意:
--permanent 代表永久生效,这种情况下,需要重新加载服务
firewall-cmd --reload
* 常用端口:
3306 mysql
6379 redis
1521 oracle
8080 tomcat
80 http nginx
linux 安装jdk nginx redis
-- 安装jdk
1、yum -y list java*
2、 yum install java-11-openjdk.x86_64
3、验证 java -version
4、查找java which java
--安装redis
https://cloud.tencent.com/developer/article/1823412
1、首先检查是否有gcc 环境,输入gcc -v
否则就安装:yum install -y gcc
2、进入到usr/local目录
下载redis安装包:wget http://download.redis.io/releases/redis-5.0.3.tar.gz
解压:tar -zxvf redis-5.0.3.tar.gz
3、进入解压目录
cd redis-5.0.3/
执行编译:make
-- nginx
https://cloud.tencent.com/developer/article/1654844
find / -name nginx.conf
cd /usr/sbin --切换到nginx 的sbin 目录上去
./nginx -s reload --重启nginx
-- jdk
1、查询都有哪些jdk :
yum -y list java*
2、安装jdk :
yum install -y java-1.8.0-openjdk.x86_64
windows 的 进程命令操作
1、 查看windwos 的指定端口号的进程
netstat -ano | findstr 8080
2、 查看指定pid 的进程
tasklist | findstr PID
3、停止对应的进程
taskkill /pid 4136 -t -f