Linux使用与相关指令

Linux 常用指令

一、基本指令

# 创建用户
useradd 用户名
# 切换用户,不加"用户名"表示切换到root
su - 用户名
# 删除用户
userdel 用户名
# 删除用户并删除家目录
userdel -r 用户名
# 查看用户信息列表
tail -5 /etc/passwd
# 修改用户密码(root可以直接修改普通用户密码,不需要知道原密码)
passwd 用户名

# 查看内容
# 查看全部
cat xx.txt
# 查看前5条
head -5 xx.txt
# 查看后5条
tail -5 xx.txt
# 实时监控文本内容
tail -f xx.txt
# 查看IP地址
# centos
ip addr
# ubuntu
ifcongig

# 安装与卸载程序
sudo yum install uwsgi
sudo yum remove uwsgi
# 查找与指定程序相关的进程信息
ps -aux | grep nginx
ps -ef | grep -i uwsgi
# 列出所有正在使用 80 端口的进程的相关信息
sudo lsof -i :80
# 强制杀死uwsgi进程:
pkill -f uwsgi -9 
killall -s INT uwsgi

# 清除缓存
# 清理 yum 缓存
sudo yum clean all
# 清理 apt 缓存
sudo apt clean
# 清理无用的依赖项和其他不再需要的缓存数据 (只会删除那些无法再下载的软件包缓存)
sudo apt autoclean

# 多条指令同时执行 command1 && command2
cd /etc && vim profile

# 查找文件并复制到指定目录中
find . -type f -name '1.txt' -exec cp {} /opt/ \;

# 将.txt后缀的文件批量打包到all.tar.gz
# 错误写法:这里会将1.txt 2.txt...多次执行打包,最后all.tar.gz压缩文件中只有1.txt
find . -type f -name '*.txt' -exec tar zcvf all.tar.gz {} \;
# 正确写法 xargs 将管道前的文件内容放到指令(这里为tar)最后
find . -type f -name '*.txt' | xargs tar zcvf all.tar.gz
# 指令参数说明
# -exec 逐行执行;xargs 批量执行;exec和xargs都可以读取查找出来的文件名并读取(执行)内容
- type 查找的文件类型
- name 查找的文件名称
- exec 执行后续动作
- {} exec前面的执行结果内容的占位符
- \; exec指令的结束符号,\是";"的转义符

二、网络相关

# 重启网卡
systemctl restart network
# 查看外网IP地址(Ubuntu/Centos/Win 通用)
curl ifconfig.me
curl cip.cc

三、搜索与查看

# 查看操作系统发行版本,适用于多种不同的 Linux 发行版
cat /etc/os-release

# 查看程序启动情况(Ubuntu/Centos 通用)
sudo systemctl status docker

# 查看所有ip访问服务器的次数; /var/log/secure为访问日志文件
grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' /var/log/secure | awk '{count[$0]++} END {for (ip in count) print ip " ==> " count[ip]}'
216.218.206.68 ==> 1
57.152.75.184 ==> 1
139.59.138.134 ==> 1
152.42.136.45 ==> 1

四、配置相关

