Linux 基础

154 阅读5分钟

1、目录结构

image.png

  • 启动目录

    • /etc: 配置文件目录(极其重要),后续所有服务的配置文件都在这个目录中
      • /etc/sysconfig/network-scripts/ifcfg-: 网络配置文件。
      • /etc/hostname: 主机名。
      • /etc/resolv.conf: 更改DNS,优先级小于网络配置文件中的DNS
  • 系统文件目录

    • `/usr: 相当于C:\Windows
      • /usr/local: 通常用于存放用户自行编译安装的软件,相当于C:\Program File。
      • /usr/bin: 普通用户使用的应用程序(重要)
      • /usr/sbin: 超级管理员使用的应用程序(重要)
      • /usr/lib: 库文件Glibc 32bit。若删除可能导致命令不可用
      • /usr/lib64: 库文件Glibc 64bit。若删除可能导致命令不可用。
  • 可变项目与临时目录

    • var: 非常重要的目录(日志文件、临时文件)
    • tmp: 存储临时文件。这些文件通常是应用程序在运行期间创建的临时文件或缓存文件
    • run: 一个临时目录,用于存放应用程序在运行期间需要的一些短暂存在的文件,比如socketpid文件
  • 命令相关目录

    • bin: 普通用户使用的命令。例如: /bin/ls; /bin/date;
    • sbin: 超级管理员使用的命令。例如: /sbin/service; /sbin/useradd;
  • 用户相关目录

    • /root: 超级管理员root的目录
    • /home: 普通用户的目录
  • 设备目录文件

    • /dev: 存放设备文件。比如硬盘、分区、光驱、会话终端等
    • /dev/sd: 硬盘分区及硬盘分区。例如sda sdb sdc等。
    • /dev/null: 黑洞设备,只进不出。
    • /dev/zero: 源源不断的产生数据。
    • /dev/random: 生产随机数的设备。
  • 虚拟的文件系统

    • proc: 反应当前系统正在运行的进程实时状态
  • 软连接形式目录

    • CentOS7/bin,/sbin,/lib,/lib64都是以软链接的形式连接到/usr目录下
  • 其他目录

    • /media: 提供设备的挂载点。
    • /mnt: 提供设备的挂载点。
    • /opt: 一个可选的软件安装目录,可以用于存放第三方软件。这个目录是用户级的程序目录,可以理解为D:/Software

2、目录文件操作

  • 通用操作

    • ls: 列出目录
      • ls -l # 列出所有的文件,包含文件的属性和权限
      • ls -a # 查看全部的文件,包括隐藏文件
    • cd:切换目录
      • 使用绝对路径/,
      • 也可以使用./相对路径
      • 回到上级目录cd ..
    • cp: 复制文件或目录
      • cp source target
    • mv: 移动文件与目录
      • mv source target
      • mv -f 强制移动
      • mv -u 只替换更新后的文件
    • rm: 移除文件或目录
      • rm -f 强制删除!
      • rm -r 递归删除
      • rm -rf 强制递归删除
  • 文件操作

    • touch:命令来创建文件
      • touch textdIr
    • echo:命令往文件里面写入内容
      • echo "hello" >> readme.txt
    • cat:用来查看文件内的内容
      • cat textdIr
    • more:命令来查看显示长文件内容
  • 文件夹操作

    • pwd:显示目前的目录
    • mkdir:创建一个新的目录
      • mkdir textDIr
    • rmdir:删除一个空的目录
  • tar -zxvf tar.gz 解压命令

3、管理系统服务的命令:service VSsystemctl

  • 配置文件位置不同:

    • service 命令使用 /etc/init.d/ 目录下的脚本文件
    • systemctl 命令使用 /lib/systemd/system/ 目录下的 unit 文件。
  • 状态信息不同:

    • service 命令通过执行脚本来获取服务状态信息
    • systemctl 命令通过 systemd 的状态管理功能来获取状态信息(更详细和准确)
  • 命令选项不同:

    • service 命令只有 start、stop、restart、reload 等简单选项
    • systemctl 命令更多 enable、disable、status、is-active、is-enabled 等
  • 兼容性不同:

    • 一些较老的服务可能只能通过 service 命令启动或停止
    • systemctl 命令并不支持。

4、防火墙 - Linux 中有两种防火墙软件

  • ConterOS7.0以上使用的是 firewall
  • ConterOS7.0以下使用的是 iptables
Firewall

systemctl 操作命令

systemctl status firewalld # 查看防火墙状态
systemctl start firewalld # 开启防火墙
systemctl stop firewalld # 关闭防火墙
systemctl enable firewalld # 开机启动
systemctl disable firewalld # 禁用开机启动
firewall-cmd --reload # 重启防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent # 开放端口、重启防火墙
firewall-cmd --zone=public --remove-port=8080/tcp --permanent # 关闭端口、重启防火墙
firewall-cmd --list-ports # 查看开放的端口

service 操作命令

# 防火墙
systemctl status firewalld # 查看状态
service firewalld start # 开启
service firewalld restart # 重启
service firewalld stop # 关闭
Iptables(需要安装)
  • 由于 CenterOS7.0 以上版本并没有预装 Iptables
    • systemctl stop firewalld # 先关闭防火墙
    • yum install iptables # 安装 iptables
    • yum install iptables-services # 安装 iptables-services
systemctl start iptables.service # 开启防火墙
systemctl stop iptables.service # 关闭防火墙 
systemctl status iptables.service # 查看防火墙状态
systemctl enable iptables.service # 设置开机启动
systemctl disable iptables.service # 禁用开机启动
iptables -L -n # INPUT链可以看出开放了哪些端口
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT # 开放8080端口

5、网络链接

  • 本地连接服务器

  • 查看网络 netstat

    • -a:列出所有的网络连接
    • -n:不使用域名与服务名,而使用IP地址和端口号
    • -p:列出所对应的进程信息
    • -l:仅列出在监听状态网络服务
    • -t:列出TCP协议端口
    • -u:列出UDP协议端口
    • grep :用来筛选,过滤后面的条件
    • 当使用 netstat | more进行滚屏,ctrl+f/b进行翻上/下页
  • 查看端口的占用情况

    • netstat -anpl | grep 22
      • tcp 0 0 0.0.0.0:22 .... 60098/sshd
    • $kill -s 9 1827:结束进程