centos系统 基本命令的使用

基本命令的使用

未分类

#查看历史命令
  history
#查看全路径
  pwd    
#根据进程名查找进程
  ps -ef | grep 进程名

#硬链接与软连接
  #创建软连接
   ln -s source-file  target-file
   #创建硬链接(文件夹逻辑上不允许建立硬链接)
    ln source-file  target-file

包相关

rpm
npm
#查看包大小  
  du -h --max-depth=2
df -h
du -h --max-depth=1

yum源更换

#CentOS7更换yum源为阿里云镜像源
#1. 备份原来的yum源
  cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
#2.设置aliyun的yum源
  wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#3.添加EPEL源
  #EPEL(http://fedoraproject.org/wiki/EPEL)是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上 EPEL后,可以像在 Fedora 上一样,可以通过 yum install package-name,安装更多软件。
  wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
#4.清理缓存并生成新的缓存
  yum clean all
  yum makecache
  

网络相关

#初始服务器网络配置        (于VMware centos7.1810 中测试可用)
  #获取动态地址访问外网
    dhclient
  #设置服务器静态IP
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    #修改
    ONBOOT=no 改为 ONBOOT=yes
    BOOTPROTO=dhcp  改为 BOOTPROTO=static
    #添加
    IPADDR=192.168.127.128
    NETMASK=255.255.255.0
    GATEWAY=192.168.127.2
    DNS1=119.29.29.29
    
  #重启网络
    systemctl restart network.service

日志相关

#动态查看日志文件
  tail -f 日志文件路径
  
#历史命令 显示时间
  export HISTTIMEFORMAT='%F %T'
  history

端口相关

#远程端口测试
  telnet IP port
#查看端口占用情况
  netstat -tunlp/na |grep 端口号 
#测试端口是否占用
  netstat –ano 
  netstat -tlunp

防火墙相关

# 防火墙开启与关闭
  # 查看防火墙状态
  systemctl status firewalld
  # 开启防火墙
  systemctl start firewalld
  systemctl stop firewalld
  
# 防火墙放行端口
  (1)  iptables -I INPUT -p tcp --dport 60010 -j ACCEPT
  (2) firewall-cmd --zone=public --add-port=8080/tcp --permanent 
  # 重新加载
     firewall-cmd --reload
# 防火墙查询放行端口
  firewall-cmd --zone=public --list-ports
  firewall-cmd --list-all
  firewall-cmd --list-all-zone
  
# 基于IPtables
  # 配置防火墙允许指定ip访问端口
    # 开放一个IP的一些端口,其它都封闭
      iptables -A Filter -p tcp --dport 109 -s 192.168.100.200 -j ACCEPT
    # 开启ip段192.168.1.0/24端的80口
      iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT
    # 多个端口
      iptables -A Filter -p tcp -m multiport --destination-port 22,53,80,110 -s 192.168.20.3 -j REJECT
    # 指定时间上网
      iptables -A Filter -s 10.10.10.253 -m time --timestart 6:00 --timestop 11:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j DROP
  
  # iptables 限制ip访问  注意命令的顺序不能反了。
  # 通过iptables限制9889端口的访问(只允许192.168.1.201、192.168.1.202、192.168.1.203),其他ip都禁止访问
    iptables -I INPUT -p tcp --dport 9889 -j DROP
    iptables -I INPUT -s 192.168.1.201 -p tcp --dport 9889 -j ACCEPT
    iptables -I INPUT -s 192.168.1.202 -p tcp --dport 9889 -j ACCEPT
    iptables -I INPUT -s 192.168.1.203 -p tcp --dport 9889 -j ACCEPT
    
# 基于firewalld     https://www.cnblogs.com/zmqcoding/p/14700374.html
  # 自定义复杂规则(注意是否与已有规则冲突)
    # 允许指定IP访问本机8080端口
      firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" accept'
    # 允许指定IP段访问本机8080-8090端口
      firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="8080-8090" accept'
    # 禁止指定IP访问本机8080端口
      firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" reject'
    # 删除rich rule
    firewall-cmd --permanent --remove-rich-rule '规则列表'
    firewall-cmd --permanent --remove-rich-rule 'rule family="ipv4" source address="0.0.0.0/0" forward-port port="8077" protocol="tcp" to-port="80" to-addr="192.168.4.245"

  # 查询端口是否开放
    firewall-cmd --query-port=8080/tcp
  # 新建永久规则,开放8080端口(TCP协议)
    firewall-cmd --permanent --add-port=8080/tcp
  # 移除上述规则
    firewall-cmd --permanent --remove-port=8080/tcp
  # 新建永久规则,批量开放一段端口(TCP协议)
    firewall-cmd --permanent --add-port=9001-9100/tcp  

  # 任何修改操作,配置完成后,需要重新装载firewall。也可重新启动firewalld服务。
    firewall-cmd --reload
    service firewalld restart

