[TOC]
- r表示读权限
- w表示写权限
- x表示执行权限
cat file 查看文件,全部打印
more file 查看文件,打印一页 q退出
head file 查看文件前几行
grep 222 file 在文件中搜索字符串222,将找到的行打印出来
less file 查看文件,打印一页,可上下翻页
less交互命令
交互指令 | 功能 |
---|---|
G | 移动至最后一行 |
g | 移动到第一行 |
【PgDn】键 | 向下移动一页 |
【PgUp】键 | 向上移动一页 |
/字符串 | 向下搜索“字符串”的功能 |
?字符串 | 向上搜索“字符串”的功能 |
n | 重复*前一个搜索(与 / 成 ? 有关) |
N | 反向重复前一个搜索(与 / 或 ? 有关) |
q 或 Q | 退出 less 命令 |
ZZ | 退出 less 命令 |
mv newFiles/* audio/ 移动一个文件夹下的所有内容到另一个文件夹下面
mv /home/packageA /home/packageB/ 移动一个文件夹到另一个文件夹下面
mv /home/packageA /home/packageB 移动一个文件夹到另一个文件夹下面
find 目录路径 [选项参数] [搜索条件]
-- 查找/home 目录下所有以 .txt 扩展名结尾的文件
find /home -name "*.txt"
-- 查找当前目录及其子目录中查找所有以 .txt 结尾的文本文件
find . -name "*.txt"
-- 全局查找名称为nginx的文件
find / -name nginx #查找nginx相关目录和文件
如果设置的日志文件为catalina.out:
cat catalina.out 查看所有日志
cat catalina.out | grep '开始请求CMS' 查看所有日志并搜索
tail -f catalina.out 查看当前及之后产生的日志
tail -f catalina.out | grep '开始' 查看日志并搜索
tail -5000 catalina.out | grep '门店编码为' 查看含字符串 '门店编码为' 的最近5000条数据
tail -5000 catalina.out | grep -B 10 '门店编码为' 查看最近5000条数据中 '门店编码为' 的前10条数据
tail -5000 catalina.out | grep -A 10 '门店编码为' 查看最近5000条数据中 '门店编码为' 的后10条数据
查看springboot是否启动成功: tail -5000 catalina.out | grep 'startup'
ll > /home/tomcat/tkben-api/logs/catalina.out
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式 2.软链接可以 跨文件系统 ,硬链接不可以 3.软链接可以对一个不存在的文件名进行链接 4.软链接可以对目录进行链接
语法:ln -s 参数1 参数2
- -s选项,创建软链接
- 参数1,被链接的文件或文件夹
- 参数2,要链接去的目的地
ln -s /bin/less /usr/local/bin/less
// ln -s <目标文件或目录> <软连接名>
https://blog.csdn.net/lhwjgs123456789/article/details/127472189
Linux下,mount挂载的作用,就是将一个设备(通常是存储设备)挂接到一个已存在的目录上。访问这个目录就是访问该存储设备。类似于windows中U盘的功能,但U盘会自动挂载。
许多的安装包都在/dev下,虽然所有的包都有但是还没有与Linux系统建立联系,如果想要知道这些安装包就需要挂载到文件mnt 或者 media 里面。
挂载操作:https://blog.csdn.net/qq_51399192/article/details/124318863
mount(挂载):将设备与目录去做关联,目的是可以让用户通过目录去访问到设备中的信息
mkdir /mnt/usbFAT32 --/mnt 目录下创建手动进行挂载的目录
fdisk -i --查看挂载的设备信息(需要root用户进行查看)
Device Boot Start End Blocks Id System
/dev/sdb1 * 72 3767 29681664 c W95 FAT32 (LBA)
--一般情况下系统会自动检测对应的文件系统类型,所以可以不使用 -t vfat 指定文件系统类型
mount -t vfat /dev/sdb1 /mnt/usbFAT32
df -h --查看设备挂载情况,如下即成功挂载。
/dev/sdb1 29G 16G 13G 55% /mnt/usbFAT32
mount 192.168.12.23:/mnt/vdata/nfs/etc /mnt/nfs/lcellstorage
umount(卸载):将设备与目录取消关联
例如:
已经挂载的 /dev/sdb1 29G 16G 13G 55% /mnt/usbFAT32
umount /dev/sdb1 或者 umount /mnt/usbFAT32 都可以进行卸载
Linux系统都是各磁盘或者分区是通过挂载的方式访问的,临时使用的U盘、光盘等我们可以使用mount命令临时挂载,如果是系统固定的磁盘则需要我们将磁盘挂载写入/etc/fstab文件,实现开机自动挂载。我们可以通过查看/etc/fastab文件了解磁盘挂载信息,也可以通过编辑该文件更新、修改磁盘挂载信息。
配置文件检查
我们可以使用命令mount -a命令检查配置文件是否有错误
df -lh 查看磁盘使用情况和挂载点
df -h 查看挂载,显示更全
df /home 查看home目录磁盘使用情况
du -sh 查看的是当前目录的大小
du -sh /* 查看的是当前目录下所有子文件与子目录的大小,将其一 一列出
ls -lh 查看当前文件夹大小
ps -ef | grep java 搜索进程中有'java'字段的进程数据
kill -9 进程id 杀死某个进程
./catalina.sh start 启动tomcat
sz 文件:下载Linux文件到Windows本机
- sz filename 下载文件filename
- sz file1 file2 下载多个文件
- sz dir/* 下载dir目录下所有文件
rz 文件:从本地上传文件到Linux
注意:如果机器上没有安装过 lrzsz 安装包,则无法使用rz和sz命令。可使用yum命令安装:yum install -y lrzsz
hostname命令
查看主机名:hostname
修改主机名:hostnamectl set-hostname 主机名
域名解析
ping命令
语法:ping [-c num] ip或主机名
ping baidu.com
ping 192.110.168.11
ping -c 3 baidu.com
route命令
打印Linux中的路由表,查看网关
//查看网关
route -n
//修改网关
vi /etc/sysconfig/network-scripts/ifcfg-eth0
//重启网关
systemctl restart network
wegt命令
语法:wget [-b] url
选项:-b,后台下载
wget http://archive.apache.org/dist/hadoop-3.3.1.tar.gz
wget -b http://archive.apache.org/dist/hadoop-3.3.1.tar.gz
curl命令
发送网络请求或下载文件,网络请求会返回页面代码
语法:curl [-O] url
选项:-O,用于下载使用
curl cip.cc
curl baidu.com
curl -O http://archive.apache.org/dist/hadoop-3.3.1.tar.gz
free命令
free命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
可以采用free -m和free -g命令查看,分别表示MB和GB
-- 内存不足,释放空间
lsof -n / |grep deleted|awk '{print $2}'|xargs kill -9
top命令
top 命令查看系统的实时负载, 包括进程、CPU负载、内存使用等等
-Xms:初始Heap大小,使用的最小内存,
-Xmx:java heap最大值,使用的最大内存
-Xmn:年轻代
eg:-Xms8g -Xmx8g -Xmn3g
正常情况下,-Xmn
参数总是应当小于-Xmx
参数,否则就会触发OOM
错误。
Tab键 补全命令
查看历史命令
语法:history 会列出输入过的命令
history | grep ls 查询输入过的以ls开头的命令
语法:!命令前缀 自动执行上一次匹配前缀的命令
!tai 执行最近一次以tai开头的命令
语法:ctrl+r 输入内容去匹配历史命令,回车键可以直接执行,键盘左右键,可以得到此命令(不执行)
光标移动快捷键(命令)
- ctrl+a,跳到命令开头
- ctrl+e,跳到命令结尾
- ctrl+键盘左键,向左跳一个单词
- ctrl+键盘右键,向右跳一个单词
ctrl+c强制停止
- linux某些程序的运行,如果想要强制停止它,可以使用快捷键ctrl+c
- 命令输入错误,也可以通过快捷键ctrl+c,退出当前输入,重新输入
ctrl+d退出或登出
- 可以通过快捷键:ctrl+d,退出账户的登录
- 或者退出默写特定程序的专属页面
语法:systemctl start | stop | status | restart | reload | enable | disable 服务名
- start 启动服务
- stop 关闭服务
- status 查看服务状态
- restart 重启服务
- reload 重新加载配置
- enable 开启开机自启
- disable 关闭开机自启
service文件地址:etc/systemd/system
系统内置服务:
- firewalld,防火墙服务
- sshd,ssh服务
#重启命令
systemctl restart tomcat-tkben-api
systemctl restart tomcat-opent-data
systemctl restart tomcat-opent-api
tomcat-tkben-api.service
[Unit]
Description=Tomcat Cluster for Learning Cell API Server No. 0
After=syslog.target network.target nfs-client.target
[Service]
Type=forking
Environment=CATALINA_HOME=/opt/tomcat8
Environment=CATALINA_BASE=/home/tomcat/tkben-api
WorkingDirectory=/home/tomcat/tkben-api
LimitNOFILE=65535
LimitNPROC=65535
ExecStart=/opt/tomcat8/bin/startup.sh
ExecStop=/opt/tomcat8/bin/shutdown.sh
SuccessExitStatus=143
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
重启tomcat项目服务:systemctl restart tomcat-tkben-api
linux超时自动退出
vim /etc/profile
export TMOUT=1800 //超过1800秒无操作,当前用户自动退出登录
source /etc/profile
linux超时断开ssh连接
vi /etc/ssh/sshd_config
# 60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了
ClientAliveInterval
# 表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开
ClientAliveCountMax 3
systemctl restart sshd
//查看防火墙状态
systemctl status firewalld
//开启防火墙
systemctl start firewalld
//关闭防火墙
systemctl stop firewalld
//开启防火墙
service firewalld start
//若遇到无法开启
先用:systemctl unmask firewalld.service
然后:systemctl start firewalld.service
//查询已开放的端口(已开放的端口号集合):
firewall-cmd --zone=public --list-ports
//查询已开放的端口
netstat -ntulp | grep 端口号:可以具体查看某一个端口号
//查询指定端口是否已开
firewall-cmd --query-port=666/tcp
//提示 yes,表示开启;no表示未开启。
//查看想开的端口是否已开
firewall-cmd --query-port=6379/tcp
//添加指定需要开放的端口
firewall-cmd --add-port=123/tcp --permanent
//重新加载防火墙规则
firewall-cmd --reload
//查询指定端口是否开启成功
firewall-cmd --query-port=123/tcp
//移除指定端口
firewall-cmd --permanent --remove-port=123/tcp
//使用firewall-cmd命令来限制特定IP地址对系统的访问
firewall-cmd --permanent --add-rich-rule='rulefamily="ipv4" sourceaddress="192.16.150.10" reject'
//使用firewall-cmd命令来限制特定IP地址对系统端口的访问
firewall-cmd --permanent --add-rich-rule='rulefamily="ipv4" sourceaddress="192.16.150.10" port protocol="tcp" port="8035" reject"
//重新加载防火墙规则
firewall-cmd --reload
//查询已禁用的ip
firewall-cmd --list-rich-rules
//使用firewall-cmd命令来解除被禁用ip的端口限制
firewall-cmd --permanent --add-rich-rule='rulefamily="ipv4" sourceaddress="192.16.150.10" accept'
//使用firewall-cmd命令来解除被禁用ip的端口限制
firewall-cmd --permanent --add-rich-rule='rulefamily="ipv4" sourceaddress="192.16.150.10" port protocol="tcp" port="8035" accept'
//重新加载防火墙规则
firewall-cmd --reload
//安装所有更新软件
yum update
//列出所有可安装的软件包
yum list
//列出所有已安装的软件包
yum list installed
//搜索是否有对应软件包
yum search <keyword>
eg:yum search squid
//若有,则可以下载
yum install <keyword>
//清除YUM缓存
yum clean packages
安装运行443端口
//安装SSL
yum install mod_ssl
//启动
systemctl restart httpd
//防火墙开启443端口
计算机程序之间的通讯,通过IP只能锁定计算机,但是无法锁定具体的程序。
通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通。
IP只能确定计算机,通过端口才能锁定要交互的程序。
IP地址相当于小区地址,在小区里有许多住户(程序),而门牌号(端口)就是各个住户的联系地址。
Linux系统是一个超大号小区,可以支持65535个端口,这6万多个端口分为3类进行使用:
- 公认端口: 1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口, HTTPS服务的443端口 非特殊需要,不要占用这个范围的端口
- 注册端口: 1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务(用户自定义)
- 动态端口: 49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。(多用于出口)
查看端口占用
nmap命令,安装nmap:yum -y install nmap
查看该IP的对外暴露端口
语法:nmap 被查看的IP地址
nmap 127.0.0.1
lsof命令
查看端口连接情况
lsof -i :8072
在tomcat里查看服务端口:vi conf/server.xml
netstat命令,安装netstat:yum -y install net-tools
查看该端口号的占用情况
语法:netstat -anp | grep 端口号
netstat -anp | grep 6000
当前系统9090端口被程序(进程号7174)占用了
其中,0.0.0.0:9090,表示端口绑定在0.0.0.0这个IP地址上,表示允许外部访问
netstat -nlp | grep 8102 查看网络端口
参数 | 解释 |
---|---|
-a | 显示所有连线中的Socket |
-p | 显示正在使用Socket的程序识别码和程序名称 |
-u | 显示UDP传输协议的连线状况 |
-i | 显示网络界面信息表单 |
-n | 直接使用IP地址,不通过域名服务器 |
-l | 仅列出有在 Listen (监听) 的服务状态 |
-t | (tcp)仅显示tcp相关选项 |
crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行。
crontab:定时任务的守护进程,精确到分,设计秒的我们一般写脚本 –>相当于闹钟
日志文件: ll /var/log/cron*
编辑文件: vim /etc/crontab
进程:ps -ef | grep crond ==> /etc/init.d/crond restart
作用:定时备份,实时备份
crontab -l #查看定时内容
crontab -e
# 此时会进入 vi 的编辑画面让您编辑工作!注意到,每项工作都是一行。
#分 时 日 月 周 |<==============任务的完整命令行
# 凌晨两点执行rsyncfile.sh脚本任务
* 2 * * * /home/blue/do/rsyncfile.sh
sh脚本
#!/bin/bash
# 删除上次执行过的sql文件
rm -f abilities.sql indicators.sql knowledges.sql
# 备份表数据
mysqldump -h172.18.136.20 -P4000 -ueasyuser -pOTsTp=Mu --skip-opt -t --default-character-set utf8 easy_paper abilities > abilities.sql
mysqldump -h172.18.136.20 -P4000 -ueasyuser -pOTsTp=Mu --skip-opt -t --default-character-set utf8 easy_paper indicators > indicators.sql
mysqldump -h172.18.136.20 -P4000 -ueasyuser -pOTsTp=Mu --skip-opt -t --default-character-set utf8 easy_paper knowledges > knowledges.sql
echo "$(date +%F) export success"
# 清空表数据
sed -i "1i\TRUNCATE TABLE abilities;" abilities.sql
sed -i "1i\TRUNCATE TABLE indicators;" indicators.sql
sed -i "1i\TRUNCATE TABLE knowledges;" knowledges.sql
# 替换文件内的字符串
sed -i "s#abilities#yice_abilities#g" abilities.sql
sed -i "s#indicators#yice_indicators#g" indicators.sql
sed -i "s#knowledges#yice_knowledges#g" knowledges.sql
# 执行备份sql命令
mysql -h172.18.136.19 -uliufang -pGaojj2023. --default-character-set utf8 learningcell_v2 < abilities.sql
mysql -h172.18.136.19 -uliufang -pGaojj2023. --default-character-set utf8 learningcell_v2 < indicators.sql
mysql -h172.18.136.19 -uliufang -pGaojj2012. --default-character-set utf8 learningcell_v2 < knowledges.sql
rpm
查看系统中是否已安装mysql
rpm -qa |grep mysql
返回空值说明没有安装mysq