介绍
通过这本全面的 Linux 命令指南,充分发挥 Linux 系统的潜力。无论您是经验丰富的管理员还是新手,掌握这些命令对于高效的服务器管理、脚本编写和故障排除都至关重要。在本教程中,您将学习文件管理、进程控制、用户访问、网络配置和系统调试中最常用且功能强大的命令。.
你将学习超过 50 个必备的 Linux 命令,让你成为强大的 Linux 用户。从入门到精通,这些命令将成为你完成任何任务的得力工具。.
先决条件
我们将在 Ubuntu 服务器上运行这些命令,但您也可以在任何现代 Linux 发行版上按照本教程操作。您可以按照我们关于首次在 Ubuntu 上设置服务器的指南来设置 Ubuntu 服务器以用于本教程。.
- ls – Linux 中最常用的目录列表命令。.
- pwd – Linux 中用于打印工作目录的命令。.
- cd – Linux 中用于导航目录的命令。.
- mkdir – Linux 中用于创建目录的命令。.
- mv – 在 Linux 中移动或重命名文件。.
- cp – 类似于 mv,但用于在 Linux 中复制文件。.
- rm – 删除文件或目录。.
- touch – 创建空白文件。.
- ln – 创建指向其他文件的符号链接(快捷方式)。.
- 清除 – 清除终端屏幕。.
- cat – 在终端中显示文件的内容。.
- echo – 打印命令后面的所有文本。.
- less – Linux 命令,用于在终端中显示分页输出。.
- man – 访问所有 Linux 命令的手册页。.
- uname – Linux 命令,用于获取操作系统的基本信息。.
- whoami – 获取有效用户名。.
- tar – Linux 系统中用于提取和压缩文件的命令。.
- grep – 在输出中搜索字符串。.
- head – 返回从顶部开始的指定行数。.
- tail – 返回从底部开始的指定行数。.
- diff – 查找两个文件之间的差异。.
- cmp – 允许您检查两个文件是否相同。.
- comm – 结合了 diff 和 cmp 函数。.
- sort – Linux 命令,用于在输出时对文件内容进行排序。.
- export – 在 Linux 中导出环境变量。.
- zip – Linux 中的压缩文件。.
- unzip – 在 Linux 中解压缩文件。.
- ssh – Linux 中的安全外壳命令。.
- service – Linux 命令,用于启动和停止服务。.
- ps – 显示活动进程。.
- kill 和 killall – 根据进程 ID 或名称终止活动进程。.
- df – 显示磁盘文件系统信息。.
- mount – 在 Linux 中挂载文件系统。.
- chmod – 更改文件权限的命令。.
- chown – 用于授予文件或文件夹所有权的命令。.
- ifconfig – 显示网络接口和 IP 地址。.
- traceroute – 追踪到达目的地的所有网络路径。.
- wget – 直接从互联网下载文件。.
- ufw – 防火墙命令。.
- iptables – 其他防火墙工具与之通信的基础防火墙。.
- apt、pacman、yum、rpm——取决于发行版的软件包管理器。.
- sudo – Linux 中用于增加权限的命令。.
- cal – 查看日历命令行。.
- 别名 – 为常用命令创建自定义快捷方式。.
- dd – 主要用于创建可启动的 USB 闪存驱动器。.
- whereis – 查找命令的二进制文件、源代码和手册页。.
- whatis – 查找命令的用途。.
- 顶部 – 实时查看活动进程及其系统使用情况。.
- useradd 和 usermod – 添加新用户或修改现有用户数据。.
- passwd – 创建或更新现有用户的密码。.
文件和目录命令
| 命令 | 描述 | 例子 |
|---|---|---|
| ls | 列出目录内容。. | ls |
| 光盘 | 更改目录。. | cd /路径/到/目录 |
| 密码 | 显示当前目录。. | 密码 |
| 创建目录 | 创建一个新目录。. | 创建新目录 |
| 删除目录 | 删除空目录。. | 删除空目录 |
| rm | 删除文件或目录。. | 删除文件.txt |
| 触碰 | 创建一个空文件。. | 触摸新文件.txt |
| c.p. | 复制文件或目录。. | cp file.txt /path/to/destination |
| MV | 移动或重命名文件。. | mv file.txt /path/to/new_location |
| 猫 | 显示文件内容。. | cat file.txt |
| nano / vim | 在终端中编辑文件。. | nano file.txt |
| 寻找 | 在目录层级结构中搜索文件。. | 查找 . -name "file.txt"" |
| grep | 使用模式搜索文本。. | grep "pattern" file.txt |
| 焦油 | 文件归档和压缩。. | tar -cvf archive.tar file1.txt file2.txt |
| df | 显示文件系统的磁盘使用情况。. | df |
| 杜 | 显示目录/文件大小。. | du -sh /path/to/directory |
| chmod | 更改文件权限。. | chmod 755 file.txt |
| chown | 更改文件所有者。. | chown user:group file.txt |
| 山 | 挂载文件系统。. | 挂载 /dev/sdb1 /mnt |
| 卸载 | 卸载文件系统。. | 卸载 /mnt |
网络命令
| 命令 | 描述 | 示例用法 |
|---|---|---|
| ping | 测试与主机的连接。. | ping google.com |
| ifconfig /ip a | 显示网络接口。. | ifconfig 或者 IP地址 |
| netstat /ss | 显示网络连接。. | netstat -tuln 或者 ss-tuln |
| wget | 通过HTTP/FTP下载文件。. | wget http://example.com/file.zip |
| 卷曲 | 使用URL语法传输数据。. | curl -O http://example.com/file.zip |
| nc(Netcat) | 网络调试和数据传输。. | nc-zv 192.168.1.1 80 |
| tcpdump | 捕获并分析网络数据包。. | tcpdump -i eth0 |
| iptables | 配置防火墙规则。. | iptables -A INPUT -p tcp --dport 22 -j ACCEPT |
| 路由追踪 | 追踪数据包到达网络主机的路径。. | traceroute example.com |
| nslookup | 查询 DNS 以获取域名或 IP 地址映射。. | nslookup example.com |
| SSH | 安全地连接到远程主机。. | ssh [email protected] |
过程和系统监控命令
| 命令 | 描述 | 示例命令 |
|---|---|---|
| 附言 | 显示正在运行的进程。. | PS辅助 |
| 顶部 | 动态进程查看器。. | 顶部 |
| htop | 顶部的增强版。. | htop |
| 杀 | 向进程发送信号。. | 杀 |
| 杀 | 按名称终止进程。. | 杀 |
| 正常运行时间 | 系统正常运行时间和负载。. | 正常运行时间 |
| 谁我 | 当前登录用户。. | 谁我 |
| 环境 | 显示环境变量。. | 环境 |
| 斯特拉克 | 跟踪进程的系统调用。. | strace -p |
| 系统控制 | 管理 systemd 服务。. | systemctl 状态 |
| journalctl | 查看系统日志。. | journalctl -xe |
| 自由的 | 显示内存使用情况。. | 释放 -h |
| vmstat | 报告虚拟内存统计信息。. | vmstat 1 |
| iostat | 报告 CPU 和 I/O 统计信息。. | iostat |
| lsof | 按进程列出打开的文件。. | lsof |
| dmesg | 打印内核环形缓冲区消息。. | dmesg |
用户和权限管理命令
| 命令 | 描述 | 示例命令 |
|---|---|---|
| 密码 | 更改用户密码。. | 密码 |
| 添加用户 / 用户添加 | 添加新用户。. | 添加用户 或者 用户添加 |
| 删除用户 / 用户删除 | 删除用户。. | deluser 或者 用户删除 |
| 用户模式 | 修改用户帐户。. | 用户模式 -aG |
| 团体 | 显示团体成员信息。. | 团体 |
| sudo | 以root权限执行命令。. | sudo |
| 改变 | 更改用户密码过期信息。. | 更改 -l |
| ID | 显示用户身份信息。. | ID |
| 新组 | 登录到新群组。. | 新组 |
文件传输和同步命令
| 命令 | 描述 | 示例命令 |
|---|---|---|
| SCP-1811 | 通过 SSH 安全地复制文件。. | scp user@remote:/path/to/file /local/destination |
| rsync | 高效同步文件和目录。. | rsync -avz /local/directory/ user@remote:/path/to/destination |
| FTP | 使用文件传输协议传输文件。. | ftp ftp.example.com |
| sftp | 使用SSH文件传输协议安全地传输文件。. | sftp 用户@远程:/路径/到/文件 |
| wget | 从网络下载文件。. | wget http://example.com/file.zip |
| 卷曲 | 从服务器传输数据或向服务器传输数据。. | curl -O http://example.com/file.zip |
文本处理命令
| 命令 | 描述 | 示例命令 |
|---|---|---|
| awk | 图案扫描和处理。. | awk '{print $1}' file.txt |
| sed | 用于过滤/修改文本的流编辑器。. | 使用 sed 命令对 file.txt 文件执行 's/old/new/g' 命令。 |
| 切 | 从文本行中删除部分内容。. | cut -d':' -f1 /etc/passwd |
| 种类 | 对文本行进行排序。. | 对文件.txt进行排序 |
| grep | 在文本中寻找规律。. | grep 'pattern' file.txt |
| 洗手间 | 统计字数、行数和字符数。. | wc -l file.txt |
| 粘贴 | 合并文件行。. | 粘贴文件1.txt 文件2.txt |
| 加入 | 将两个文件的行按公共字段连接起来。. | 将文件1.txt和文件2.txt合并在一起 |
| 头 | 输出文件的第一部分。. | head -n 10 file.txt |
| 尾巴 | 输出文件的最后一部分。. | tail -n 10 file.txt |
常用的 Shell 命令和快捷键
| 命令 | 描述 | 示例命令 |
|---|---|---|
| 别名 | 创建命令快捷方式。. | 别名 ll='ls -la'' |
| 无别名 | 删除别名。. | unalias ll |
| 历史 | 显示之前输入的命令。. | 历史 |
| 清除 | 清除终端屏幕。. | 清除 |
| 重启 | 重启系统。. | 重启 |
| 关闭 | 关闭系统电源。. | 立即关闭 |
| 日期 | 显示或设置系统日期和时间。. | 日期 |
| 回声 | 显示一行文本。. | 回声"你好,世界!" |
| 睡觉 | 延迟指定时间。. | 睡眠 5 |
| 时间 | 测量命令执行时间。. | 时间 ls |
| 手表 | 定期执行程序,并将输出结果全屏显示。. | watch -n 5 df -h |
现在让我们更深入地了解一下这些命令。我们已经针对每个命令撰写了多篇文章。为了方便您查阅,我们会添加所有现有文章的链接,并在涵盖新主题时更新本文。.
Linux 中的 ls 命令
ls 命令用于列出当前工作目录中的文件和目录。它是最常用的 Linux 命令之一,你应该熟悉它。.
root@ubuntu:~# ln -s <source path> <link name>
همانطور که در تصویر بالا مشاهده میکنید، استفاده از خود دستور بدون هیچ آرگومانی، خروجیای با تمام فایلها و دایرکتوریهای موجود در آن دایرکتوری به ما میدهد. این دستور از نظر نمایش دادهها در خروجی، انعطافپذیری زیادی ارائه میدهد.
دستور pwd در لینوکس
دستور pwd به شما امکان میدهد دایرکتوری کاری فعلی را در ترمینال خود چاپ کنید. این یک دستور بسیار ابتدایی است و هدف خود را به خوبی برآورده میکند.

