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
是您用于登录服务器的用户名。Port
是SSH
服务运行的端口,默认是 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
密钥对。如果使用的是Linux
或macOS
系统(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 # 浏览器访问测试
## `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