没长正的技术专栏 勤动手、多思考

系统基本操作

2013-01-01

阅读:

2019-08-19

  • 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

jar 命令

  • 创建多级目录
    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表示从第几行开始替换

替换来源sed 替换

  • 删除行
# 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

wins 参考linux 参考

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

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.*;

参考

端口是否占用

Linux 命令大全

Linux crontab

大小端模式

目录爆满

“合格的开发者知道怎么做,而优秀的开发者知道为什么那么做。”  ---<<Web性能权威指南>> Steve Souders推荐序

欢迎拍砖,多多交流,转载请注明出处:[没长正的技术专栏](http://blog.meizhangzheng.com) 如涉及侵权问题,请发送邮件到xsj34567@163.com,如情况属实本人将会尽快删除。


上一篇 五维思考法

下一篇 系统安全

Comments

Content