خب، در هر صورت، ترمینال شما معمولاً باید دایرکتوری کامل را داشته باشد. اما در صورتی که اینطور نباشد، این میتواند یک دستور سریع برای دیدن دایرکتوری باشد که در آن هستید. کاربرد دیگر این دستور هنگام ایجاد اسکریپتها است که این دستور میتواند به ما امکان دهد دایرکتوری که اسکریپت در آن ذخیره شده است را پیدا کنیم.
دستور cd در لینوکس
هنگام کار با ترمینال، جابجایی در دایرکتوریها تقریباً یک ضرورت است. دستور cd یکی از دستورات مهم لینوکس است که باید بدانید و به شما در پیمایش در دایرکتوریها کمک میکند. کافیست cd و به دنبال آن directory را تایپ کنید، همانطور که در زیر نشان داده شده است.
root@ubuntu:~# cd <directory path>
همانطور که در دستور بالا میبینید، من به سادگی cd /etc/ را تایپ کردم تا به دایرکتوری /etc بروم. ما از دستور pwd برای چاپ دایرکتوری کاری فعلی استفاده کردیم.
دستور mkdir در لینوکس
دستور mkdir به شما امکان میدهد دایرکتوریها را از داخل ترمینال ایجاد کنید.
root@ubuntu:~# mkdir <folder name>
همانطور که در تصویر بالا مشاهده میکنید، ما دایرکتوری JournalDev را تنها با همین دستور ساده ایجاد کردیم.
دستورات cp و mv
دستورات cp و mv معادل دستورات copy-paste و cut-paste در ویندوز هستند. اما از آنجایی که لینوکس واقعاً دستوری برای تغییر نام فایلها ندارد، ما از دستور mv نیز برای تغییر نام فایلها و پوشهها استفاده میکنیم.
root@ubuntu:~# cp <source> <destination>
در دستور بالا، ما یک کپی از فایل با نام Sample ایجاد کردیم. بیایید ببینیم اگر از دستور mv به همین روش استفاده کنیم، چه اتفاقی میافتد.
root@ubuntu:~# mv <source> <destination
در مورد بالا، از آنجایی که ما فایل را در همان دایرکتوری منتقل میکردیم، این کار به عنوان تغییر نام عمل کرد. اکنون نام فایل تغییر کرده است.
دستور rm در لینوکس
در بخش قبلی، فایل Sample-Copy را حذف کردیم. دستور rm برای حذف فایلها و پوشهها استفاده میشود و یکی از دستورات مهم لینوکس است که باید آن را بدانید.
root@ubuntu:~# rm <file name>
برای حذف یک دایرکتوری، باید آرگومان -r را به آن اضافه کنید. بدون آرگومان -r، دستور rm دایرکتوریها را حذف نمیکند.
علامت -r در دستور rm در لینوکس مخفف کلمه “recursive” است. وقتی با دستور rm استفاده شود، نه تنها فایل مشخص شده، بلکه تمام زیرشاخههای آن و فایلهای درون آن زیرشاخهها را نیز به صورت بازگشتی حذف میکند.
به عنوان مثال، برای حذف دایرکتوری mydir و محتویات آن با تایید، میتوانید از این دستور استفاده کنید:
root@ubuntu:~# rm -ri mydirاین کار قبل از حذف هر فایل و دایرکتوری در دایرکتوری mydir از شما تأیید میخواهد.
دستور touch در لینوکس
دستور touch در لینوکس یک فایل خالی ایجاد میکند یا مهر زمانی یک فایل موجود را بهروزرسانی میکند.
root@ubuntu:~# touch <file name>
دستور ln در لینوکس
برای ایجاد لینک به فایل دیگر، از دستور ln استفاده میکنیم. این یکی از مهمترین دستورات لینوکس است که اگر قصد دارید به عنوان مدیر لینوکس کار کنید، باید بدانید.
root@ubuntu:~# ln -s <source path> <link name>
پرچم -s یک پیوند نمادین (که به عنوان پیوند نمادین یا پیوند نرم نیز شناخته میشود) به یک فایل یا دایرکتوری ایجاد میکند. پیوند نمادین نوع خاصی از فایل است که به عنوان میانبر یا اشارهگر به فایل یا دایرکتوری دیگر عمل میکند.
به طور پیشفرض، دستور ln به جای پیوندهای نمادین یا نرم، پیوندهای سخت ایجاد میکند.
یک پیوند سخت، یک کپی آینهای از یک فایل اصلی با همان محتوا است. مانند پیوندهای نمادین، اگر محتوای فایل اصلی را ویرایش کنید، آن تغییرات در پیوند سخت منعکس میشوند. با این حال، اگر فایل اصلی را حذف کنید، پیوند سخت همچنان کار خواهد کرد و میتوانید آن را مانند یک کپی معمولی از فایل اصلی مشاهده و ویرایش کنید.
دستور clear در لینوکس
دستور clear در لینوکس صفحه ترمینال را پاک میکند. این دستور تمام متن و خروجی نمایش داده شده در ترمینال را حذف میکند و یک صفحه خالی برای کار به شما میدهد.
در اینجا مثالی از نحوه استفاده از دستور clear آورده شده است:
root@ubuntu:~# clearاین کار صفحه ترمینال را پاک میکند و مکاننما را به گوشه سمت چپ بالای صفحه منتقل میکند.
همچنین میتوانید از دستور clear در ترکیب با سایر دستورات مانند این استفاده کنید:
root@ubuntu:~# ls -l; clearاین دستور فایلها و دایرکتوریهای موجود در دایرکتوری فعلی را فهرست میکند و سپس صفحه ترمینال را پاک میکند.
دستورات cat، echo و less
وقتی میخواهید محتوای یک فایل را در خروجی ترمینال چاپ کنید یا چیزی را چاپ کنید، از دستورات cat یا echo استفاده میکنیم. بیایید کاربرد اساسی آنها را بررسی کنیم.
root@ubuntu:~# cat <file name>
root@ubuntu:~# echo <Text to print on terminal>
همانطور که در مثال بالا میبینید، دستور cat، وقتی در فایل جدید ما استفاده میشود، محتویات فایل را چاپ میکند. در عین حال، وقتی از دستور echo استفاده میکنیم، به سادگی هر آنچه را که بعد از دستور میآید چاپ میکند.
دستور less زمانی استفاده میشود که خروجی چاپ شده توسط هر دستوری بزرگتر از فضای صفحه نمایش باشد و نیاز به پیمایش داشته باشد. دستور less به کاربر اجازه میدهد تا خروجی را تجزیه کند و با استفاده از کلیدهای enter یا space در آن پیمایش کند.
روش ساده برای انجام این کار استفاده از عملگر pipe (|) است.
root@ubuntu:~# cat /boot/grub/grub.cfg | lessاز پرچم -N به همراه less برای نمایش شماره خطوط استفاده کنید. این میتواند زمانی مفید باشد که نیاز به دانستن شماره خط یک متن خاص دارید.
میتوانید از این پرچمهای مفید به روش زیر استفاده کنید:
root@ubuntu:~# cat /boot/grub/grub.cfg | less -SNاستفاده از less به همراه عملگر pipe میتواند در موقعیتهای مختلفی مفید باشد. در اینجا چند مثال آورده شده است:
- مشاهده خروجی یک دستور طولانی مدت، مانند top یا htop.
- جستجوی متن خاص در خروجی یک دستور، مانند grep یا cat.
دستور man در لینوکس
دستور man یک دستور بسیار مفید لینوکس است که باید آن را بلد باشید. هنگام کار با لینوکس، بستههایی که دانلود میکنیم میتوانند قابلیتهای زیادی داشته باشند. دانستن همه آنها غیرممکن است.
دستور man در لینوکس برای نمایش صفحه راهنمای یک دستور خاص استفاده میشود. این دستور اطلاعات دقیقی در مورد دستور، از جمله نحو، گزینهها و مثالهای آن ارائه میدهد.
در اینجا مثالی از نحوه استفاده از دستور man آورده شده است:
- یک ترمینال باز کنید و دستور man ls را تایپ کنید تا صفحه راهنمای دستور ls نمایش داده شود.
root@ubuntu:~# man lsاین صفحهای را نمایش میدهد که چیزی شبیه به این است:
OutputLS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
-c with -lt: sort by, and show, ctime (time of last modification
of file status information) with -l: show ctime and sort
by name;
...دستورات uname و whoami
دستورات uname و whoami به شما امکان دسترسی به برخی اطلاعات اولیه را میدهند که هنگام کار بر روی چندین سیستم مفید هستند.
دستور uname در لینوکس اطلاعاتی در مورد هسته سیستم، از جمله نام هسته، نام میزبان، نسخه هسته، نسخه هسته و نام سختافزار دستگاه را نمایش میدهد.
دستور whoami در لینوکس نام کاربری کاربر فعلی را برمیگرداند. این نام مخفف “who am I?” است و اغلب برای تعیین هویت کاربر فعلی در اسکریپتهای شل یا ترمینال استفاده میشود.
بیایید خروجی هر دو دستور و نحوه استفاده از آنها را ببینیم.
root@ubuntu:~# uname -a
پارامتر -a به همراه دستور uname مخفف “all” است. این دستور اطلاعات کامل را چاپ میکند. اگر پارامتر اضافه نشود، تنها چیزی که به عنوان خروجی دریافت خواهید کرد “Linux” است.
- برای نمایش نام هسته از uname -s استفاده کنید.
- برای نمایش نام میزبان از uname -n استفاده کنید.
- برای نمایش نسخه کرنل از دستور uname -r استفاده کنید.
- برای نمایش نسخه کرنل از دستور uname -v استفاده کن
- برای نمایش نام سختافزار دستگاه از دستور uname -m استفاده کنید.
دستورات tar، zip و unzip
دستور tar در لینوکس برای ایجاد و استخراج فایلهای آرشیو شده استفاده میشود. ما میتوانیم چندین فایل آرشیو مختلف را با استفاده از دستور tar استخراج کنیم.
برای ایجاد یک آرشیو، از پارامتر -c و برای استخراج یک آرشیو، از پارامتر -x استفاده میکنیم. بیایید ببینیم چگونه کار میکند.
#Compress
root@ubuntu:~# tar -cvf <archive name> <files separated by space>
#Extract
root@ubuntu:~# tar -xvf <archive name>
در خط اول، ما یک فایل بایگانی به نام Compress.tar با استفاده از New-File و New-File-Link ایجاد کردیم. در دستور بعدی، آن فایلها را از بایگانی استخراج کردهایم.
بیایید در مورد دستورات zip و unzip صحبت کنیم. هر دو بسیار سرراست هستند. میتوانید از آنها بدون هیچ پارامتری استفاده کنید و همانطور که در نظر گرفته شده است، کار خواهند کرد. بیایید مثالی را در زیر ببینیم.
root@ubuntu:~# zip <archive name> <file names separated by space>
root@ubuntu:~# unzip <archive name>
از آنجایی که ما از قبل آن فایلها را در همان دایرکتوری داریم، دستور unzip قبل از رونویسی آن فایلها از ما سوال میکند.
دستور grep در لینوکس
دستور grep یک ابزار جستجوی متن قدرتمند و همهکاره در سیستمعاملهای مبتنی بر لینوکس و یونیکس است. این دستور میتواند الگوها یا رشتههای خاص را در یک یا چند فایل جستجو کند و خروجی دستورات دیگر را فیلتر کند.
دستور grep مخفف عبارت “چاپ عبارت منظم جهانی” است که نشان دهنده توانایی آن در جستجوی عبارات منظم در چندین خط و فایل است.
root@ubuntu:~# <Any command with output> | grep "<string to find>"این یک نمایش ساده از این دستور بود.
دستورات head و tail
هنگام خروجی گرفتن از فایلهای بزرگ، دستورات head و tail مفید واقع میشوند. این دستورات به ترتیب ابتدا یا انتهای یک فایل را نمایش میدهند. آنها معمولاً برای مشاهده سریع محتوای یک فایل بدون نیاز به باز کردن آن در یک ویرایشگر متن استفاده میشوند.
دستورات head و tail به طور پیشفرض 10 خط اول یک فایل را نمایش میدهند. برای نمایش تعداد متفاوتی از خطوط، میتوانید از گزینه -n و به دنبال آن تعداد خطوطی که میخواهید نمایش دهید استفاده کنید.
در اینجا مثالی از استفاده از دستورات head و tail آورده شده است:
root@ubuntu:~# head <file name>
root@ubuntu:~# tail <file name>
همانطور که میبینید، دستور head، 10 خط از بالای فایل را نشان داد.

