Linux命令 - 命令大全1

文章目录

0.0 了解

Windows叫做“服务service”,Linux叫做“守护进程daemon”


在这里插入图片描述

服务器使用
1. LAMP:Linux + Apache + MySQL + PHP
2. LNMP:Linux + Nginx + MySQL + PHP
端口
21:ftp
443:https
80:http
22:SSH

0.1 特殊符号

// 当前用户的家目录
cd ~

// 回到上一次的目录,类似浏览器的  <- 返回按钮,返回到上一个页面一样的东西
cd -

// 执行上一次命令
!!

//执行历史中的某条命令,需要配合 history命令使用
!历史命令ID


0.3 程序、内置文件

自定义命令全局使用
//编辑
vim /etc/profile

//在/etc/profile  末尾添加下面一行的代码
export PATH=$PATH:脚本所在目录的绝对路径



//环境变量生效
source /etc/profile

在这里插入图片描述

在这里插入图片描述

Shell解释器、回收站
输入输出
0:STDIN = 标准输入
1:STDOUT = 标准输出
2:标准的错误信息 = 标准错误信息
//回收站【黑洞】 == 可以讲不需要的东西直接放进去,例如文件、控制台输出内容等等
/dev/null


// 标准正确输出1与标准错误输出2都丢弃的意思
&>/dev/null


//  nohup java -jar "$1.jar" > nohup.out  : 将此命令的正常输出的内容追加到到   nohup.out  文件中  ==  nohup java -jar "$1.jar"   1 > nohup.out
// 2>&1   : 标准错误输出2内容也是 输出到 标准输出1那里面
// 最后一个& :命令以后台的job的形式运行(守护进程的形式运行)
nohup java -jar "xx.jar" > nohup.out 2>&1 &


//shell脚本解释器
/etc/shells

在这里插入图片描述

变量的存储位置
变量
本地变量:用户私有变量,只有本用户才可以使用 = 家目录下的.bash_profile、.bashrc文件中 == 两个文件都会加载
全局变量:系统变量,所有用户都可使用 = /etc/profile、/etc/bashrc文件中 == 两个文件都会加载 == 变量需要export导出持久化,否则重启Linux变量就失效了
用户自定义变量:用户自定义,比如脚本中的变量
内置函数库
# 文件地址
/etc/init.d/functions


# 使用 == shell脚本中使用直接就是下面的语句即可 == 下面的.是 source的作用
. /etc/init.d/functions
本地变量

在这里插入图片描述

全局变量

在这里插入图片描述

1. 细节 - 描述信息,帮助文档,用户名等信息

用户标识符
#:管理员权限
$:普通用户权限

命令自动填充: 按Tab按钮
命令提示: 双击Tab按钮

查看命令
which 命令名:显示该命令的执行文件在哪里
whereis 命令名:显示该命令的帮助文档在哪里
whatis 命令名:简单说明该命令的作用
man 命令名:打开该命令的帮助文档
命令名 --help:查看命令常用的参数

帮助文档解说
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


退出登录:

exit、
logout、
Ctrl+D快捷键

查看当前的Shell:

echo $SHELL

查看IP:

ifconfig

查看Linux版本:

cat /etc/redhat-release

2. 目录、文件、字符串

Liunux根目录下各文件夹的作用
在这里插入图片描述

2.-1 文件类型、MD5

伪文件: 不占用磁盘空间

文件类型标识文件类型
-普通文件
d目录Directory
l符号链接SymbolicLink
s套接字Socket(伪文件)
b块设备BlockDevice(伪文件)
c字符设备CharacterDevice(伪文件)
p管道Pipe(伪文件)


在这里插入图片描述


md5sum 文件名

md5sum -c  md5文件

在这里插入图片描述

在这里插入图片描述

2.0 其他 - 目录、文件列表展示详细信息、创建、移动、修改文件名以及权限

确定文件类型:文本还是目录文件

file 文件名

查看当前所在的目录:

pwd

//或者

dirs

跳转到指定的目录下

cd命令
cd .. → 回到上级目录
cd . → 当前目录
cd / → 回到根目录
cd /root → 回到根目录下的root目录
cd ~ → 去到当前用户的根目录


显示当前目录下的文件、目录信息

//显示当前目录内的文件
ls 

//显示其他目录的文件
ls  其他目录路径

//显示当前文件a信息
ls -ld 文件路径a
ls -l 文件路径a

//显示当前目录a的显示
ls -ld 目录路径b

//显示当前目录a下的子文件、子目录信息
ls -l  目录路径b

在这里插入图片描述