# 美化终端显示效果
vim /etc/profile
# 文件结尾添加
export PS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\] \[\e[31;1m\]\w\[\e[0m\]]\\$"
# 立即生效
source /etc/profile

# 查看环境变量
echo $PATH
# 添加路径到环境变量
# bash 窗口临时生效
PATH=$PATH:/usr/sbin
# 修改全局配置/etc/profile, 永久生效
export PATH=$PATH:/usr/sbin

五、特定功能

# 基于Red Hat系列(如 CentOS、Fedora 等)的 Linux 操作系统安装gcc 和 make
yum install gcc make -y
# Ubuntu 操作系统安装gcc 和 make
sudo apt update
sudo apt install gcc make

配置 SSH 客户端连接远程服务器

一、基本连接方式

  • 作用说明
    提高效率:无需每次都输入完整的服务器地址、用户名、端口号等详细信息,节省时间和减少输入错误的可能性。
    方便管理:可以为不同的服务器设置不同的配置项,例如特定的密钥、端口或其他参数,使连接管理更加清晰和有条理。
    增强安全性:可以在配置中指定使用特定的密钥对进行身份验证,提高登录的安全性。
    一致性:确保每次连接时使用相同的设置,避免因输入不一致导致的连接问题。
    易于记忆:自定义的连接名称通常比复杂的服务器地址和端口更容易记住。
    
    例如,如果您同时管理多个开发环境的服务器、测试服务器和生产服务器,通过快捷连接配置,能够快速准确地连接到所需的服务器,而不会因为混淆服务器信息而浪费时间或导致错误。
    
  • 配置步骤
    1. 打开文件资源管理器,在地址栏中输入 %USERPROFILE%\.ssh (Linux系统为/root/.ssh)并按下回车键。如果系统中还没有 .ssh 文件夹,您需要手动创建这个文件夹。
    2. 在 .ssh 文件夹内,使用文本编辑器(如记事本)创建一个新的文件,并将其命名为 config 
    3. 在 config 文件中,按照以下格式输入您的 SSH 配置信息:
    
  • 基本配置规则
    Host my-server
    	HostName example.com
    	User your_username
    	Port 22
    
  • 配置说明
    • Host 后面的 my-server 是您为这个连接起的自定义名称,可以根据您的喜好设定。
    • HostName 是服务器的实际域名或 IP 地址。
    • User 是您用于登录服务器的用户名。
    • PortSSH 服务运行的端口,默认是 22,如果服务器使用了非默认端口,请在此处修改。
    • 包含密钥配置的示例:
  • ssh 远程连接
    # 未配置前ssh连接方式
    ssh bd@192.168.56.101
    -- bd@192.168.56.101's password:
    -- [root@iZ8vbg7l6lz2nmeq0vsik0Z ~]#
    
    # 配置后ssh连接方式
    ssh my-server
    -- bd@192.168.56.101's password:
    -- [root@iZ8vbg7l6lz2nmeq0vsik0Z ~]#
    

二、使用密钥对进行认证连接

  • 配置步骤(在基本连接方式基础上)
    • 1- 在本地计算机上生成 SSH 密钥对。如果使用的是 LinuxmacOS 系统(Win终端PowerShell 相同),可以在终端中运行以下命令

      ssh-keygen -t rsa
      
    • 2 - 在服务器中,创建 .ssh 目录(如果不存在)

    • 3 - 打开本地生成的密钥对中的公钥文件(通常是 id_rsa.pub),将其内容复制到服务器上的 authorized_keys 文件中。如果服务器上没有这个文件,可以创建它

      # 可以使用scp指令拷贝公钥文件到服务器在进行复制粘贴
      scp .\id_rsa.pub 服务器用户名@服务器IP:拷贝的文件存放路径
      
      # 粘贴公钥文件字符串到authorized_keys
      vim ~/.ssh/authorized_keys
      
    • 4 - 修改 SSH 配置文件 /etc/ssh/sshd_config

      # 启用公钥认证
      PubkeyAuthentication yes
      
      # 指定公钥文件路径
      AuthorizedKeysFile .ssh/authorized_keys
      
    • 5 - 重启 SSH 服务以使配置生效

      # centos 重启ssh服务
      sudo systemctl restart sshd
      # ubuntu 重启ssh服务
      sudo systemctl restart ssh
      # 或者
      sudo service ssh restart
      
  • ssh 远程连接
    ssh my-server
    -- [root@iZ8vbg7l6lz2nmeq0vsik0Z ~]#
    

基于Linux操作系统环境编译安装软件

  • 下载源码包
    # 找到 源码下载网址 或 直接通过浏览器等软件下载源码
    curl -o nginx.tar.gz http://nginx.org/download/nginx-1.20.1.tar.gz
    
  • 解压并进入加压后的文件夹
    # 解压
    tar -zxvf nginx.tar.gz
    # 进入文件夹
    cd nginx-1.20.1
    
  • 编译参数
    # 编译参数,生成 "Makefile" 说明编译参数成功(有些库已经生成好了Makefile)
    ./configure --prefix=/usr/local/nginx --without-pcre --without-http_rewrite_module --without-http_gzip_module
    
    # 指令参数说明:(这三个功能需要依赖包,我们先禁用)
    --prefix=/usr/local/nginx:指定软件安装的目录为 /usr/local/nginx 。这意味着在后续的安装过程中,相关的文件和目录将被放置在这个指定的位置。
    --without-pcre:表示在构建过程中不包含 PCRE(Perl Compatible Regular Expressions,兼容 Perl 的正则表达式库)模块。
    --without-http_rewrite_module:表示不启用 http_rewrite_module 模块,该模块通常用于 URL 重写。
    --without-http_gzip_module:表示不启用 http_gzip_module 模块,这个模块一般用于对 HTTP 响应内容进行 Gzip 压缩以减少传输的数据量。
    
  • 编译与安装
    # 编译(需要在Makefile所在文件夹)
    sudo make
    # 安装
    sudo make install
    
  • 运行测试
    # 编译安装的程序指令都放在 /usr/local 路径下
    # 启动nginx 
    /usr/local/nginx/sbin/nginx
    
    # 关闭防火墙
    # centos系统关闭防火墙
    sudo systemctl stop firewalld
    # ubuntu系统关闭防火墙
    sudo ufw disable
    # 浏览器访问测试
    

https://192.168.56.101






## `Nginx` 安装与启动

#### 一、`CentOS` 系统安装 `Nginx`

- ##### 查看操作系统发行版本

```bash
cat /etc/os-release
  • 安装 yum 工具
    sudo dnf install yum
    
  • 更新系统软件包
    sudo yum update
    
  • 安装EPEL存储库
    # EPEL存储库作用:1.提供更多软件包; 2.保持软件更新; 3.满足特定需求
    sudo yum install epel-release
    
  • 安装Nginx
    # 清理 yum 缓存
    sudo yum clean all
    # 安装Nginx 
    # 如果安装失败,可以使用源码编译安装(参考:《Nginx项目部署》)
    sudo yum install nginx
    
  • 启动Nginx服务
    # 启动Nginx服务
    sudo systemctl start nginx
    # 设置Nginx服务开机自启
    sudo systemctl enable nginx
    
  • 关闭防火墙
    # 关闭防火墙
    sudo systemctl stop firewalld
    # 关闭防火墙开机自启
    sudo systemctl disable firewalld
    
  • 查看Nginx服务是否启动
    # 如果一切正常,输出应该是“Active: active (running)”或者类似的信息。
    sudo systemctl status nginx
    

二、Ubuntu 系统安装 Nginx

  • 更新系统软件包
    sudo apt update
    
  • 安装Nginx
    # 清理 apt 缓存
    sudo apt clean
    # 清理无用的依赖项和其他不再需要的缓存数据 (只会删除那些无法再下载的软件包缓存)
    sudo apt autoclean
    # 安装Nginx
    sudo apt install nginx
    
  • 启动Nginx服务
    # 启动Nginx服务
    sudo systemctl start nginx
    # 设置Nginx服务开机自启
    sudo systemctl enable nginx
    
  • 关闭防火墙
    # 关闭防火墙
    sudo ufw disable
    # 关闭防火墙开机自启
    sudo systemctl disable ufw.service
    
  • 查看Nginx服务是否启动
    # 如果一切正常,输出应该是“Active: active (running)”或者类似的信息。
    sudo systemctl status nginx
    
posted @ 2024-08-06 19:09  CSMrDong  阅读(4)  评论(0编辑  收藏  举报