دستور tail، ده خط پایینی فایل را نمایش داد.
از این دستورات میتوان برای مشاهده سریع محتوای یک فایل، نظارت بر بهروزرسانیهای بلادرنگ برای عیبیابی مشکلات، فیلتر کردن خروجی سایر دستورات و انجام تجزیه و تحلیل گزارشها استفاده کرد.
دستورات diff، comm و cmp
دستورات diff، comm و cmp همگی برای مقایسه فایلها در سیستمعاملهای مبتنی بر لینوکس و یونیکس استفاده میشوند. این دستورات میتوانند برای شناسایی تفاوتهای بین دو فایل، ادغام تغییرات و انجام سایر کارهای مقایسه فایلها مورد استفاده قرار گیرند.
root@ubuntu:~# diff <file 1> <file 2>
همانطور که در بالا میبینید، ما یک متن کوچک با عنوان «این خط ویرایش شده است» به فایل New-File-Edited اضافه کردهایم.
دستور cmp برای مقایسه دو فایل و نمایش اولین بایتی که بین آنها متفاوت است استفاده میشود. میتوان از آن برای شناسایی تفاوتهای بین فایلهای باینری یا بررسی خرابی در فایلها استفاده کرد.
root@ubuntu:~# cmp <file 1> <file 2>
دستور cmp فقط شماره خط را به ما میگوید که متفاوت است. متن اصلی را نشان نمیدهد.
دستور comm برای مقایسه دو فایل مرتب شده و نمایش خطوط منحصر به فرد هر فایل و همچنین خطوط مشترک هر دو فایل استفاده میشود.
root@ubuntu:~# comm <file 1> <file2>
متنی که در سمت چپ تراز شده است، فقط در فایل ۱ وجود دارد. متن وسطچین فقط در فایل ۲ وجود دارد. و متن راستچین در هر دو فایل وجود دارد.
از ظاهر آن، دستور comm زمانی بیشترین کاربرد را دارد که سعی میکنیم فایلهای بزرگتر را با هم مقایسه کنیم و میخواهیم همه چیز را مرتب ببینیم.
هر سه این دستورها ابزارهای ضروری برای کار با فایلها در سیستمعاملهای مبتنی بر لینوکس و یونیکس هستند. با درک نحوه استفاده مؤثر از دستورات diff، comm و cmp، میتوانید تفاوتهای بین فایلها را شناسایی کنید، تغییرات را ادغام کنید و سایر کارهای مقایسه فایل را انجام دهید.
این دستورات میتوانند به شما در شناسایی و حل مشکلات فایلها و همچنین ردیابی تغییرات و حفظ کنترل نسخه کمک کنند. چه توسعهدهنده باشید و چه مدیر سیستم، این دستورات بخش مهمی از جعبه ابزار شما هستند.
دستور sort در لینوکس
دستور sort برای مرتبسازی سطرها در یک فایل متنی یا ورودی استاندارد در سیستمعاملهای مبتنی بر لینوکس و یونیکس استفاده میشود. میتوان از آن برای مرتبسازی سطرها به ترتیب صعودی یا نزولی و انجام سایر عملیات مرتبسازی، مانند مرتبسازی بر اساس فیلدها یا استفاده از یک ترتیب مرتبسازی سفارشی، استفاده کرد.
نحوه کلی دستور sort به صورت زیر است:
root@ubuntu:~# sort <filename>
به طور پیشفرض، دستور sort سطرها را به ترتیب ASCII مرتب میکند، که میتواند هنگام مرتبسازی اعداد یا کاراکترهای خاص منجر به نتایج غیرمنتظرهای شود. برای مرتبسازی اعداد به ترتیب عددی، میتوانید از گزینه -n استفاده کنید.
در اینجا مثالی از استفاده از گزینه -n آورده شده است:
root@ubuntu:~# sort -n file.txtدستور بالا سطرهای file.txt را به ترتیب عددی مرتب میکند.
دستور sort همچنین میتواند برای مرتبسازی سطرها بر اساس فیلدهای خاص با استفاده از گزینه -k استفاده شود.
در اینجا مثالی از استفاده از گزینه -k آورده شده است:
root@ubuntu:~# sort -k 2 file.txtاین دستور، سطرهای موجود در فایل file.txt را بر اساس فیلد دوم مرتب میکند.
دستور sort ابزاری قدرتمند و انعطافپذیر برای کار با فایلهای متنی در سیستمعاملهای مبتنی بر لینوکس و یونیکس است. با درک نحوهی استفادهی مؤثر از دستور sort، میتوانید سطرهای فایلهای متنی را مرتب کنید، سطرها را بر اساس فیلدهای خاص مرتب کنید و سایر عملیات مرتبسازی را انجام دهید.
این دستورات میتوانند به شما در سازماندهی و تجزیه و تحلیل دادهها و انجام سایر وظایف دستکاری فایل کمک کنند. چه توسعهدهنده باشید و چه مدیر سیستم، دستور sort بخش مهمی از مجموعه ابزارهای شماست.
دستور export در لینوکس
دستور export در سیستمعاملهای مبتنی بر لینوکس و یونیکس برای تنظیم متغیرهای محیطی استفاده میشود. متغیرهای محیطی برای ذخیره اطلاعاتی که میتوانند توسط فرآیندها یا دستورات استفاده شوند، استفاده میشوند.
پس از تنظیم یک متغیر محیطی، هر فرآیند یا دستوری که در همان پوسته اجرا میشود، میتواند به آن دسترسی داشته باشد.
متغیرهای محیطی میتوانند برای ذخیره طیف وسیعی از اطلاعات، مانند تنظیمات پیکربندی، تنظیمات کاربر یا اطلاعات سیستم، استفاده شوند.
در اینجا مثالی از استفاده از دستور export آورده شده است:
root@ubuntu:~# export <variable name>=<value>
دستور ssh در لینوکس
دستور ssh در سیستم عاملهای مبتنی بر لینوکس و یونیکس، یک اتصال shell امن به یک سرور راه دور برقرار میکند. این دستور یک اتصال رمزگذاری شده امن بین سرورهای محلی و راه دور فراهم میکند و به کاربران امکان میدهد دستورات را اجرا کرده و فایلها را به صورت ایمن منتقل کنند.
سینتکس اصلی دستور ssh به صورت زیر است:
root@ubuntu:~ ssh username@remote-serverاین دستور با استفاده از نام کاربری، یک اتصال ssh به سرور راه دور برقرار میکند.
- پیکربندی روشهای احراز هویت (رمز عبور، کلید عمومی و غیره)
- پیکربندی الگوریتمهای رمزگذاری
- پیکربندی فشردهسازی
- پیکربندی انتقال پورت
- پیکربندی انتقال X11
- پیکربندی کلیدهای SSH
دستور سرویس در لینوکس
دستور service در لینوکس برای مدیریت سرویسهای سیستمی استفاده میشود که فرآیندهای طولانیمدتی هستند که در زمان بوت شدن سیستم شروع به کار میکنند و در پسزمینه اجرا میشوند. این سرویسها مسئول ارائه قابلیتهای مختلف سیستمی مانند شبکه، مدیریت پایگاه داده و احراز هویت کاربر هستند.
دستور service برای شروع، توقف، راهاندازی مجدد و بررسی وضعیت این سرویسها استفاده میشود. این یک رابط کاربری برای دستور systemctl است که برای مدیریت مدیر سرویس systemd استفاده میشود.
سینتکس اصلی دستور به صورت زیر است.
root@ubuntu:~ service ssh status
root@ubuntu:~ service ssh stop
root@ubuntu:~ service ssh start
همانطور که در تصویر مشاهده میکنید، سرور ssh روی سیستم ما در حال اجرا است.
دستورات ps، kill و killall
دستورات ps، kill و killall همگی برای مدیریت فرآیندها در لینوکس استفاده میشوند.
دستور ps برای نمایش اطلاعات مربوط به فرآیندهای در حال اجرا در سیستم استفاده میشود. در اینجا چند نمونه از استفاده از دستور ps آورده شده است:
نمایش لیست تمام فرآیندهای در حال اجرا:
root@ubuntu:~ ps -efنمایش لیستی از تمام فرآیندها برای یک شناسه فرآیند (PID) خاص:
root@ubuntu:~ ps -p PIDبیایید همه اینها را در عمل ببینیم:
root@ubuntu:~ ps
root@ubuntu:~ kill <process ID>
root@ubuntu:~ killall <process name>برای اهداف نمایشی، ما یک اسکریپت پوسته با یک حلقه بینهایت ایجاد خواهیم کرد و آن را در پسزمینه اجرا خواهیم کرد.
با استفاده از نماد &، میتوانیم یک فرآیند را به پسزمینه منتقل کنیم. همانطور که میبینید، یک فرآیند bash جدید با PID 14490 ایجاد شده است.