ls命令
ls:显示当前目录下的普通文件、目录的名字
ls -a:显示当前目录下的所有文件、目录的名字(包括隐藏文件)
ls -l:显示当前目录下的普通文件、目录的详细信息 -- 权限、组权限、修改时间等
ls -R:子目录下的文件也列出来
ls -hl:显示当前目录所有文件,文件容量有单位

在这里插入图片描述

在这里插入图片描述

更改文件的属主,属组等。创建用户

//更改文件属组
chgrp -R 新属组名 文件名

//更改文件所属的用户
chown -R 新属主名  文件名

//更改文件所属的用户,以及属组
chown -R 新属主名: 新属组名  文件名

//更改用户对文件的操作权限
chmod 数字和   文件名


在这里插入图片描述


创建目录

mkdir命令
mkdir 目录 → 如果没有父目录,则不会创建任何新目录
mkdir -p 目录 → 多级目录创建 - 如果没有父目录,则连同父目录一起创建



修改文件名、移动文件

mv
mv 原文件 新文件:修改文件名
mv 文件 目录:移动文件到指定目录
mv 目录1 目录2:源目录1移动到目录2里面



创建临时文件

文件创建
目录创建
临时文件、目录创建mktemp == XXX系统会随机生成 == 且返回值为真正的文件名
mktemp 文件名.XXX
mktemp -d 目录名.XXX


创建临时文件、目录

mktemp testTeXXX.abc

mktemp -d testTeXXXDir

在这里插入图片描述


修改文件名

rename 即将被替换的源字符 替换后的字符  需要执行替换字符的文件

