- content
由于各个系统配置参数/基本操作非常难记住,故本文主要讲解系统操作基本知识
一、系统版本
Wins: 我的电脑 > 属性
Linux:
# (1)查看系统版本
lsb_release -a
# (2) 系统内核
uname -a
# 查询服务器开方的端口
netstat -anp
# 查看操作系统信息
cat /proc/version
# 查看红帽子版本
cat /etc/redhat-release
# 磁盘占用情况
df -h
# 查看服务器资源s
free -h
# (3) 软件安装命令
centos: yum install xx
ubuntu: apt install xx
alpine: apk add xx
# rpm 安装与解压
rpm -ivh xxx.rpm
# 查询已安装程序
rpm -qa|grep -i mysql
# 卸载 (查询已安装程序名称)
rpm -e 名称
二、字节顺序
1. 大端模式
低地址存高位
2. 小端模式
低地址存低位
一般针对CPU而言
目前Intel的80x86系列芯片是唯一还在坚持使用小端的芯片,ARM芯片默认采用小端,但可以切换为大端;而MIPS等芯片要么采用全部大端的方式储存,要么提供选项支持大端——可以在大小端之间切换。另外,对于大小端的处理也和编译器的实现有关,在C语言中,默认是小端(但在一些对于单片机的实现中却是基于大端,比如Keil 51C),Java是平台无关的,默认是大端。在网络上传输数据普遍采用的都是大端。
三、路径
Wins Hosts
C:\Windows\System32\drivers\etc
Linux/Mac profile
/etc/profile
四、网络
1. 检查网络
# 检查网络联通信息
ping + IP ;
# 检查远程服务端口是否开通 telnet 10.1.2.25 3306
telnet ip port;
# nc 命令检测 nc -vz 10.1.2.25 3306 nc -vz www.baidu.com 3306
nc -vz ip port;
ping 工作原理 类比 http 请求
2. 端口是否占用
Mac: lsof -i:8080
Windows: netstat -aon | findstr "8080"
Linux: netstat -tunlp/-aon 或 netstat -tunlp/-aon | grep 8080
3. 关闭进程
Windows:
查找:tasklist | findstr port --> netstat -aon | findstr port
关闭:taskkill /f /t /im mysql.exe
端口:taskkill /pid pid /t /f
关闭进程: kill pid
#!/bin/bash
echo "input parameter is: $1 "
ps -ef | grep $1 | grep -v grep | awk '{print $2}' | xargs kill -9
4. 重启
Linux:
shutdown -r
系统重启时自动启动程序:
编辑 /etc/rc.local 文件;
(1)将需要启动的程序(脚本 sudo service docker start )添加到文件末尾,并为rc.local 添加可执行权限 (chmod +r /etc/rc.local)
(2) source xxxx.sh 添加到文件末尾,并为rc.local 添加可执行权限 (chmod +r /etc/rc.local)
5. 定时任务
crontab文件的格式:M H D m d cmd.
基本格式 :
* * * * * command
分 时 日 月 周 命令
M: 分钟(0-59)。每分钟用*或者 */1表示
H:小时(0-23)。(0表示0点)
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量
特别提醒:
(1) 直接 vim /etc/crontab 为系统任务
(2)crontab -e 为用户级任务,文件为 /var/spool/cron/具体user名(root) 不需要添加执行用户
10 23 * * * root /usr/local/clamav/bin/freshclam # 其中root不需要!!
# (1) update ssl, every two months update; need to restart service
0 12 1 * * /usr/local/nginx/ssl/meizhangzheng/admin/run.sh /usr/local/nginx/ssl/meizhangzheng/admin/conf.conf
# (1.1) restart nignx service and make ssl effective
0 13 1 * * docker restart nginx_nginx_1
# (2) upgrade clamav lib
10 23 * * * /usr/local/clamav/bin/freshclam
# (3) scan /tmp/ dir
30 23 * * * /usr/local/clamav/bin/clamscan -r --bell -i >> /usr/local/clamav/scanresult.txt
# (4) send the result of clamavscan to 126mail
# <1. vim /usr/local/clamav/sendMail.sh
# <2. /bin/mail -s `date "+%Y-%m-%d_%H:%M:%S"`"clamavscan result" xsj34567@126.com </usr/local/clamav/scanresult.txt
# 之所将命令写入sendMail.sh 文件中,是为了定时任务中能够识别`date`函数
50 23 * * * /bin/bash /usr/local/clamav/sendMail.sh
6. 模拟请求命令
Linux:
curl 模拟Get请求:
curl http://www.baidu.com
curl 模拟Post请求:
curl -d "year=2019&month=6" http://url
curl -X POST -H 'Content-Type: application/json' -d '{"city": "310100", "supplier": "a0004", "order_type": "0","date" : "2020-06-04","plan": [{"id":"728486","type":"003"}, {"id":"728487","type":"003"}, {"id":"728492","type":"003"}, {"id":"728493","type":"003"}]}' http://matter.test/api/outsideMatterPathV2
五、文件
1. 基本命令
- 查找文件
Linux:
文件夹查找: find -name fileName 某一目录查找(全局查找): find / -name fileName
文件内查找: cat filename | grep 'XXXX'
线程中查找: ps -ef | grep 'xxxx'
查看文件(前10行、后10行): cat fileName | grep xx -A 10 -B 10
- 压缩/解压文件
<1. tar
解包:tar zxvf filename.tar
打包:tar czvf filename.tar dirname
# .tgz 包名也通过tar命令解压
<2.zip
解包:unzip filename.zip
压缩:zip filename.zip dirname
<3.jar
解包:jar -xvf filename.jar
压缩:jar cf filename.jar dirname
- 创建多级目录
mkdir -p /usr/meizhangzheng/ftp/data
- 多行注释
vim fileName # vi 不成功
ESC
(1) CTRL + V 进入VISUAL BLOCK模式;
(2) 选中要操作的行(注释);
(3)Shift + i;
(4)输入操作符: # //
(5) 两次ESC操作
取消注释:
取消多行注释时同样重复1、2,但此时光标选中注释符,
并选好行数之后。只需按d键(小写),注释就被删除
- 替换字符
vi/vim 中可以使用 :s 命令来替换字符串。
# select * from tableName 导出 insert sql语句 时:
# 替换当前行第一个 `<table_name>` 为 tableName
:s/`<table_name>`/tableName/
# 替换第 n 行开始到最后一行中每一行的第一个 `<table_name>` 为 tableName
:s/`<table_name>`/tableName/g # 替换当前行所有 well 为 tableName
:n,$s/`<table_name>`/tableName/
#替换第 n 行开始到最后一行中每一行所有 `<table_name>` 为 tableName n 为数字,若 n 为 .,表示从当前行开始到最后一行
:n,$s/`<table_name>`/tableName/g
# 当文件比较大时,不能直接使用vi/vim命令
sed -e "n,$s/`<table_name>`/tableName/g" oldfilename > newfilename # n表示从第几行开始替换
- 删除行
# 1. 设置行数 :set number
# 2. 在vi中," . "表示当前行,“1,.”表示从第一行到当前行,“d ” 表示删除。
# 3. 如果只是想删除某一行,那么把光标指到该行,然后输入dd 即可
- 删除指定目录下指定文件
# wins:
del /s *.lastUpdated
#linux: find --help search instructions
find /data/repo -type f -name '*.lastUpdated' | xargs rm -rf
2. SFTP
- 各个环境间相互传输文件命令
# 帮助命令
sftp -help
# sftp连接服务器
sftp username@ip
# (1)本地文件上传:
put local_path remote_path
# (1.1)上传本地文件夹:
put -r local_dir remote_path
# (2)服务器文件下载:
get remote_path local_path
# (2.1)下载服务器文件夹:
get -r remote_dir local_path
# 特殊 ssh 远程连接服务器:
ssh -p 22 root@39.108.247.239
-
-
上传: rz
-
下载: sz filename
-
3. 权限
(1)设置拥有者/创建者 、 用户组 2020.04.30
[meizhangzheng@master ~]$ sudo chown -R meizhangzheng data/
[meizhangzheng@master ~]$ sudo chgrp -R meizhangzheng data/
(2) 添加可执行权限
chmod +x ..
4. 防火墙开放指定端口
#外部主机访问端口,则需要开放指定端口(默认开放80端口)
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 查询㐰是否开启
firewall-cmd --query-port=80/tcp
# 保存防火墙配置(之后可通过外网IP访问)
firewall-cmd --reload
# 启动防火墙
systemctl start firewalld
# 其他: 关闭防火墙(危险)
systemctl stop firewalld
# 查看端口列表
firewall-cmd --list-port
# 移除端口号
firewall-cmd --zone=public --remove-port=80/tcp --permanent
5. 开启自启动
# 将启动命令添加到 /etc/rc.d/rc.local ⽂件中:
# 编辑 rc.local ⽂件
vim /etc/rc.d/rc.local
#最后⼀⾏加⼊如下内容
/usr/local/nginx/sbin/nginx
#添加完保存后,给 rc.local ⽂件赋予可执⾏权限
chmod +x /etc/rc.d/rc.local
6. 疑难
6.1 命令行报 bash:…..:command not found 的解决办法(几乎所有命令)如果命令行不起作用;
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin
6.2 目录爆满
# 查看哪个目录占用存储多
du -h -x --max-depth=1
# 进入指定目录,删除部分无用的文件
cd dir;
rm -rf xxx.*;
参考
“合格的开发者知道怎么做,而优秀的开发者知道为什么那么做。” ---<<Web性能权威指南>> Steve Souders推荐序