حالا، برای کشتن یک فرآیند با دستور kill، میتوانید kill را تایپ کنید و به دنبال آن PID (شناسه فرآیند) فرآیند را بنویسید.

اما اگر شناسه فرآیند را نمیدانید و فقط میخواهید فرآیند را با نام آن از بین ببرید، میتوانید از دستور killall استفاده کنید.

متوجه خواهید شد که PID 14490 فعال مانده است. دلیلش این است که هر دو بار، فرآیند sleep را kill کردیم.
دستورات df و mount
هنگام کار با لینوکس، دستورات df و mount ابزارهای بسیار کارآمدی برای mount کردن سیستم فایلها و دریافت جزئیات سیستم فایل هستند.
دستور df برای نمایش میزان فضای دیسک استفاده شده و موجود در سیستم فایلها استفاده میشود و دستور mount برای mount کردن یک سیستم فایل یا دستگاه به یک دایرکتوری خاص استفاده میشود.
وقتی میگوییم mount، به این معنی است که دستگاه را به یک پوشه متصل میکنیم تا بتوانیم از سیستم فایل خود به فایلها دسترسی داشته باشیم. سینتکس پیشفرض برای mount کردن یک سیستم فایل به شرح زیر است:
root@ubuntu:~ mount /dev/cdrom /mnt
root@ubuntu:~ df -hدر مورد بالا، /dev/cdrom دستگاهی است که باید نصب شود. معمولاً یک دستگاه قابل نصب در داخل پوشه /dev قرار دارد. mnt پوشه مقصدی است که دستگاه باید در آن نصب شود. میتوانید آن را به هر پوشهای که میخواهید تغییر دهید، اما ما از /mnt استفاده کردهایم زیرا پوشه پیشفرض سیستم برای نصب دستگاهها است.
برای دیدن دستگاههای نصب شده و کسب اطلاعات بیشتر در مورد آنها، از دستور df استفاده میکنیم. فقط تایپ کردن df دادهها را به صورت بایت به ما میدهد که قابل خواندن نیست. بنابراین، از پارامتر -h برای قابل خواندن دادهها توسط انسان استفاده خواهیم کرد.

