
Linux下常用命令大合集
Linux下常用命令大合集
Linux是什么
Linux是一种免费、开源的操作系统,由林纳斯·托瓦兹在1991年创建。Linux基于Unix操作系统,采用了分层的设计思想,支持多用户、多任务、多线程的操作,并具有良好的稳定性和安全性。Linux具有高度的可定制性,用户可以根据自己的需要自由地配置和修改系统。Linux广泛用于服务器、桌面电脑、移动设备等领域。
Ubuntu、Debian、CentOS又是什么?
Linux是一种开放源代码的操作系统内核,而Ubuntu、Debian、CentOS等是基于Linux内核开发的操作系统。它们都使用了Linux内核,并且拥有自己的软件包管理工具、文件系统、命令行界面等等。这些操作系统在细节和特性上可能有所不同,但都遵循Linux内核的设计和实现。
实战
本文带入实际的文件与目录,来分享常用的Linux命令,目的方便大家学习和理解。命令可根据自己实际情况修改使用。希望对大家有所帮助。
ubuntu/debian包管理命令
更新系统所有
apt update
更新现有软件
apt upgrade -y
更新软件依赖关系更新现有软件删除依赖以外的软件
apt full-upgrade -y
安装或更新指定软件如:curl wget
apt install -y curl wget
删除指定软件如:curl wget
apt remove -y curl wget
apt purge -y curl wget
Alpine Linux包管理命令
更新系统所有
apk update
更新现有软件
apk upgrade
部分情况需要安装ssh:
在 Alpine Linux 上安装和配置 SSH 服务器(OpenSSH)的步骤如下:
1. 安装 OpenSSH:
apk add openssh
2. 配置 SSH 服务器 (可选,但强烈建议):
生成 SSH 密钥对 (如果还没有):** 如果你的用户还没有 SSH 密钥对,生成一个。 强烈建议使用密码短语保护私钥。
ssh-keygen -t rsa -b 4096
按照提示操作,可以选择密钥的保存位置(默认是 ~/.ssh/id_rsa
)和设置密码短语。
配置 SSH 服务器配置文件 /etc/ssh/sshd_config
:** 使用文本编辑器(如 vi
或 nano
)打开该文件。
vi /etc/ssh/sshd_config
以下是一些常见的配置选项,可以根据你的需求进行修改:
* *Port
**: 更改 SSH 端口。 默认端口是 22。 如果更改,选择一个大于 1024 的端口,以避免与已知服务冲突。 例如: Port 2222
* *ListenAddress
**: 指定 SSH 服务器监听的 IP 地址。 默认是监听所有地址 (0.0.0.0 或 ::)。 如果只想监听特定的 IP 地址,可以指定它。 例如: ListenAddress 192.168.1.100
* *PermitRootLogin
**: 控制是否允许 root 用户直接通过 SSH 登录。 **强烈建议禁用 root 用户直接登录**,以提高安全性。 设置为 no
: PermitRootLogin no
* *PasswordAuthentication
**: 控制是否允许使用密码进行身份验证。 **强烈建议禁用密码身份验证,并使用 SSH 密钥对身份验证**,以提高安全性。 设置为 no
: PasswordAuthentication no
* *PubkeyAuthentication
**: 启用公钥身份验证。 默认应该启用,但确认它是 yes
: PubkeyAuthentication yes
* *AuthorizedKeysFile
**: 指定存储用户公钥的文件。 默认是 ~/.ssh/authorized_keys
: AuthorizedKeysFile .ssh/authorized_keys
保存并关闭文件。 vi
的保存退出命令是 :wq
。
3. 启动 SSH 服务并设置为开机启动:
rc-service sshd start
rc-update add sshd boot
4. 配置防火墙 (如果需要):
如果你的 Alpine 系统启用了防火墙 (例如 iptables
或 nftables
),你需要允许 SSH 流量通过。 以下是一些示例,具体命令取决于你使用的防火墙:
* **iptables:**
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许默认端口 22
# 如果你修改了端口,请替换 22 为你的端口号
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT # 允许端口 2222
确保保存 iptables 规则,以便重启后仍然有效。 保存方法取决于你的 iptables 配置。 常见的命令是 iptables-save > /etc/iptables/rules.v4
* **nftables:**
nft add rule inet filter input tcp dport 22 accept # 允许默认端口 22
# 如果你修改了端口,请替换 22 为你的端口号
nft add rule inet filter input tcp dport 2222 accept # 允许端口 2222
确保保存 nftables 配置。 常见的命令是 nft list ruleset > /etc/nftables.conf
5. 将公钥复制到服务器 (如果禁用了密码身份验证):
如果你禁用了密码身份验证,你需要将你的公钥复制到服务器上的 ~/.ssh/authorized_keys
文件中。 可以使用 ssh-copy-id
命令,或者手动复制。
* **使用 ssh-copy-id
(推荐):**
ssh-copy-id user@your_server_ip
将 user
替换为你在服务器上的用户名,将 your_server_ip
替换为服务器的 IP 地址或域名。 这个命令会提示你输入密码 (如果密码身份验证仍然启用,或者你正在使用密码短语保护你的私钥)。
* **手动复制:**
1. 在本地计算机上,显示你的公钥内容:
cat ~/.ssh/id_rsa.pub
2. 复制输出的内容。
3. 在服务器上,创建 ~/.ssh
目录 (如果不存在):
mkdir -p ~/.ssh
chmod 700 ~/.ssh
4. 在服务器上,创建或编辑 ~/.ssh/authorized_keys
文件
vi ~/.ssh/authorized_keys
5. 将复制的公钥内容粘贴到 authorized_keys
文件中。 确保每行只有一个公钥。
6. 设置 authorized_keys
文件的权限:
chmod 600 ~/.ssh/authorized_keys
6. 测试 SSH 连接:
从你的本地计算机,尝试使用 SSH 连接到服务器:
ssh user@your_server_ip
将 user
替换为你在服务器上的用户名,将 your_server_ip
替换为服务器的 IP 地址或域名。
* 如果一切正常,你应该能够成功登录到服务器。
* 如果禁用了密码身份验证,并且你正确地配置了公钥身份验证,你应该不需要输入密码。
**重要注意事项和安全建议:**
* **始终保持你的系统和 SSH 软件更新。**
* **禁用 root 用户直接登录。**
* **禁用密码身份验证,并使用 SSH 密钥对身份验证。**
* **使用强密码短语保护你的私钥。**
* **定期审查你的 SSH 配置。**
* **考虑使用防火墙来限制对 SSH 端口的访问。**
* **监控 SSH 日志以查找可疑活动。** SSH 日志通常位于 /var/log/auth.log
或 /var/log/secure
。
* **使用 fail2ban 或类似的工具来自动阻止恶意 IP 地址。**
按照这些步骤和建议,你就可以在 Alpine Linux 上安全地安装和配置 SSH 服务器。 请根据你的具体需求进行调整。
安装或更新指定软件如:curl docker
apk add curl docker
删除指定软件如:curl wget
apk del wget
CentOS包管理命令
更新系统所有
yum update
安装或更新指定软件如:curl wget
yum install -y curl wget
删除指定软件如:curl wget
yum remove -y curl wget
文件管理相关
查看home目录下内容
ls /home/
进入home目录
cd /home
创建web目录
mkdir web
创建空nginx.conf文件
touch nginx.conf
编辑docker-compose.yml文件
nano docker-compose.yml
压缩/home/web目录,压缩包存放到当前目录
tar -czvf web.tar.gz /home/web
当前目录解压web.tar.gz文件
tar -xzvf web.tar.gz
删除home/web目录下所有内容
rm -r /home/web/*
删除/home/web.tar.gz文件
rm /home/web.tar.gz
下载maccms10.zip文件到当前目录
wget https://github.com/magicblack/maccms_down/raw/master/maccms10.zip
移动home/web目录下所有文件到root目录
mv /home/web/* /root/
拷贝home/web目录到root
cp -r /home/web /root
拷贝home/web目录下的test.txt到root
cp /home/web/test.txt /root
赋予/var/www/html最高读写权限
chmod -R 777 /var/www/html
将home目录下的test.txt改名成root.txt
mv /home/test.txt /home/root.txt
将root.txt中所有的test替换成root
sed -i 's/test/root/g' root.txt
将root.txt文件所有内容删除添加一行文本root=12345保存退出
cat > /home/root.txt << EOF
root=12345
EOF
在root.txt文本中末尾添加一行end=yyds
echo "end=yyds" >> root.txt