远程连接相关

#使用ssh连接远程服务器
  ssh 10.14.2.103 -p22022 -uroot
  ssh root@10.14.2.103 -p22022
  ssh ip -p端口 -u用户名

发送请求相关

#curl发送post请求
curl -H "Content-Type: application/json"  \
   -X POST \
   -d '{"user_id": "123", "coin":100, "success":1, "msg":"OK!" }' \
      "http://192.168.0.1:8001/test"

文件或文件夹

#查询 path/当前 目录下的所有空文件夹
  find [path] -type d -empty
#删除 path/当前 目录下的所有空文件夹
  find [path] -type d -empty | xargs rm -rf
#删除./info/目录下10天前的所有.log结尾文件
  find ./info/ -type f -name "*.log" -mtime +10 -delete
#删除当前目录下120min前的所有.log结尾文件
  find ./ -type f -name "*.log" -mmin +120 -delete 

#Linux清空日志的五种方法
  第一种:cat /dev/null > filename
  第二种:: > filename
  第三种:> filename
  第四种:echo "" > filename
  第五种:echo > filename

#删除文件
  rm -rf 包名  删除该包及其包内子包
     ​ -f :即使原档案属性设为唯读,亦直接删除,无需逐一确认。
    ​ -r:将目录及以下之档案亦逐一删除。

#创建文件夹
  mkdir -p 多级目录
  touch a.txt

#压缩
  tar -zcvf 文件名.tar.gz 要压缩文件路径
  
    -c 建立一个压缩文件的参数指令(create) –压缩
    -x 解开一个压缩文件的参数指令(extract) –解压
    -z 是否需要gzip压缩
    -v 显示压缩的过程(verbose)
    -f 使用档名,在f之后要立即接档名(file)
#解压包
  tar -zxvf  解压文件  -C 解压目录
  
  unzip [可选参数] 解压文件 -d 解压路径
  unzip -o test.zip -d /opt/tmp/      #将test.zip解压到/tmp目录下,并且覆盖已有文件
  # 可选参数
    -c  将解压缩的结果显示到屏幕上,并对字符做适当的转换;
    -f  更新现有的文件;
    -l  显示压缩文件内所包含的文件;
    -p  与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换;
    -t  检查压缩文件是否正确;
    -u  与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中;
    -v  执行时显示详细的信息;
    -z  仅显示压缩文件的备注文字;
    -a  对文本文件进行必要的字符转换;
    -b  不要对文本文件进行字符转换;
    -C  压缩文件中的文件名称区分大小写;
    -j  不处理压缩文件中原有的目录路径;
    -L  将压缩文件中的全部文件名改为小写;
    -M  将输出结果送到more程序处理;
    -n  解压缩时不要覆盖原有的文件;
    -o  不必先询问用户,unzip执行后覆盖原有的文件;
    -P<密码>  使用zip的密码选项;
    -q  执行时不显示任何信息;
    -s  将文件名中的空白字符转换为底线字符;
    -V  保留VMS的文件版本信息;
    -X  解压缩时同时回存文件原来的UID/GID;
    -d<目录>  指定文件解压缩后所要存储的目录;
    -x<文件>  指定不要处理.zip压缩文件中的哪些文件;
    -Z  unzip-Z等于执行zipinfo指令。
 
#根据 文件/文件夹 名称查找文件
  find / -name '文件夹名称'     
  find / -type d -name "ssh"
  find / -name "*.config"
  find / -empty
  
#服务期之间文件拷贝
  scp [可选参数] file_source file_target 
  scp local_file remote_username@remote_ip:remote_folder
  scp local_file remote_username@remote_ip:remote_file
  scp local_file remote_ip:remote_folder
  scp local_file remote_ip:remote_file 
  scp -P 端口号 local_file remote_username@remote_ip:remote_folder     P 大写
  #从本地复制到远程
    scp  [用户名@]远程IP:远程文件夹  本地文件夹
    scp 用户名@远程IP:远程目录 本地目录
  #从远程复制到本地  调换local和remote位置即可
      参数说明:
          -1: 强制scp命令使用协议ssh1
          -2: 强制scp命令使用协议ssh2
          -4: 强制scp命令只使用IPv4寻址
          -6: 强制scp命令只使用IPv6寻址
          -B: 使用批处理模式(传输过程中不询问传输口令或短语)
          -C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
          -p:保留原文件的修改时间,访问时间和访问权限。
          -q: 不显示传输进度条。
          -r: 递归复制整个目录。
          -v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
          -c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
          -F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
          -i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
          -l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
          -o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
          -P port:注意是大写的P, port是指定数据传输用到的端口号
          -S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
  
#本地文件复制到远程
  scp -r  ./资料  root@192.168.224.135:/opt
posted @ 2024-04-17 16:51  顔宸  阅读(14)  评论(0编辑  收藏  举报