دستورات chmod و chown
دستورات chmod و chown برای تغییر مجوزهای فایل و مالکیت در لینوکس استفاده میشوند.
دستور chmod برای تغییر مجوزهای یک فایل یا دایرکتوری و دستور chown برای تغییر مالکیت یک فایل یا دایرکتوری استفاده میشود.
نحوه پیشفرض برای هر دو دستور chmod <parameter> filename و chown <user:group> filename است.
root@ubuntu:~ chmod +x loop.sh
root@ubuntu:~ chmod root:root loop.sh
در مثال بالا، ما با دستور chmod مجوزهای اجرایی را به فایل loop.sh اضافه میکنیم. علاوه بر این، با دستور chown، آن را فقط برای کاربر root و کاربران درون گروه root قابل دسترسی کردهایم.

همانطور که متوجه خواهید شد، بخش ریشه (root) اکنون به www-data تغییر یافته است که کاربر جدیدی است که مالکیت کامل فایل را در اختیار دارد.
دستورات ifconfig و traceroute
دستورات ifconfig و traceroute رابطهای شبکه را مدیریت کرده و مسیر بستههای شبکه را در لینوکس ردیابی میکنند.
دستور ifconfig لیستی از تمام رابطهای شبکه به همراه آدرسهای IP، آدرسهای MAC و سایر اطلاعات مربوط به رابط را در اختیار شما قرار میدهد.
root@ubuntu:~ ifconfigپارامترهای متعددی وجود دارد که میتوان از آنها استفاده کرد، اما ما در اینجا با دستور پایه کار خواهیم کرد.

