为 DevOps 战士准备的 Linux 命令
这篇文章将帮助理解 DevOps 工程师所需的大部分重要且经常使用的 Linux 命令。
要执行这些命令,你可以使用任何 Linux 机器、虚拟机或在线 Linux 终端来迅速开始使用这些命令。
系统信息命令:
hostname - 显示系统主机的名称。
hostid - 显示由操作系统分配的系统主机 ID。
date - 以 UTC 格式显示当前日期和时间。
whoami - 显示终端当前登录的用户名。
uptime - 显示自机器登录以来经过的时间。
uname - Unix 名称。
clear - 清屏。
history - 列出到目前为止执行的所有命令。
sudo - 超级用户执行。
echo $? - 显示最后一个执行的命令的退出状态(0 - 成功,1-255 - 错误/失败)。
shutdown -r now - 立即重启机器(-r 重启)。
printenv - 显示 Linux 系统的所有环境变量。
last - 显示 Linux 系统中之前的登录信息。
目录命令:
pwd - 显示当前工作目录(缩写为 Print Working Directory)。
cd - 更改目录。
cd .. - 更改到其父目录,即向上一级。
cd <dirName> - 更改到所提到的目录。
cd ~ 或 cd - 更改到当前登录用户的主目录。
cd ../.. - 将目录更改为向上两级。
cd - - 更改到上一个工作目录。
mkdir - 创建目录。
mkdir <dirName> - 创建目录。
mkdir -p <pathOftheDir> - 如果不存在,连同其父目录一起创建目录(-p parent)。
ls - 列出你所在的目录的文件和文件夹。
ls -a - 列出所有文件和文件夹以及隐藏文件(-a all)。
ls -al - 以格式化的方式列出所有文件和文件夹以及隐藏文件(-l 长列表格式)。
文件命令:
touch - 创建一个空文件或更新现有文件的时间戳。
touch <fileName> - 创建一个空文件。
touch <file1> <file2> - 创建 file1、file2 空文件。
cat - 连接并显示文件的内容。
cat <fileName> - 显示文件的内容。
cat > <fileName> - 创建一个新文件,允许交互式输入内容并将输入的内容重定向到创建的文件(> 重定向操作符)。
head <fileName> - 默认显示文件的前 10 行。
head -n 5 <fileName> - 显示文件的前 5 行(-n 数字)。
tail <fileName> - 默认显示文件的后 10 行。
tail -n 5 <fileName> - 显示文件的后 5 行(-n 数字)。
tail -F <fileName> - 实时显示文件内容,即使文件被旋转或替换(用于日志文件监控)。
less <fileName> - 用于分页方式查看大文件(如日志文件)。
rm - 删除命令。
rm <fileName> - 删除文件。
rm -r <dirName> - 递归删除目录的文件和文件夹(-r 递归)。
rm -rf <dirName> - 强制递归删除目录的文件和文件夹(-f 强制)。
cp - 复制命令。
cp <source> <destination> - 将文件和文件夹从源复制到目标。
cp -r <dir1> <dir2> - 递归复制 dir1 目录到 dir2 目录(-r 递归)。
mv - 移动或重命名命令。
mv <fileName> <newFileName> - 将文件重命名为新名称。
mv <oldFilePath> <newFilePath> - 将文件移动到新路径。
文件权限命令:
ls -l <pathOfFileName> - 显示文件的权限。
ls -ld <dirNamePath> - 显示目录的权限。
chmod <octalNumber> <fileName> - 更改文件的模式/权限。
chmod <octalNumber> -R <dirName> - 递归更改目录的模式/权限。
chown <newUser> <fileName> - 更改文件的用户所有权。
chown <newUser>:<newGroup> <fileName> - 更改文件的用户和组所有权。
chgrp <groupName> <fileName/dirName> - 更新文件/目录的组名。
getfacl <fileName/dirName> - 显示文件/目录的访问控制列表。
setfacl -m u:<userName>:rwx <fileName/dirName> - 修改文件/目录的当前 acl。
setfacl -x u:<userName>: <fileName/dirName> - 删除文件/目录的 acl 权限。
setfacl -m g:<groupName>:rwx <fileName/dirName> - 修改文件/目录的组 acl。
setfacl -x g:<groupName>: <fileName/dirName> - 删除文件/目录的组 acl 权限。
文件权限八进制数字:
读(r)— 4,写(w)— 2,执行(x)— 1
将数字相加以创建一个八进制数字,以提供文件/目录的权限。
用户管理命令:
useradd - 创建用户账户。
useradd <userName> - 创建没有主目录和邮件存储目录的用户账户。
useradd -m <userName> - 创建带有主目录和邮件存储目录的用户账户。
passwd <userName> - 为用户创建密码,并将其存储在/etc/shadow 文件中。
userdel - 删除用户。
userdel <userName> - 从系统中删除用户。
userdel -r <userName> - 从系统中连同主目录和邮件存储目录一起删除用户(-r 删除)。
/etc/passwd - 存储用户账户的信息。
cat /etc/passwd - 显示该机器上的所有用户的完整列表。
/etc/shadow - 以加密格式存储用户的密码。
cat /etc/shadow - 显示该机器上所有用户密码的完整列表。
su - 替代用户。
su <userName> - 切换到所提及的用户。
exit - 从该用户注销。
usermod - 修改用户。
usermod -aG <groupName> <userName> - 将用户添加到另一个组(-aG 将用户追加到组中,不从其他组中删除)。
chsh - 更改 shell。
chsh -s /bin/bash <user> - 为用户更改 shell 为 bash。
chsh -s /bin/sh <user> - 为用户更改 shell 为 sh。
组管理命令:
groupadd <groupName> - 创建组。
groupdel <groupName> - 删除组。
/etc/group - 存储组的信息。
cat /etc/group - 显示该机器上的所有组的完整列表。
gpasswd <groupName> - 为组创建密码。
gpasswd -a <userName> <groupName> - 将用户添加到组。
gpasswd -d <userName> <groupName> - 从组中删除用户。
gpasswd -M <userName1>,<userName2>,<userName3> <groupName> - 将多个用户添加到组并删除该组的现有用户。
搜索命令:
locate - 根据名称搜索文件/目录。
sudo updatedb - 更新数据库以确保结果是最新的。
locate <fileName/dirName> - 定位文件/目录并显示路径。
GREP 命令 — 全局正则表达式打印
grep <textToSearch> <fileName> - 用于在文件中查找文本模式。
grep -i <textToSearch> <fileName> - 忽略大小写在文件中查找文本模式(-i 忽略大小写)。
grep -v <textToSearch> <fileName> - 用于查找不匹配文本模式的行(-v 反向匹配)。
grep -l <textToSearch> <fileNames> - 用于显示匹配字符串的文件名。
查找命令:
find . -name <fileName> - 在当前目录中查找提到的文件(.(句点)表示当前目录)。
find <dirName> -name <fileName> - 在目录中查找提到的文件。
find <dirName> -perm 754 - 在目录中查找具有 754 权限的文件。
硬件信息命令:
free -h - 显示系统内存信息( -h 人类可读格式)。
df -h - 显示已挂载文件系统的磁盘空间使用情况。
du - 磁盘使用情况。
du -h - 显示磁盘使用信息(-h 人类可读格式)。
du -sh - 以人类可读格式显示目录的总大小,而不是单个文件的大小(-s 总结)。
du -sh <fileName/dirName> - 显示文件/目录的总大小。
网络命令:
ping <hostName> - 测试远程主机的可达性和响应性。
dig <domainName> - 显示域的 DNS 信息。
wget <url>- 用于从互联网上检索/下载文件。
curl - 客户端 URL。
curl <url> - 用于从互联网上检索/下载文件。
ifconfig - 显示可用的网络接口。
ip addr - 显示和操作网络接口信息。
curl ifconfig.me - 显示机器的公共 ip 地址。
netstat -antp- 显示所有 tcp 打开的端口(-a 所有, t-tcp, n-活动, p 协议)。
traceroute <url> - 使用数据包从源到目标主机追踪路由。
进程信息命令:
ps - 进程状态。
ps - 显示当前正在运行的进程。
ps -ef - 显示系统的所有进程。
top - 显示系统正在运行进程的实时、动态视图。
kill <pid> - 优雅地终止进程 pid。
pgrep <processName> - 根据名称/其他标准显示进程的进程 id。
bg - 背景,将进程发送到后台并继续执行,不中断。
fg - 前台,将进程带到前台并使其成为活动进程。
nohup - 不挂起,在终端关闭或用户注销后在后台运行命令/脚本。
归档文件命令:
tar - 磁带存档。
tar -cvf <fileName> <directory> - 为所提及的目录创建 tar 文件(-c 创建,-v 详细,f - 输出文件名)。
tar -xvf <sourceTarFileName> -C <destinationDir> - 将提取的文件放入目标目录(-x 提取, v 详细, -f 源 tar 文件名)。
Ubuntu 包相关命令:
apt - Debian-based Linux 发行版的包管理器,例如:Ubuntu。
apt - 更新版本的包管理器,带有彩色输出、进度条和附加功能。
apt-get - 较旧版本和基本的包管理器。
apt update - 更新包列表。
apt list --installed - 列出所有已安装的包。
apt list --installed <packageName> - 如果安装了,则显示包名。
apt show <packageName> - 显示提及的包的信息。
apt search <packageName> - 搜索并显示包列表。
apt install <packageName> - 安装所需的包。
apt remove <packageName> - 删除所需的包。
apt purge <packageName> - 删除所需的包及其配置文件。
杂项命令:
echo "sample text" | grep text - 使用管道(|)符号将第一个命令的输出作为第二个命令的输入。
ls -l | tee file.txt - 将列表重定向到 file.txt,并同时在终端中显示。
echo "sample text" > <fileName> - 通过覆盖现有内容将内容写入所提及的文件(> 重定向操作符)。
echo "new sample text" >> <fileName> - 将内容附加到所提及的文件,而不覆盖现有内容(>> 重定向操作)。
stat <fileName/dirName> - 显示文件或目录的详细信息。
cron - 用于管理预定任务的系统守护进程。
tree - 一个特定目录的文件和目录的树表示。
这个博客页面涵盖了 DevOps Warriors 主要使用的 linux 命令,并且是一个不断增长的文档。
文章来源:
https://medium.com/@mj.vishweshwaran/vish-linux-commands-for-devops-warriors-3866e4f4e56
评论