# demo = 将 .one 换成 .test
rename .one .test  ./testCMD/*.one

在这里插入图片描述

在这里插入图片描述


复制文件、目录

//将目录1整个目录 复制到  目录2里面
cp -r 源目录1  目的地目录2

//将这3个文件复制到目标目录里面
cp 文件1 文件2 文件3   存放复制文件的目标目录

//复制一份相同内容的文件在同一目录
cp 原文件名  复制文件名

强制删除文件、目录 - 不会询问

rm -rf 文件/目录名


//批量删除文件
find ./ -name '*txt' -exec rm -rf {} \;
//①  find ./ -name '*txt'    在当前目录中查找txt结尾的文件名
//②  -exec   rm -rf {} \    将前面①的结果放入到中括号中,准备进行删除

创建普通文件:

touch 文件名

查找文件:

find 搜索路径 [选项] 搜索关键字


//模糊查询 - 根目录下开始查找文件名带有abc字符的文件
find  /   -name  "*abc*"

2.1 读取文件内容

文件内容检索:

grep -i "模糊查询字符"  文本文件地址

显示查看文件内容
cat 文件名:一次性加载出来文件全部内容
tac 文件名:一次性加载出来文件全部内容【倒着显示】
nl 文件名:一次性加载出来文件全部内容,不过会有行号显示
more [pageSize] 文件名:分页显示
按Q:退出
enter:显示下一行
按空格:显示下一页
Ctrl+B:显示上一页
tail -行数 文件名:显示文件末尾后面多少行数
从第N行开始打印:tail -n +第N行 文件名
head-n 文件名:显示文件开头前面n行
less 文件名:可以上下进行滚动内容
查找字符:/ + 查找的字符 + enter
查找字符:? + 查找的字符 + enter
按n字母继续向下寻找、按N继续向上寻找

1. 显示文件的头50行内容,可方向盘滚动显示
2. 显示文件的头50行内容,可enter下一页显示

head -50 文件名 | less

head -50 文件名 | more


/etc目录下 passwd的内容讲解
在这里插入图片描述

2.3 文件其他信息 - 行数单词数字节数、文件属性(更改时间)
// wc 文件
读取文件的行数、单词数、字节数

// ls -l 文件
比较简略的信息

//  stat 文件
详细的文件信息,更改时间,创建时间,大小、权限等信息

在这里插入图片描述

2.4 正则支持 - grep、egrep

注意: 同时使用开头和结尾表精确匹配,只使用其中一个表,模糊匹配

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

//筛出所有除了含【afsd】的行
grep -v 'afsd'  文件名  | more

grep -e  '正则表达式'

//等价 == 建议正则则使用下面这个 

egrep '正则表达式'

在这里插入图片描述

cat test.txt

cat test.txt | egrep "^([[:alnum:]]+)z$"
2.5 文件内容的操作 - sed - 针对行
概述
# 语法格式  == 中括号可以去掉
sed [选项] '{command}[flags]' [文件名]

sed: 外部命令,行流编辑器,非交互式的对文件内容进行增删改查操作 == 编辑单位:文件中的行数据


sed数据处理原理
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

内置命令简单使用


cat test2.txt

# 内部命令==首个字符即命令
# 不会对文件内容操作,只是在内存进行操作而已
sed 'a\插入内容' test2.txt

sed '3a\插入内容' test2.txt

sed '3,4a\插入内容' test2.txt

# 注意我已经修改了test2.txt的内容
cat test2.txt

# 匹配模式  含有forth的行,再其下插入'新增内容字符串   /匹配内容/
sed '/forth/a\新增内容' test2.txt

sed '2d' test2.txt

sed 'i\前面新增内容' test2.txt

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


# 删除含有#的注释行
sed -r '/#/d' nginx.conf

在这里插入图片描述


cat test2.txt

# 替换字符 == 精确匹配几个字符就替换几个字符,只匹配一次
sed 's/=/+/' test2.txt

# 替换字符 == 精确匹配几个字符就替换几个字符,只匹配第四行
sed '4s/=/+/' test2.txt

在这里插入图片描述


cat test2.txt

# 每行内容都变为changeContent
sed 'c\changeContent'  test2.txt

# 2-4行的内容变成一个行内容即changeContent
sed '2,4c\changeContent'  test2.txt

在这里插入图片描述


cat test2.txt

# 转换  =变+  f变F  以此类推
sed 'y/=firste/+FIRSTE/' test2.txt 

在这里插入图片描述


cat test2.txt

# p命令会把 文件、内存地内容都打印一遍

sed 'p' test2.txt

# 内存中只打印从第三行开始
sed '3p' test2.txt

在这里插入图片描述

在这里插入图片描述


内置命令结合标志位使用
cat test2.txt

# 未加标志位前 == 至多只会匹配每行一个
 sed 's\first\测试\' test2.txt
 
 # 加了g标志位后 == 每行只要符合都匹配
 sed 's\first\测试\g' test2.txt

在这里插入图片描述


cat test2.txt


 # 加了g w标志位后 == 每行只要符合都匹配,并把匹配到修改后的行存入新文件
sed 's\first\测试\gw test2_change.txt' test2.txt 

ls

cat test2_change.txt

在这里插入图片描述


一下次执行多条子命令【逗号分割,或者指定匹配文件】
 cat test2.txt
 
 sed  's\=\+\g;s\first\测试\' test2.txt

在这里插入图片描述


cat test2.txt
 
cat matchFile

sed -f matchFile test2.txt

在这里插入图片描述


修改文件 - 加-i
cat test2.txt

sed -i  's\=\+\g;s\first\测试\' test2.txt 

cat test2.txt

在这里插入图片描述


备份加修改文件 - 加-i.备份文件后缀
 ls

cat test2.txt 

sed -i.backup 's\+\=\g;s\second\xxxxx\'  test2.txt

ls

cat test2.txt

cat test2.txt.backup

在这里插入图片描述


技巧
# 打印行数
sed -n '$=' 文件地址

在这里插入图片描述

2.6 【推荐】内容的操作 - awk - 更强大的字符串处理 - 是一种简单的程序语言
概述

awk: 处理数据、产生格式化报表的语言,字段与字段的分隔符是一个或多个的Tab制表符 == 可以实现数据处理、运算、输出

注意: 单词与单词的间隔默认是使用 空格/Tab 进行区分,可以通过 -F 进行修改单词的分隔符号

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

使用
cat test.txt

# 打印每行最后一个单词(字段)
awk '{print $NF}' test.tx

# 打印每行第2单词(字段)
awk '{print $2}' test.tx

# 打印第二行第三个单词(字段)
awk 'NR==2{print $3}' test.tx

在这里插入图片描述

在这里插入图片描述


cat test3.txt

# 定义单词的分隔符 == 下面两句一样的
awk -F ',' '{print $2,$NF}' test3.txt
awk -F, '{print $2,$NF}' test3.txt

# 修改打印出来的格式
awk -F ',' '{print $2 "-" $NF "+" $1}' test3.txt 

# 修改打印出来的格式
 awk -F ',' '{print "第二个参数:"$2,"最后一个参数:"$NF,"第一个参数:"$1}' test3.txt

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


cat test3.txt

awk 'BEGIN{print "开始"}'

awk -F, 'BEGIN{print "==开始"}{print $2}END{print "==结束"}' test3.txt

在这里插入图片描述

在这里插入图片描述


# 定义数组
awk 'BEGIN{nums[0]="fsdfd";nums[1]="3432";print nums[0],nums[1]}'


# 变量比较
awk 'BEGIN{firstStr="Afsdf";secondStr="Bfsdf";print firstStr>=secondStr}'

 awk 'BEGIN{firstStr="Afsdf";secondStr="Bfsdf";print firstStr<=secondStr}'

在这里插入图片描述

在这里插入图片描述


cat test.txt

# 打印每行第一个单词大于3的整行内容
awk '$1>3{print $0}' test.txt

在这里插入图片描述


cat test3.txt

# 精确完全匹配
awk -F ',' '$1=="小红"{print $0}' test3.txt 

# 模糊匹配
 awk -F ',' '$1~"红"{print $0}' test3.txt

在这里插入图片描述


head -1 /etc/passwd

# 指定需要截取的单词长度=一旦指定,如果你打印其他单词,则其他单词即是长度都一样你也要指定
awk 'BEGIN{FIELDWIDTHS="10 2 4"}NR==1{print $1,$2,$3}' /etc/passwd

awk 'BEGIN{FIELDWIDTHS="5"}NR==1{print $1,$2,$3}' /etc/passwd

在这里插入图片描述


head -1 /etc/passwd

# 下面两句是等价的
awk -F: 'NR==1{print $2,$6}' /etc/passwd

 awk 'BEGIN{FS=":"}NR==1{print $2,$6}' /etc/passwd

在这里插入图片描述


head -1 /etc/passwd

# 下面两句是等价的
 awk 'BEGIN{FS=":"}NR==1{print $2"=============="$6}' /etc/passwd
 
 awk 'BEGIN{FS=":";OFS="=============="}NR==1{print $2,$6}' /etc/passwd

在这里插入图片描述


head -10 /etc/passwd


awk -F":"  'NR<=10{if($1=="halt")print $3; else print "去你妹的"}' /etc/passwd

在这里插入图片描述


cat test2.txt
awk -v 'sum=0' '{sum+=$1}END{print sum}' /test/test2.txt 


cat test2.txt
awk -v 'sum=0' '{for(i=1;i<=3;i++) sum+=$i;}END{print sum}' test2.txt

在这里插入图片描述

在这里插入图片描述


cat tempIo.txt 

# 数组的使用
cat tempIo.txt | awk '{ioInfo[$1]+=$2}END{ for(field in ioInfo) print field, ioInfo[field] }'

在这里插入图片描述


cat content.txt 

# 行去重 --  
# 前面的【 !a[$0]++ 】是判断此行是否需要打印,每到一行则运行一下这个命令 
# $0表示此行的内容  a[行内容] 数组 默认值是0   num++ 先获取到num值,在将num值+1  0表示false >1表示true 所以遇到第一次的内容则必打印,第二次遇到同一内容则必为false,即不会打印
awk '!a[$0]++ {print $0}' content.txt

在这里插入图片描述


应用
free内存不够,则从buffer、cache中取
内存概念
total:总内存,物理内存总数
used:已经使用的内存数
free:空闲的内存数
shared:多个进程共享的内存数
buffer、cache:缓存内存数
available:还可以被应用程序使用的物理内存大小 == 约等于 free + buffer + cache
swap:虚拟内存
free | awk 'NR==2{print "内存已使用率:"$3*100/$2"%"}'

# 另一种写法 == 可定义变量
free | awk 'NR==2{t=$2}NR==2{f=$3;print "未使用内存率:"(t-f)*100/t"%" }'


# 处理输入的字符
echo 'mongodb_23432_ere_23423' | awk -F '_' '{print $2 }'

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


2.7 切割字符串cut
 cat tempIo.txt 
 
 # -d 定义每个单词由什么分隔符进行确定
cat tempIo.txt | cut -d ',' -f 1-2

cat tempIo.txt | cut -d ',' -f 3
 
cat tempIo.txt | cut -d ',' -f 1

在这里插入图片描述


2.8 获取文件的绝对路径 - readlink
//文件有无都会显示推断绝对路径
readlink -f 文件路径

//文件必须存在才会显示绝对路径
readlink -e 文件路径

在这里插入图片描述


2.9 获取文件所在的目录(根据入参来截取路径字符串)- 父目录 - dirname
//不会检测文件路径是否存在,仅做字符串截取操作
dirname  文件路径

在这里插入图片描述


3. 链接

创建链接

ln命令
ln 文件路径 链接名 → 创建一个硬链接(类似拷贝,所有硬链接被删除,该文件才是真正的被删除)
ln -s 文件路径 链接名 → 创建一个符号链接(类似快捷方式)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4. 进程管理、管道使用

类似函数调用,管道前是实参,管道后是函数

管道命令

命令1   |  命令2


案例
在这里插入图片描述


查看某个应用的运行情况

//模糊查询某个应用 
ps -ef | grep 应用名

在这里插入图片描述


查看当前全部进程

//查看所有进程信息 - 可看到该进程的父进程ID
ps  -ef

//进程树 - 查看父进程不建议使用上面这个,使用下面这个 - 以树状图显示最好
pstree -pu


//进程详细信息 - 占CPU率等信息
ps -aux


//退出进程
kill -9 进程号


//根据端口号查询进行号
 netstat -tunlp | grep 端口号

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • top: 实时查看系统进程运行情况CPU占有率、内存占有率、总共运行时间等其他信息的运行情况

在这里插入图片描述

  • top -Hp 进程号: 查看某个进程,所有的线程运行信息

在这里插入图片描述

5. 文件压缩与解压

tar命令参数
-c —— 产生tar打包文件
-C—— 将解压的文件夹放入到哪个目录
-x —— 解压
-v —— 打包时显示详细信息
-f —— 指定压缩后的文件名
-z —— 打包,同时通过gzip指令压缩备份文件,压缩后格式为.tar.gz

压缩文件

tar -zcvf  压缩后的文件名   源文件、目录名

解压文件

tar -zxvf 压缩文件名

6. 防火墙firewalld

查看防火墙开启/关闭状态

systemctl status firewalld

在这里插入图片描述


查看防火墙开启/关闭状态

firewall-cmd --state

在这里插入图片描述

在这里插入图片描述

查看防火墙开放的端口号

firewall-cmd --list-all

在这里插入图片描述


查询防火墙是否开放某个端口给外界

 firewall-cmd --query-port=端口号/tcp

在这里插入图片描述


设置防火墙需要开放/关闭的端口号给外界

# 开启
sudo firewall-cmd --add-port=端口号/tcp --permanent

# 关闭
firewall-cmd --permanent --remove-port=8080/tcp

重启防火墙

firewall-cmd --reload 

关闭防火墙开机启动

systemctl disable firewalld.service

7. 其他命令 - 打印信息、显示文件属性信息、查看用户使用过的命令、查看什么用户在使用该系统、查看系统已经创建的用户

打印信息、将信息打印到某个文件里面

//打印
echo  文本信息

//将文件信息追加到文件里面
echo  "文本信息"   >>  文件名

在这里插入图片描述


显示行数、单词数、文件大小【字节单位】

wc 文件名

# 行数
wc -l 文件


查看当前用户使用过的命令

history


查看什么用户在使用该系统

who

在这里插入图片描述


查看当前系统支持的所有命令

compegen -c


查看系统已经创建的用户

vipw

# 等价

vim /etc/passwd

8. 组合命令

模糊查找当前目录下的文件名 - 忽略大小写

ls -l  | grep -i "模糊文件名"

//简写

ll  | grep -i "模糊文件名"

9. 关机命令

//重要:将数据从内存同步到硬盘中 - 关机前防止数据丢失
sync

//直接关机
shutdown
shutdown now

//定时关机
// 十分钟后关机
shutdown -h 10
// 9点半后关机
shutdown -h 21:30

//重启 - 两种方式
reboot
shutdown -r now

//定时重启
//十分钟后重启
shutdown -r +10

9. 用户切换

//切换到用户名的用户
su 用户名

//1. root超级权限用户 到 普通用户  - 使用下面这个命令,则切换会root权限  
//2. 仅仅是普通用户的话,使用下面这个命令,则直接会退出SSH连接
exit


//显示当前主机名
hostname 

//修改主机名 - 需要重新SSH连接才生效
hostname 新主机名

//赋予、修改用户密码 - 需要在root用户下
passwd  用户

// 删除用户密码
passwd  -d  用户

//锁定用户 - 不给该用户使用Linux
passwd -l 用户名


//解锁用户 - 给该用户使用Linux
passwd -u 用户名

在这里插入图片描述

在这里插入图片描述

10. 文件所属者、文件所属组、以及所属的文件配置

  1. 例如有(开发组、测试组、运维组、Root组)每个组对Linux都有不同的权限
  2. 每创建一个用户,则Linux会创建一个同名的属组
  3. 属组其实操纵文件:/etc/group
  4. 属主其实操纵文件:/etc/passwd
  5. 用户加密后的密码文件:/etc/shadow

用户组命令

//创建属组
groupadd 组名

//指定组ID号进行创建新组
groupadd -g ID号   组名

//删除用户组
groupdel 组名

//修改组信息 - 组ID、组名
groupmod -g 新ID号  -n  新组名   旧组名


/etc/passwd - 用户文件
在这里插入图片描述

用户命令

//创建用户 - 同时会在home目录下创建同新用户名的目录 - 可在 /etc/passwd 该文件查看所有用户
useradd -m 新用户名

//删除用户 - 同时会将home目录下对应的用户目录一并删除 - /etc/passwd 该文件也会删除该用户的信息
userdel -r 用户名

//修改用户的home的目录 - 同时etc/passwd关于该用户的目录信息也会被修改
usermod -md 新用户目录绝对/相对地址  用户名

在这里插入图片描述


/etc/shadow- 用户密码加密后的文件
在这里插入图片描述

11. 磁盘管理


查看各磁盘的使用情况

df -h

在这里插入图片描述


查看某个目录的文件情况

//当前目录每个文件所占用的容量【单位:字节】
du  目录

//当前目录每个文件所占用的容量【单位:字节】 - 包括目录内的普通文件也显示出来
du -a 目录
//占用大小显示会携带单位
du -ha 目录

//只统计模糊查询到的文件大小
du -s  目录模糊查询
//例如:  du -s /home/*

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

12. 软件安装

安装方式
1. rpm
2. yum在线安装
3. 解压缩
11.1 rpm
//检测软件版本信息 - 查看是否有安装
//例如:rpm -qa | grep jdk
rpm -qa | grep 查找的软件模糊名

//卸载软件
//例如:rpm -e --nodeps jdk_
rpm -e --nodeps 上面命令查找的的完整软件名

//安装rpm包
rpm -ivh   rpm包

在这里插入图片描述

11.1.1 JDK安装
//查看是否由安装JDK - 如果有版本信息则需卸载
java -version

//如果有则卸载它
//查看JDK完整的软件名
rpm -qa | grep jdk

//卸载软件
rpm -e --nodeps  完整的JDK软件名

//安装JDK - rpm包 - JDK安装目录在  /usr/java
rpm -ivh jdk的rpm包

//查看是否安装成功
java -version

//环境变量配置  - 文件 -   /etc/profile
下图


//配置文件重载
source /etc/profile


/etc/profile - 末尾添加下列配置

JAVA_HOME=/usr/java/jdk1.8.0_231-amd64
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME

在这里插入图片描述

11.2 解压缩安装
11.2.1 Tocmat
//解压压缩包
tar -zxvf  tomcat压缩包名

//启动Tocmat - bin里面的 startup 运行即可
./startup.sh 


//停止Tocmat - bin里面的 shutdown 运行即可
./shutdown.sh 


//其他IP访问Tocmat时需要本地防火墙开放端口
sudo firewall-cmd --add-port=端口号/tcp --permanent

//重新加载防火墙的服务   - 更新需要开放的端口
firewall-cmd --reload
11.3 yum在线安装
//在线安装
yum  -y install 包名

11.3.1 Docker

阿里云官方出的安装Docer教程 - https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.3e221b11WRDufp

#安装gcc
yum -y install gcc

#安装c++
yum -y install gcc-c++


# step 1: 安装必要的一些系统工具
 yum install -y yum-utils device-mapper-persistent-data lvm2
 
# Step 2: 添加软件源信息
 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
# Step 3: 更新并安装Docker-CE
 yum makecache fast
 yum -y install docker-ce
 
# Step 4: 开启Docker服务
 service docker start

# Step 5: 查看是否安装成功Docker
 docker version

# Step 6: 查看Docker安装成功说明
 docker run hello-world

# Step 7: 查看Docker安装成功说明
 docker images

# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ee.repo
#   将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
#  yum -y install docker-ce-[VERSION]


11.4 编译安装
# 1、解包软件
tar zxf xxxx.tgz


# 2、先进入解压后目录,以及配置 
cd xxxx
./configure ....

  ## 不会配置的话,则看怎么使用,有文档说明
   ./configure --help
   
# 3、编译
make

# 4、安装
make install

# 5、卸载
make uninstall


13. 系统信息 - 显示服务、查看有什么Shell解释器执行脚本文件、日期信息、上一条命令是否执行成功

服务chkconfig service
查看
// 查看Linux有什么服务,什么服务开启了,在什么级别下被开启
chkconfig --list

//删除服务
chkconfig --del  服务名

//添加脚本作为服务
chkconfig --add 服务名 

//服务启动
service 服务名 start|stop|restart

在这里插入图片描述

脚本作为服务运行
# 将frps.sh脚本作为服务进行运行
# 1. 脚本文件的头3行注释添加下面3行
#!/bin/bash
#
#description: 内网穿透服务工具
#chkconfig:2345 99 99

#将frps.sh 移动到  /etc/init.d
cp frps脚本文件   /etc/init.d/
cd /etc/init.d/

#脚本后缀取消掉,好看点
mv frps.sh frps

#修改frps脚本权限
chmod 777 frps

#将frps脚本文件作为服务
chkconfig --add frps

#查看所有服务
chkconfig --list

#服务运行 === 其实就是普通脚本一样使用就可以了,不过多添加了service命令而已
service 脚本名(服务名) 脚本内的几个参数
其他


// 查看可执行shell脚本的命令,一般都是使用 bash 或者 sh进行执行Shell脚本
cat /etc/shells

在这里插入图片描述

在这里插入图片描述


// 显示日期
date +%F

在这里插入图片描述


// 0上一条命令执行成功  非0上一条命令没有执行成功
echo $?

在这里插入图片描述

14. 打印

14.1 echo - 打印 - 等价于System.out.println

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

14.2 read - 输入 - 等价于Scanner.nextLine

在这里插入图片描述

在这里插入图片描述

test17.sh

#!/bin/bash

echo -n '账号:'
read account
echo -n '密码:'
# -s秘密输入,字符不回显出来   -n最大的字符个数   -t等待输入最多等多少秒
read -s -n10 -t20  password


# -s秘密输入,字符不回显出来   -n最大的字符个数   -t等待输入最多等多少秒
echo ""
read -s -n10 -t20 -p "请输入密码:"  password2



echo "结果为:{账号:$account, 密码:$password}, 密码2:$password2}"


sh test17.sh

在这里插入图片描述

17. 授权

18. 符号链接创建

 # 格式
 ln -s 真正的命令文件   目录/链接名字
 
 # demo
 ln -s /usr/nginx/nginx/sbin/nginx  /usr/nginx/nginx/sbin/test/nginx 

# demo == 目录映射
ln -s /usr/nginx/nginx /www/server/nginx

在这里插入图片描述

19. 文件下载 - wget

* 用wget做站点镜像:
wget -r -p -np -k http://dsec.pku.edu.cn/~usr_name/
# 或者
wget -m http://www.tldp.org/LDP/abs/html/

* 在不稳定的网络上下载一个部分下载的文件,以及在空闲时段下载
wget -t 0 -w 31 -c http://dsec.pku.edu.cn/BBC.avi -o down.log &
# 或者从filelist读入要下载的文件列表
wget -t 0 -w 31 -c -B ftp://dsec.pku.edu.cn/linuxsoft -i filelist.txt -o
down.log &

上面的代码还可以用来在网络比较空闲的时段进行下载。我的用法是:在mozilla中将不方便当时下载的URL链接拷贝到内存中然后粘贴到文件filelist.txt中,在晚上要出去系统前执行上面代码的第二条。

* 使用代理下载
wget -Y on -p -k https://sourceforge.net/projects/wvware/

代理可以在环境变量或wgetrc文件中设定

# 在环境变量中设定代理
export PROXY=http://211.90.168.94:8080/
# 在~/.wgetrc中设定代理
http_proxy = http://proxy.yoyodyne.com:18023/
ftp_proxy = http://proxy.yoyodyne.com:18023/

wget各种选项分类列表

* 启动

-V, –version 显示wget的版本后退出
-h, –help 打印语法帮助
-b, –background 启动后转入后台执行
-e, –execute=COMMAND
执行`.wgetrc'格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc

* 记录和输入文件

-o, –output-file=FILE 把记录写到FILE文件中
-a, –append-output=FILE 把记录追加到FILE文件中
-d, –debug 打印调试输出
-q, –quiet 安静模式(没有输出)
-v, –verbose 冗长模式(这是缺省设置)
-nv, –non-verbose 关掉冗长模式,但不是安静模式
-i, –input-file=FILE 下载在FILE文件中出现的URLs
-F, –force-html 把输入文件当作HTML格式文件对待
-B, –base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀
–sslcertfile=FILE 可选客户端证书
–sslcertkey=KEYFILE 可选客户端证书的KEYFILE
–egd-file=FILE 指定EGD socket的文件名

* 下载

–bind-address=ADDRESS
指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)
-t, –tries=NUMBER 设定最大尝试链接次数(0 表示无限制).
-O –output-document=FILE 把文档写到FILE文件中
-nc, –no-clobber 不要覆盖存在的文件或使用.#前缀
-c,continue 接着下载没下载完的文件
–progress=TYPE 设定进程条标记
-N, –timestamping 不要重新下载文件除非比本地文件新
-S, –server-response 打印服务器的回应
–spider 不下载任何东西
-T, –timeout=SECONDS 设定响应超时的秒数
-w, –wait=SECONDS 两次尝试之间间隔SECONDS秒
–waitretry=SECONDS 在重新链接之间等待1…SECONDS秒
–random-wait 在下载之间等待02*WAIT秒
-Y, –proxy=on/off 打开或关闭代理
-Q, –quota=NUMBER 设置下载的容量限制
–limit-rate=RATE 限定下载输率

* 目录

-nd –no-directories 不创建目录
-x, –force-directories 强制创建目录
-nH, –no-host-directories 不创建主机目录
-P, –directory-prefix=PREFIX 将文件保存到目录 PREFIX/…
–cut-dirs=NUMBER 忽略 NUMBER层远程目录

* HTTP 选项

–http-user=USER 设定HTTP用户名为 USER.
–http-passwd=PASS 设定http密码为 PASS.
-C, –cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许).
-E, –html-extension 将所有text/html文档以.html扩展名保存
–ignore-length 忽略 `Content-Length'头域
–header=STRING 在headers中插入字符串 STRING
–proxy-user=USER 设定代理的用户名为 USER
–proxy-passwd=PASS 设定代理的密码为 PASS
–referer=URL 在HTTP请求中包含 `Referer: URL'头
-s, –save-headers 保存HTTP头到文件
-U, –user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION.
–no-http-keep-alive 关闭 HTTP活动链接 (永远链接).
–cookies=off 不使用 cookies.
–load-cookies=FILE 在开始会话前从文件 FILE中加载cookie
–save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中

* FTP 选项

-nr, –dont-remove-listing 不移走 `.listing'文件
-g, –glob=on/off 打开或关闭文件名的 globbing机制
–passive-ftp 使用被动传输模式 (缺省值).
–active-ftp 使用主动传输模式
–retr-symlinks 在递归的时候,将链接指向文件(而不是目录)

* 递归下载

-r, –recursive 递归下载--慎用!
-l, –level=NUMBER 最大递归深度 (inf 或 0 代表无穷).
–delete-after 在现在完毕后局部删除文件
-k, –convert-links 转换非相对链接为相对链接
-K, –backup-converted 在转换文件X之前,将之备份为 X.orig
-m, –mirror 等价于 -r -N -l inf -nr.
-p, –page-requisites 下载显示HTML文件的所有图片

* 递归下载中的包含和不包含(accept/reject)

-A, –accept=LIST 分号分隔的被接受扩展名的列表
-R, –reject=LIST 分号分隔的不被接受的扩展名的列表
-D, –domains=LIST 分号分隔的被接受域的列表
–exclude-domains=LIST 分号分隔的不被接受的域的列表
–follow-ftp 跟踪HTML文档中的FTP链接
–follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表
-G, –ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表
-H, –span-hosts 当递归时转到外部主机
-L, –relative 仅仅跟踪相对链接
-I, –include-directories=LIST 允许目录的列表
-X, –exclude-directories=LIST 不被包含目录的列表
-np, –no-parent 不要追溯到父目录

20. curl == 页面抓取、文件下载

 curl 文件URL -o  下载好后的文件路径  --progress

21. 定时任务 - crontab

//添加、取消定时任务(可通过删除某行任务以及在行头添加#字符都可以取消某个定时任务)
//定时任务定义语法:cat /etc/crontab                  分 时  日  月 周  脚本命令  共5个时间定义跟Java有点区别,注意区分
// 定时任务执行日志(仅是某个任务某个时间点调用信息):tail -10f /var/log/cron 
// 定时任务执行输出内容日志(即定时任务执行时的脚本输出信息):tail -10f /var/spool/mail/root
//其实就是修改这个文件:cat /var/spool/cron/root
crontab -e


//删除全部定时任务
crontab -r 

//查看定义的所有定时任务
//其实就是看这个文件:cat /var/spool/cron/root
crontab -l

tail -10f /var/spool/mail/root
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

22. 逻辑运算符与多命令的结合使用

&&:前面命令执行返回结果成功,后面的命令才需执行

||:前面命令执行返回结果成功,后面的命令无需执行,前面命令执行返回结果失败,后面的命令才需执行

在这里插入图片描述

logicTest.sh

#!/bin/bash

echo "========1==========="
[ -e /home/root/testShell/outContent.sh ] && echo 'outContent.sh文件存在'


echo "========2==========="
[ -e /home/root/testShell/outContent2.sh ] && echo 'outContent2.sh文件存在' || echo 'outContent2.sh文件不存在'


echo "========3==========="
[ -e /home/root/testShell/outContent2.sh ] || echo 'outContent2.sh文件不存在'

在这里插入图片描述

23. 清空文件

//方式1
cat /dev/null > 目标待清空内容的文件路径

//方式2
vim 目标待清空内容的文件路径
执行vim命令::%d
执行vim命令::wq!


//方式3
echo "" > 目标待清空内容的文件路径
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值