دستور traceroute برای ردیابی مسیر بستههای شبکه و تعیین مسیری که آنها برای رسیدن به یک مقصد خاص طی میکنند، استفاده میشود.
هنگام کار با traceroute، میتوانید به سادگی آدرس IP، نام میزبان یا نام دامنه نقطه پایانی را مشخص کنید.
root@ubuntu:~ traceroute <destination address>
بدیهی است که localhost فقط یک گام (خود رابط شبکه) است. میتوانید همین دستور را با هر نام دامنه یا آدرس IP دیگری امتحان کنید تا تمام روترهایی را که بستههای داده شما برای رسیدن به مقصد از آنها عبور میکنند، مشاهده کنید.
دستور wget در لینوکس
اگر میخواهید فایلی را از داخل ترمینال دانلود کنید، دستور wget یکی از کاربردیترین ابزارهای خط فرمان موجود است. این یکی از دستورات مهم لینوکس است که هنگام کار با فایلهای منبع باید بدانید.
وقتی لینک دانلود را مشخص میکنید، باید مستقیماً به فایل لینک شود. اگر فایل از طریق دستور wget قابل دسترسی نباشد، به جای فایل واقعی که میخواهید، صفحه وب را به صورت HTML دانلود میکند.
بیایید یک مثال بزنیم. سینتکس اصلی دستور wget به صورت زیر است:
root@ubuntu:~ wget <link to file>یا،
root@ubuntu:~ wget -c <link to file>آرگومان -c به ما امکان میدهد دانلودی که متوقف شده را از سر بگیریم.
دستورات ufw و iptables
دستورات ufw و iptables برای مدیریت فایروالها در لینوکس استفاده میشوند.
UFW و IPTables رابطهای فایروال برای فایروال netfilter هسته لینوکس هستند. IPTables مستقیماً قوانین فایروال را به Netfilter منتقل میکند در حالی که UFW قوانین را در IPTables پیکربندی میکند و سپس آن قوانین را به Netfilter ارسال میکند.
چرا وقتی IPTables داریم به UFW نیاز داریم؟ زیرا IPTables برای یک تازهکار بسیار دشوار است. UFW کارها را بسیار آسان میکند. به مثال زیر توجه کنید که در آن سعی داریم پورت ۸۰ را برای وبسرور خود مجاز کنیم.
root@ubuntu:~# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
root@ubuntu:~# ufw allow 80مطمئنم حالا میدانید چرا UFW ساخته شد! ببینید که سینتکس آن چقدر آسان میشود. هر دوی این فایروالها بسیار جامع هستند و میتوانند به شما امکان دهند هر نوع پیکربندی مورد نیاز برای شبکه خود را ایجاد کنید. حداقل اصول اولیه فایروال UFW یا IPTables را یاد بگیرید، زیرا اینها دستورات لینوکسی هستند که باید بدانید.
مدیران بسته در لینوکس
توزیعهای مختلف لینوکس از مدیریت بستههای متفاوتی استفاده میکنند. از آنجایی که ما روی سرور اوبونتو کار میکنیم، مدیریت بسته apt را داریم. اما برای کسی که روی دستگاه فدورا، رد هت، آرچ یا سنتوس کار میکند، مدیریت بسته متفاوت خواهد بود.
در زیر دستوراتی در مورد نحوه استفاده از این مدیریت بستهها در توزیعهای مختلف لینوکس آمده است.
- Debian and Debian-based distros – apt install <package name>
- Arch and Arch-based distros – pacman -S <package name>
- Red Hat and Red Hat-based distros – yum install <package name>
- Fedora and CentOS – yum install <package>
دستور sudo در لینوکس
«قدرت زیاد، مسئولیت زیاد به همراه دارد»
این نقل قولی است که وقتی یک کاربر sudo-enabled (sudoer) برای اولین بار از دستور sudo برای افزایش امتیازات استفاده میکند، نمایش داده میشود. این دستور معادل ورود به سیستم به عنوان root است (بر اساس مجوزهایی که به عنوان sudoer دارید).
non-root-user@ubuntu:~# sudo <command you want to run>
Password:
فقط کافی است دستور sudo را قبل از هر دستوری که نیاز به اجرای آن با امتیازات افزایش یافته دارید، اضافه کنید و تمام. استفاده از آن بسیار ساده است، اما اگر یک کاربر مخرب به sudoer دسترسی پیدا کند، میتواند یک خطر امنیتی اضافی نیز ایجاد کند.
دستور cal در لینوکس
آیا تا به حال خواستهاید تقویم را در ترمینال مشاهده کنید؟ ظاهراً افرادی هستند که میخواهند این اتفاق بیفتد، و خب، این هم از این.
دستور cal یک تقویم با ظاهری زیبا را در ترمینال نمایش میدهد. فقط کافیست دستور cal را در اعلان ترمینال خود وارد کنید.
root@ubuntu:~# cal
root@ubuntu:~# cal March 2024
اگرچه اغلب به آن نیاز نداریم، اما افزونهی فوقالعادهای است! این یک گزینهی شگفتانگیز برای طرفداران پروپاقرص دستگاههای الکترونیکی است.
دستور alias
آیا دستورهایی دارید که هنگام استفاده از ترمینال مرتباً اجرا میکنید؟ میتواند rm -r یا ls -l باشد، یا میتواند چیزی طولانیتر مانند tar -xvzf باشد.
این یکی از دستورات لینوکس است که بهرهوری را افزایش میدهد و باید بدانید.
اگر دستوری را میشناسید که مرتباً اجرا میکنید، وقت آن است که یک alias ایجاد کنید.
alias چیست؟ به زبان ساده، نام دیگری برای دستوری است که تعریف کردهاید.
root@ubuntu:~# alias lsl="ls -l"
OR
root@ubuntu:~# alias rmd="rm -r"اکنون، هر بار که lsl یا rmd را در ترمینال وارد میکنید، خروجیای را دریافت خواهید کرد که اگر از دستورات کامل استفاده میکردید، دریافت میکردید.
مثالهای اینجا برای دستورات بسیار کوچکی هستند که میتوانید هر بار آنها را دستی تایپ کنید. اما در برخی موقعیتها که یک دستور آرگومانهای زیادی دارد که باید تایپ کنید، بهتر است یک نسخه مختصر از آن را ایجاد کنید.
دستور dd در لینوکس
این دستور برای تبدیل و کپی فایلها از فرمتهای مختلف سیستم فایل ایجاد شده است. امروزه، این دستور به سادگی برای ایجاد USB قابل بوت برای لینوکس استفاده میشود، اما هنوز کارهای مهمی وجود دارد که میتوانید با این دستور انجام دهید.
دستور dd در لینوکس یک دستور همهکاره است که برای کپی و تبدیل سطح پایین دادهها استفاده میشود. این دستور مخفف “data-description” یا “data definition” است و میتواند برای کپی و تبدیل دادهها بین فرمتهای مختلف فایل و دستگاههای ذخیرهسازی استفاده شود.
به عنوان مثال، اگر میخواستیم از کل هارد دیسک به عنوان یک درایو دیگر پشتیبانگیری کنیم، از دستور dd استفاده میکردیم.
root@ubuntu:~# dd if=/dev/sdb of=/dev/sdaآرگومانهای if و of به معنای فایل ورودی و فایل خروجی هستند.
این یک ابزار قدرتمند و انعطافپذیر است، اما اگر با دقت استفاده نشود، میتواند خطرناک نیز باشد. همیشه نحو (syntax) خود را دوباره بررسی کنید و قبل از اجرای دستور، مطمئن شوید که میدانید دستور چه کاری انجام خواهد داد.
دستورات whereis و whatis
دستورات whereis و whatis در لینوکس برای جستجوی اطلاعات مربوط به برنامهها و فایلها استفاده میشوند.
دستور whereis صفحات باینری، منبع و راهنما را برای یک دستور یا برنامه خاص پیدا میکند و دستور whatis توضیح کوتاهی از یک دستور یا برنامه را نمایش میدهد.
root@ubuntu:~# whereis sudo
sudo: /usr/bin/sudo /usr/lib/sudo /usr/share/man/man8/sudo.8.gzدستور whatis توضیحی در مورد اینکه یک دستور واقعاً چیست، به ما میدهد.
root@ubuntu:~# whatis sudo
sudo (8) - execute a command as another userدستور top در لینوکس
چند بخش قبل، در مورد دستور ps صحبت کردیم. مشاهده کردید که دستور ps فرآیندهای فعال را نمایش میدهد و خودش را خاتمه میدهد.
دستور top مانند نسخه CLI از task manager در ویندوز است.
دستور top در لینوکس یک ابزار نظارت بر سیستم است که اطلاعات بلادرنگ در مورد فرآیندهای سیستم و میزان استفاده از منابع را نمایش میدهد. این دستور یک نمای پویا و بلادرنگ از فعالیت سیستم، از جمله میزان استفاده از CPU، میزان استفاده از حافظه و اطلاعات فرآیندها ارائه میدهد.
- مرتبسازی فرآیندها بر اساس میزان استفاده از حافظه:
root@ubuntu:~# top -o MEMاین کار لیست فرآیندها را بر اساس میزان استفاده از حافظه مرتب میکند و فرآیندهایی که بیشترین استفاده را از حافظه دارند در بالا قرار میگیرند.
- نمایش اطلاعات دقیق در مورد یک فرآیند خاص:
root@ubuntu:~# top -p PIDبه جای PID، شناسهی فرآیندی را که میخواهید بررسی کنید، قرار دهید.
- نمایش خلاصهای از میزان استفاده از منابع سیستم:
root@ubuntu:~# top -n 1نمایش خلاصهای از میزان استفاده از منابع سیستم:
این یک ابزار قدرتمند و انعطافپذیر برای نظارت بر فعالیت سیستم و عیبیابی مشکلات عملکرد است.
دستورات useradd و usermod
دستورات useradd و usermod در لینوکس برای مدیریت حسابهای کاربری استفاده میشوند.
دستورات useradd یا adduser دقیقاً همان دستوراتی هستند که adduser فقط یک پیوند نمادین به دستور useradd است. این دستور به ما امکان میدهد یک کاربر جدید در لینوکس ایجاد کنیم.
root@ubuntu:~# useradd JournalDev -d /home/JDدستور بالا یک کاربر جدید به نام JournalDev با دایرکتوری خانه /home/JD ایجاد میکند.
از سوی دیگر، دستور usermod برای تغییر کاربران موجود استفاده میشود. میتوانید هر مقداری از کاربر، از جمله گروهها، مجوزها و غیره را تغییر دهید.
به عنوان مثال، اگر میخواهید گروههای بیشتری به کاربر اضافه کنید، میتوانید تایپ کنید:
root@ubuntu:~# usermod JournalDev -a -G sudo, audio, mysqlدستور passwd در لینوکس
حالا که میدانید چگونه کاربران جدید ایجاد کنید، بیایید برای آنها رمز عبور نیز تعیین کنیم. دستور passwd به شما امکان میدهد رمز عبور را برای حساب کاربری خود تنظیم کنید، یا اگر مجوز دارید، رمز عبور را برای حسابهای کاربری دیگر تنظیم کنید.
در اینجا چند نمونه از استفاده از دستور passwd آورده شده است:
- تغییر رمز عبور برای کاربر فعلی:
root@ubuntu:~# passwdاین از شما میخواهد که رمز عبور جدیدی برای کاربر فعلی وارد کنید.
- تغییر رمز عبور برای یک کاربر خاص:
root@ubuntu:~# passwd usernameبه جای username، نام کاربری که میخواهید رمز عبورش را تغییر دهید را بنویسید.
- کاربر را مجبور کنید در ورود بعدی رمز عبور خود را تغییر دهد:
root@ubuntu:~# passwd -f username- تعیین تاریخ انقضا برای رمز عبور کاربر:
root@ubuntu:~# passwd -e -n days -w warndays usernameبه جای days تعداد روزهای قبل از انقضای رمز عبور و به جای warm days تعداد روزهای قبل از انقضای رمز عبور که به کاربر هشدار داده میشود را قرار دهید.
اینها تنها چند نمونه از استفاده از دستور passwd در لینوکس هستند. با درک نحوه استفاده موثر از این دستور، میتوانید حسابهای کاربری را مدیریت کرده و از امنیت سیستم خود اطمینان حاصل کنید.

