Linux下常用命令大合集

logo(无背景).png

Linux是什么

Linux是一种免费、开源的操作系统,由林纳斯·托瓦兹在1991年创建。Linux基于Unix操作系统,采用了分层的设计思想,支持多用户、多任务、多线程的操作,并具有良好的稳定性和安全性。Linux具有高度的可定制性,用户可以根据自己的需要自由地配置和修改系统。Linux广泛用于服务器、桌面电脑、移动设备等领域。

Ubuntu、Debian、CentOS又是什么?

Linux是一种开放源代码的操作系统内核,而Ubuntu、Debian、CentOS等是基于Linux内核开发的操作系统。它们都使用了Linux内核,并且拥有自己的软件包管理工具、文件系统、命令行界面等等。这些操作系统在细节和特性上可能有所不同,但都遵循Linux内核的设计和实现。

实战

本文带入实际的文件与目录,来分享常用的Linux命令,目的方便大家学习和理解。命令可根据自己实际情况修改使用。希望对大家有所帮助。


1.pngubuntu/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

2.pngAlpine 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:** 使用文本编辑器(如 vinano)打开该文件。

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 系统启用了防火墙 (例如 iptablesnftables),你需要允许 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


3.pngCentOS包管理命令

更新系统所有

yum update

安装或更新指定软件如:curl wget

yum install -y curl wget

删除指定软件如:curl wget

yum remove -y curl wget

4.png文件管理相关

查看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