خطاهای رایج و اشکالزدایی
هنگام کار با دستورات لینوکس، ممکن است با خطاها و مشکلات مختلفی روبرو شوید. در اینجا برخی از مشکلات رایج و نحوه حل آنها آورده شده است:
۱. رفع خطاهای «Command not found»
اگر خطای command not found را دریافت کردید، به این معنی است که دستوری که سعی در اجرای آن دارید توسط سیستم شناسایی نشده است. این میتواند به دلایل مختلف رخ دهد:
- این دستور روی سیستم شما نصب نشده است. میتوانید آن را با استفاده از مدیر بسته خود (مثلاً apt، yum، dnf) نصب کنید.
اگر دیدید:bash: xyz: command not foundاستفاده:
which xyzاگر دستور نصب نشده است، نصب را امتحان کنید:
apt-get install <package-name> - دستور در مسیر سیستم شما نیست. میتوانید دایرکتوری حاوی دستور را به مسیر سیستم خود اضافه کنید.
export PATH=$PATH:/path/to/command - شما اشتباه تایپی مرتکب شدید. دستور را برای هرگونه خطای املایی دوباره بررسی کنید.
2. حل مشکلات مجوز با sudo
اگر با مشکل مجوز مواجه شدید، میتوانید از sudo برای اجرای دستور با امتیازات superuser استفاده کنید. برای مثال:
sudo command_name3. مدیریت تداخل فایلها
تداخل فایلها میتواند زمانی رخ دهد که چندین کاربر یا فرآیند سعی کنند همزمان یک فایل را تغییر دهند. در اینجا چند روش برای مدیریت تداخل فایلها آورده شده است:
1.استفاده از سیستمهای کنترل نسخه (VCS): ابزارهایی مانند گیت میتوانند با فراهم کردن امکان ادغام تغییرات و حل دستی تداخلها، به مدیریت تداخلهای فایل کمک کنند.
git merge <branch_name>اگر تداخلی وجود داشته باشد، گیت از شما میخواهد که آنها را حل کنید. فایلهای تداخلدار را باز کنید، تغییرات لازم را اعمال کنید و سپس فایلهای حلشده را کامیت کنید.
git add <resolved_file>
git commit -m "Resolved merge conflict"2.مکانیسمهای قفلگذاری: قفلگذاری فایل را پیادهسازی کنید تا از نوشتن همزمان چندین فرآیند روی یک فایل جلوگیری شود. از flock در لینوکس برای ایجاد قفل روی یک فایل استفاده کنید.
'''' flock -x <file> -c "<command>" ...3.عملیات اتمی: از عملیات اتمی استفاده کنید تا مطمئن شوید که نوشتن فایلها در یک مرحله انجام میشود و خطر تداخل کاهش مییابد.
mv temp_file target_fileیا، از mv با -f (اجباری) یا cp با -i (تعاملی) استفاده کنید:
mv -f file1 file2
cp -i file1 file2۴. اشکالزدایی گلوگاههای عملکرد
گلوگاههای عملکرد میتوانند به طور قابل توجهی بر کارایی سیستم شما تأثیر بگذارند. در اینجا چند مرحله برای اشکالزدایی و رفع آنها آورده شده است:
- شناسایی گلوگاه: از ابزارهایی مانند top، htop، vmstat و iostat برای نظارت بر عملکرد سیستم و شناسایی منبعی که باعث گلوگاه میشود (CPU، حافظه، ورودی/خروجی دیسک و غیره) استفاده کنید.
top - تحلیل گزارشها: گزارشهای سیستم و برنامهها را برای هرگونه خطا یا هشداری که ممکن است نشاندهنده مشکلات عملکرد باشد، بررسی کنید.
tail -f /var/log/syslog - بهینهسازی کد: کد خود را برای بهبود عملکرد بررسی و بهینهسازی کنید. به دنبال الگوریتمهای ناکارآمد، محاسبات غیرضروری و نشت حافظه باشید.
- برنامه خود را پروفایل کنید: از ابزارهای پروفایلینگ مانند gprof، perf یا valgrind برای تجزیه و تحلیل عملکرد برنامه خود و شناسایی توابع کند یا مشکلات حافظه استفاده کنید.
gprof <فایل اجرایی> gmon.out - مقیاسبندی منابع: اگر گلوگاه به دلیل محدودیت منابع است، مقیاسبندی سختافزار خود یا استفاده از متعادلسازی بار را برای توزیع بار بین چندین سرور در نظر بگیرید.
- شناسایی گلوگاه: از ابزارهایی مانند top، htop، vmstat و iostat برای نظارت بر عملکرد سیستم و شناسایی منبعی که باعث گلوگاه میشود (CPU، حافظه، ورودی/خروجی دیسک و غیره) استفاده کنید.
سوالات متداول
۱. پرکاربردترین دستورات لینوکس کدامند؟
پرکاربردترین دستورات لینوکس شامل cd، ls، mkdir، rm، cp، mv، echo، cat، grep، find، man، sudo، apt-get، ssh، ping، df، du، free، top، ps، kill، killall، service، systemctl، reboot، shutdown، whoami، uname، uptime، history و clear است.
۲. چگونه میتوانم تمام دستورات موجود در لینوکس را لیست کنم؟
شما میتوانید با استفاده از دستور compgen -c تمام دستورات موجود در لینوکس را لیست کنید. این دستور لیستی از تمام دستورات موجود در سیستم شما را نمایش میدهد.
۳. چگونه میتوانم یک فایل را در لینوکس پیدا کنم؟
شما میتوانید با استفاده از دستور find یک فایل را در لینوکس پیدا کنید. سینتکس اصلی find <path> -name “<filename>” است، که <path> دایرکتوری است که میخواهید جستجو را از آنجا شروع کنید و <filename> نام فایلی است که به دنبال آن هستید. برای مثال، /home/user -name “example.txt” را پیدا کنید.
۴. چگونه یک فرآیند را در لینوکس kill کنم؟
شما میتوانید با استفاده از دستور kill، یک فرآیند را در لینوکس kill کنید. ابتدا، باید شناسه فرآیند (PID) فرآیندی را که میخواهید kill کنید با استفاده از دستور ps یا top پیدا کنید. سپس، از دستور kill و به دنبال آن PID استفاده کنید. به عنوان مثال، kill 1234، که 1234 PID فرآیند است.
۵. تفاوت بین cp و mv چیست؟
دستور cp برای کپی کردن فایلها یا دایرکتوریها استفاده میشود، در حالی که دستور mv برای انتقال یا تغییر نام فایلها یا دایرکتوریها استفاده میشود. cp یک کپی از فایل اصلی ایجاد میکند و فایل اصلی را دست نخورده باقی میگذارد، در حالی که mv فایل را به مکان جدیدی منتقل میکند و آن را از مکان اصلی حذف میکند.
۶. چگونه میزان استفاده از حافظه سیستم لینوکس خود را بررسی کنم؟
شما میتوانید میزان استفاده از حافظه سیستم لینوکس خود را با استفاده از دستور free بررسی کنید. این دستور مقدار کل حافظه فیزیکی و swap آزاد و استفاده شده در سیستم را نمایش میدهد. برای مثال، free -h میزان استفاده از حافظه را در قالبی قابل خواندن توسط انسان نمایش میدهد.









