- دستورات مهم و کاربردی لینوکس
- دستور ls
- دستور ll
- دستور cd
- دستور pwd
- دستور mkdir
- دستور touch
- دستور rm
- دستور cp
- دستور mv
- دستور rsync
- دستور w
- دستور df
- دستور lsblk
- دستور vi
- دستور cat
- دستور du
- دستور head
- دستور tail
- دستور journalctl -f
- دستور date
- دستور hostname
- دستور hostnamectl
- دستور whereis
- دستور grep
- دستور uname
- دستور history
- دستور adduser
- دستور passwd
- دستور su
- دستور userdel
- دستور ip
- دستور ping
- دستور ethtool
- دستور netstat
- دستور free
- دستور find
- دستور top
- دستور lsof
- دستور sudo
- دستور tar
- دستور chmod
- دستور chown
- دستور sleep
- دستور ps
- دستور pgrep
- دستور kill
- دستور wget
- دستور man
- دستور echo
- دستور clear
- دستور type
- نکات و ترفندهای استفاده از ترمینال
دستورات مهم و کاربردی لینوکس که باید بدانیم
5,3 دقیقه
- دستورات مهم و کاربردی لینوکس
- دستور ls
- دستور ll
- دستور cd
- دستور pwd
- دستور mkdir
- دستور touch
- دستور rm
- دستور cp
- دستور mv
- دستور rsync
- دستور w
- دستور df
- دستور lsblk
- دستور vi
- دستور cat
- دستور du
- دستور head
- دستور tail
- دستور journalctl -f
- دستور date
- دستور hostname
- دستور hostnamectl
- دستور whereis
- دستور grep
- دستور uname
- دستور history
- دستور adduser
- دستور passwd
- دستور su
- دستور userdel
- دستور ip
- دستور ping
- دستور ethtool
- دستور netstat
- دستور free
- دستور find
- دستور top
- دستور lsof
- دستور sudo
- دستور tar
- دستور chmod
- دستور chown
- دستور sleep
- دستور ps
- دستور pgrep
- دستور kill
- دستور wget
- دستور man
- دستور echo
- دستور clear
- دستور type
- نکات و ترفندهای استفاده از ترمینال
- راهحل شما اینجاست.
دستورات مهم و کاربردی لینوکس که باید بدانیم
در این مستند در ابتدا دستورات مهم و پرکاربرد لینوکس را به صورت مختصر و بدون توضیحات اضافه معرفی و سپس نکات و ترفندهای جذاب استفاده از ترمینال را ارائه میکنیم.
دستورات مهم و کاربردی لینوکس
دستور ls
مشاهده لیست فایلها و دایرکتوریها
[root@AvidLearn ~]# ls
anaconda-ks.cfg directory1 directory2 directory3 Directory3 file120M file140M text text1.txt text.txt
مشاهده لیست همهی فایلها و دایرکتوریها (حتی فایلهای مخفی)
[root@AvidLearn ~]# ls -a
. anaconda-ks.cfg .bash_logout .bashrc .cshrc directory2 Directory3 file140M text text.txt
.. .bash_history .bash_profile .config directory1 directory3 file120M .tcshrc text1.txt
مشاهده فایلها و دایرکتوریها با جزئیات
[root@AvidLearn ~]# ls -l
total 61452
-rw-------. 1 root root 1314 Feb 23 07:38 anaconda-ks.cfg
drwxr-xr-x. 2 root root 55 Feb 26 07:49 directory1
drwxr-xr-x. 3 root root 73 Feb 26 07:49 directory2
drwxr-xr-x. 2 root root 22 Feb 26 07:49 directory3
-rw-r--r--. 1 root root 20971520 Feb 26 07:48 file120M
-rw-r--r--. 1 root root 41943040 Feb 26 07:49 file140M
-rw-r--r--. 1 root root 369 Mar 14 14:30 text1.txt
-rw-r--r--. 1 root root 41 Mar 14 14:30 text.txt
دستور ll
نام مستعار (alias) برای ls -l است و به جای آن میتواند استفاده شود.
[root@AvidLearn ~]# ll
total 61452
-rw-------. 1 root root 1314 Feb 23 07:38 anaconda-ks.cfg
drwxr-xr-x. 2 root root 55 Feb 26 07:49 directory1
drwxr-xr-x. 3 root root 73 Feb 26 07:49 directory2
drwxr-xr-x. 2 root root 22 Feb 26 07:49 directory3
-rw-r--r--. 1 root root 20971520 Feb 26 07:48 file120M
-rw-r--r--. 1 root root 41943040 Feb 26 07:49 file140M
-rw-r--r--. 1 root root 369 Mar 14 14:30 text1.txt
-rw-r--r--. 1 root root 41 Mar 14 14:30 text.txt
دستور cd
تغییر دایرکتوری
[root@AvidLearn ~]# cd /Data/Directory1/
[root@AvidLearn Directory1]#
دستور pwd
مشاهده مسیر دایرکتوری جاری
[root@AvidLearn Directory1]# pwd
/Data/Directory1
دستور mkdir
ساخت دایرکتوری
[root@AvidLearn Directory1]# mkdir DR1 DR2
[root@AvidLearn Directory1]# ls
DR1 DR2
دستور touch
ساخت فایل
[root@AvidLearn Directory1]# touch file1
[root@AvidLearn Directory1]# ls
DR1 DR2 file1
دستور rm
حذف فایل
[root@AvidLearn Directory1]# rm file1
rm: remove regular empty file 'file1'? y
حذف فایل و فولدر
[root@AvidLearn Directory1]# rm DR1
rm: cannot remove 'DR1': Is a directory
[root@AvidLearn Directory1]# rm -r DR1
rm: remove directory 'DR1'? y
حذف فایل و فولدر بدون چون و چرا (استفاده از این دستور خطرناک است و پیشنهاد میشود فقط در صورت نیاز و با دقت بالا استفاده شود)
[root@AvidLearn Directory1]# rm -rf DR2
[root@AvidLearn Directory1]# ls
[root@AvidLearn Directory1]#
دستور cp
کپی فایل یا دایرکتوری
[root@AvidLearn Directory1]# ls
test test1 test2
[root@AvidLearn Directory1]# cp test test3
[root@AvidLearn Directory1]# ls
test test1 test2 test3
دستور mv
تغییر نام یا جابجایی یک فایل یا دایرکتوری
[root@AvidLearn Directory1]# mv test3 test4
[root@AvidLearn Directory1]# ls
test test1 test2 test4
نقطه «.» به معنای مسیر جاری و «..» به معنای مسیر والد مسیر جاری میباشد.
[root@AvidLearn Directory1]# mv /home/testdir/ .
[root@AvidLearn Directory1]# ls
test test1 test2 test4 testdir
[root@AvidLearn Directory1]# cp test ..
[root@AvidLearn Directory1]# ls
test test1 test2 test4 testdir
[root@AvidLearn Directory1]# ls ..
Directory1 OldFile test
دستور rsync
روش دیگری برای کپی اطلاعات که از جذابیت و کارایی بیشتری از cp برخوردار است.
[root@AvidLearn ~]# rsync -avrP /Data/Directory1 /home/
sending incremental file list
Directory1/
Directory1/test
0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=4/6)
Directory1/test1
0 100% 0.00kB/s 0:00:00 (xfr#2, to-chk=3/6)
Directory1/test2
0 100% 0.00kB/s 0:00:00 (xfr#3, to-chk=2/6)
Directory1/test4
0 100% 0.00kB/s 0:00:00 (xfr#4, to-chk=1/6)
Directory1/testdir/
sent 331 bytes received 104 bytes 870.00 bytes/sec
total size is 0 speedup is 0.00
دستور w
مشاهده آپ تایم سیستم، لود آن و یوزرهایی که به سیستم لاگین هستند.
[root@AvidLearn ~]# w
14:31:42 up 1 day, 20:24, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 172.16.40.102 Sat18 5.00s 0.16s 0.00s w
دستور df
مشاهده وضعیت فایل سیستمها (h- برای قابل فهمتر شدن اندازهها استفاده میشود)
[root@AvidLearn ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 890M 0 890M 0% /dev
tmpfs 908M 0 908M 0% /dev/shm
tmpfs 908M 8.5M 899M 1% /run
tmpfs 908M 0 908M 0% /sys/fs/cgroup
/dev/sda4 7.5G 2.2G 5.4G 29% /
/dev/sda2 1014M 172M 843M 17% /boot
/dev/sdb 4.9G 20M 4.6G 1% /Data
/dev/sda1 599M 5.8M 594M 1% /boot/efi
tmpfs 182M 0 182M 0% /run/user/0
مشاهده وضعیت فایل سیستمها به همراه نوع فایل سیستم
[root@AvidLearn ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 890M 0 890M 0% /dev
tmpfs tmpfs 908M 0 908M 0% /dev/shm
tmpfs tmpfs 908M 8.5M 899M 1% /run
tmpfs tmpfs 908M 0 908M 0% /sys/fs/cgroup
/dev/sda4 xfs 7.5G 2.2G 5.4G 29% /
/dev/sda2 xfs 1014M 172M 843M 17% /boot
/dev/sdb ext4 4.9G 20M 4.6G 1% /Data
/dev/sda1 vfat 599M 5.8M 594M 1% /boot/efi
tmpfs tmpfs 182M 0 182M 0% /run/user/0
دستور lsblk
مشاهده بلاک دیوایسها
[root@AvidLearn ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
├─sda3 8:3 0 964M 0 part [SWAP]
└─sda4 8:4 0 7.5G 0 part /
sdb 8:16 0 5G 0 disk /Data
دستور vi
ایجاد یک فایل متنی با استفاده از ویرایشگر قدرتمند vi
[root@AvidLearn ~]# vi text
دستور cat
نمایش فایل متنی
[root@AvidLearn ~]# cat text
Salaam
www.cloudavid.com
دستور du
نمایش فضای دیسک استفاده شده توسط فایلها و دایرکتوریها در مسیر مورد نظر
[root@AvidLearn ~]# du -sh
261M .
مشاهده حجم فایلها و دایرکتوریها
[root@AvidLearn ~]# du -sh *
4.0K anaconda-ks.cfg
60M directory1
120M directory2
20M directory3
20M file120M
40M file140M
4.0K text1.txt
4.0K text.txt
دستور head
نمایش خطوط ابتدایی فایل (پیش فرض: ۱۰ خط)
[root@AvidLearn ~]# cat Test.txt
Line1
Line2
…
Line24
Line25
[root@AvidLearn ~]# head Test.txt
Line1
Line2
Line3
Line4
Line5
Line6
Line7
Line8
Line9
Line10
نمایش ۴ خط ابتدای فایل
[root@AvidLearn ~]# head -n 4 Test.txt
Line1
Line2
Line3
Line4
دستور tail
نمایش خطوط انتهایی فایل (پیش فرض: ۱۰ خط)
[root@AvidLearn ~]# tail Test.txt
Line16
Line17
Line18
Line19
Line20
Line21
Line22
Line23
Line24
Line25
نمایش ۴ خط انتهایی فایل
[root@AvidLearn ~]# tail -n 4 Test.txt
Line22
Line23
Line24
Line25
چک کردن آنلاین آخرین لاگهای سیستم
[root@AvidLearn ~]# tail -f /var/log/messages
Mar 14 11:12:33 AvidLearn dnf[2233]: Metadata cache refreshed recently.
Mar 14 11:12:33 AvidLearn systemd[1]: dnf-makecache.service: Succeeded.
Mar 14 11:12:33 AvidLearn systemd[1]: Started dnf makecache.
Mar 14 13:10:33 AvidLearn systemd[1]: Starting dnf makecache...
Mar 14 13:10:37 AvidLearn dnf[2266]: Rocky Linux 8 - AppStream 1.1 kB/s | 4.8 kB 00:04
Mar 14 13:10:41 AvidLearn dnf[2266]: Rocky Linux 8 - BaseOS 1.2 kB/s | 4.3 kB 00:03
Mar 14 13:10:42 AvidLearn dnf[2266]: Rocky Linux 8 - Extras 2.8 kB/s | 3.5 kB 00:01
Mar 14 13:10:43 AvidLearn dnf[2266]: Metadata cache created.
Mar 14 13:10:43 AvidLearn systemd[1]: dnf-makecache.service: Succeeded.
Mar 14 13:10:43 AvidLearn systemd[1]: Started dnf makecache.
^C
دستور journalctl -f
چک کردن آنلاین آخرین لاگهای سیستم
[root@AvidLearn ~]# journalctl -f
-- Logs begin at Sat 2022-03-12 18:06:51 +0330. --
Mar 14 13:10:33 AvidLearn systemd[1]: Starting dnf makecache...
Mar 14 13:10:37 AvidLearn dnf[2266]: Rocky Linux 8 - AppStream 1.1 kB/s | 4.8 kB 00:04
Mar 14 13:10:41 AvidLearn dnf[2266]: Rocky Linux 8 - BaseOS 1.2 kB/s | 4.3 kB 00:03
Mar 14 13:10:42 AvidLearn dnf[2266]: Rocky Linux 8 - Extras 2.8 kB/s | 3.5 kB 00:01
Mar 14 13:10:43 AvidLearn dnf[2266]: Metadata cache created.
Mar 14 13:10:43 AvidLearn systemd[1]: dnf-makecache.service: Succeeded.
Mar 14 13:10:43 AvidLearn systemd[1]: Started dnf makecache.
Mar 14 14:01:01 AvidLearn CROND[2282]: (root) CMD (run-parts /etc/cron.hourly)
Mar 14 14:01:01 AvidLearn run-parts[2285]: (/etc/cron.hourly) starting 0anacron
Mar 14 14:01:01 AvidLearn run-parts[2291]: (/etc/cron.hourly) finished 0anacron
^C
دستور date
نمایش تاریخ
[root@AvidLearn ~]# date
Mon Mar 14 14:41:23 +0330 2022
[root@AvidLearn ~]#
[root@AvidLearn ~]# timedatectl
Local time: Mon 2022-03-14 14:41:33 +0330
Universal time: Mon 2022-03-14 11:11:33 UTC
RTC time: Mon 2022-03-14 11:11:33
Time zone: Asia/Tehran (+0330, +0330)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
دستور hostname
نمایش نام هاست
[root@AvidLearn ~]# hostname
Avid-Learn
دستور hostnamectl
نمایش نام host و انجام تنظیمات مربوطه
[root@AvidLearn ~]# hostnamectl
Static hostname: AvidLearn
Icon name: computer-vm
Chassis: vm
Machine ID: 934b9cb3bb8a4b5eae29209712591d61
Boot ID: d0cb7706f0684f4693e6697f40cdb321
Virtualization: microsoft
Operating System: Linux
CPE OS Name: cpe:/o:Linux:Linux:7.0:GA
Kernel: Linux 1.0.0
Architecture: x86-64
تغییر نام هاست
[root@AvidLearn ~]# hostnamectl set-hostname NewHostName
[root@AvidLearn ~]# hostname
NewHostName
دستور whereis
پیدا کردن مسیر یک دستور (در این مثال دستور hostnamectl)
[root@AvidLearn ~]# whereis hostnamectl
hostnamectl: /usr/bin/hostnamectl /usr/share/man/man1/hostnamectl.1.gz
دستور grep
برای پیدا کردن یک متن یا رشته خاص در یک فایل یا دایرکتوری استفاده میشود. در این مثال خطوطی را در فایل passwd پیدا میکند که در آنها root وجود داشته باشد.
[root@AvidLearn ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
نمایش فایلها و دایرکتوریهایی که در آنها di وجود دارد.
[root@AvidLearn ~]# ls | grep di
directory1
directory2
Directory3
نمایش فایلها و دایرکتوریهایی که در آنها di (با حروف بزرگ یا کوچک) وجود دارد.
[root@AvidLearn ~]# ls | grep -i di
directory1
directory2
directory3
Directory3
دستور uname
نمایش hostname، اطلاعات مربوط به کرنل و غیره
[root@AvidLearn ~]# uname -a
Linux AvidLearn 3.0.6.78.x86_64 #1 SMP Thu Jun 17 07:52:48 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
دستور history
نمایش دستورات اجرا شده
[root@AvidLearn ~]# history
1 pvs
2 pvcreate /dev/sdb /dev/sdc /dev/sdd
3 pv
4 pvs
...
نمایش دستورات اجرا شده (که در آنها df وجود دارد).
[root@AvidLearn ~]# history | grep -i df
43 df -h
44 dd if=/dev/zero of=/NewDataStore/ddFile bs=2M count=1000
45 df -h
50 df -h
…
دستور adduser
ساخت یوزر
[root@AvidLearn ~]# adduser testuser
دستور passwd
تنظیم پسورد برای یوزر
[root@AvidLearn ~]# passwd testuser
Changing password for user testuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
دستور su
تغییر یوزر جاری
[root@AvidLearn ~]# su testuser
[testuser@Avid-Learn root]$
[testuser@Avid-Learn root]$ exit
exit
[root@AvidLearn ~]#
دستور userdel
پاک کردن یوزر
[root@AvidLearn ~]# userdel testuser
پاک کردن یوزر به همراه فایل دایرکتوری home یوزر و محتویات آن
[root@AvidLearn ~]# userdel -r testuser
دستور ip
یکی از مهمترین ابزارهای مدیریت شبکه در لینوکس است که قابلیتهای بسیار زیادی از جمله، مانیتور و پیکربندی وضعیت کارتهای شبکه، آدرس IP، جدول مسیریابی و … را دارد.
مشاهده آدرسهای IP تنظیم شده روی سیستم.
[root@AvidLearn ~]# ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 100.10.10.10/2 scope host lo
valid_lft forever preferred_lft forever
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 100.10.10.10/21 brd 100.10.10.10 scope global dynamic noprefixroute ens5
valid_lft 2402790sec preferred_lft 2402790sec
تنظیم آدرس IP روی اینترفیس به صورت موقت.
[root@AvidLearn ~]#ip addr add 10.10.10.2/24 dev ens5
دستور ping
تست ارتباط با یک نود در شبکه.
[root@AvidLearn ~]# ping iran.ir
PING iran.ir (195.146.59.198) 56(84) bytes of data.
64 bytes from iran.ir (195.146.59.198): icmp_seq=1 ttl=54 time=27.4 ms
64 bytes from iran.ir (195.146.59.198): icmp_seq=2 ttl=54 time=26.1 ms
64 bytes from iran.ir (195.146.59.198): icmp_seq=3 ttl=54 time=29.9 ms
^C
--- iran.ir ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2626ms
rtt min/avg/max/mdev = 26.121/27.808/29.857/1.552 ms
ping در لینوکس به صورت پیشفرض در خواستهای echoای که جوابی برای آنها نیامده را نشان نمیدهد، برای حل این مشکل از O- استفاده میکنیم.
[root@AvidLearn ~]# ping -O 100.10.10.10
PING 100.10.10.10(100.10.10.10) 56(84) bytes of data.
no answer yet for icmp_seq=1
no answer yet for icmp_seq=2
no answer yet for icmp_seq=3
^C
--- 100.10.10.10 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3101ms
اجرای دستور ping با دو درخواست echo
[root@AvidLearn ~]# ping -c 2 iran.ir
PING iran.ir (195.146.59.198) 56(84) bytes of data.
64 bytes from iran.ir (195.146.59.198): icmp_seq=1 ttl=54 time=26.6 ms
64 bytes from iran.ir (195.146.59.198): icmp_seq=2 ttl=54 time=73.9 ms
--- iran.ir ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 26.555/50.222/73.890/23.668 ms
دستور ethtool
مشاهده وضعیت فیزیکی کارت شبکه از جمله اتصال یا عدم اتصال فیزیکی آن
[root@AvidLearn ~]# ethtool ens5
Settings for ens5:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: off (auto)
Supports Wake-on: umbg
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
دستور netstat
نمایش پورت های TCP که در حالت Listening قرار دارند به همراه پروسههای مربوطه
root@AvidLearn ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 100/sshd
tcp6 0 0 :::21 :::* LISTEN 100/sshd
نمایش پورت های TCP و UDP که در حالت Listening قرار دارند به همراه پروسههای مربوطه.
[root@AvidLearn ~]# netstat -ntlup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 100/sshd
tcp6 0 0 :::22 :::* LISTEN 100/sshd
udp 0 0 100.10.10.10:24 0.0.0.0:* 100/chronyd
udp6 0 0 ::1:100 :::* 100/chronyd
نمایش پورت های TCP که در حالت Listening قرار دارند و همچنین سشنهای establish شده TCP به همراه پروسههای مربوطه.
[root@AvidLearn ~]# netstat -natp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 100/sshd
tcp 0 0 100.10.10.10:24 100.10.10.10:24 ESTABLISHED 1000/sshd: root [pr
tcp 0 0 100.10.10.10:24 100.10.10.10:24 ESTABLISHED 1000/sshd: root [pr
tcp 0 48 100.10.10.10:24 100.10.10.10:24 ESTABLISHED 1000/sshd: root [pr
tcp 0 0 100.10.10.10:24 100.10.10.10:24 ESTABLISHED 1000/sshd: root [pr
tcp6 0 0 :::21 :::* LISTEN 100/sshd
free
دستور free
مشاهده وضعیت رم سیستم
[root@AvidLearn ~]# free -g
total used free shared buff/cache available
Mem: 125 119 2 0 4 5
Swap: 29 7 21
دستور find
پیدا کردن فایلها یا دایرکتوریهایی که نام آنها test است.
[root@AvidLearn ~]# find /Data -name test
/Data/Directory1/test
پیدا کردن فایلها یا دایرکتوریهایی که ابتدای نام آنها test است.
[root@AvidLearn ~]# find /Data -name test*
/Data/Directory1/test
/Data/Directory1/test2
/Data/Directory1/test1
پیدا کردن فایلها یا دایرکتوریهایی که در آنها test (با حروف بزرگ یا کوچک) وجود دارد.
[root@AvidLearn ~]# find /Data/ | grep -i test
/Data/Directory1/test
/Data/Directory1/test2
/Data/Directory1/test1
دستور top
مشاهده لیست پروسههای فعال سیستم و مانیتور کردن سیستم با جزئیات بیشتر.
[root@AvidLearn ~]# top -c
top - 14:05:33 up 2 days, 19:58, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 118 total, 1 running, 117 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
MiB Mem : 1814.4 total, 1202.0 free, 174.3 used, 438.0 buff/cache
MiB Swap: 964.0 total, 964.0 free, 0.0 used. 1483.8 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 186172 14092 9108 S 0.0 0.8 0:03.70 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 [kthreadd]
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [rcu_gp]
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [rcu_par_gp]
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [kworker/0:0H-events_highpri]
9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [mm_percpu_wq]
دستور lsof
مشاهدهی فایلهای باز، پورتهای شبکه، پروسههای فعال و غیره مثال زیر فایلهای باز در مسیر مورد نظر را نشان میدهد.
[root@AvidLearn ~]# lsof /Data/
[root@AvidLearn ~]#
دستور sudo
اجرای دستوراتی که نیاز به دسترسی root دارند در یک یوزر غیر root
[testuser@Avid-Learn Data]$ rm test
rm: remove write-protected regular empty file 'test'? y
rm: cannot remove 'test': Permission denied
[testuser@Avid-Learn Data]$ sudo rm test
[sudo] password for testuser:
[testuser@Avid-Learn Data]$ ls
Directory1 OldFile
دستور tar
آرشیو کردن و همچنین فشرده سازی فایلها.
در این مثال آرشیو کردن فایلها با استفاده از tar انجام شده است.
[root@AvidLearn Directory1]# ls
test test1 test2 test4 testdir
[root@AvidLearn Directory1]# tar -cvf file.tar test1 test2
test1
test2
[root@AvidLearn Directory1]# ls
file.tar test test1 test2 test4 testdir
[root@AvidLearn Directory1]# rm test1 test2
rm: remove regular empty file 'test1'? y
rm: remove regular empty file 'test2'? Y
استخراج یا extract آرشیو
دستور chmod
تغییر مجوز فایلها و دایرکتوریها (در این مثال مجوز اجرا به فایل داده میشود).
[root@AvidLearn Test]# ll
total 0
-rw-r--r--. 1 root root 0 Mar 15 10:10 script
[root@AvidLearn Test]# chmod +x script
[root@AvidLearn Test]# ll
total 0
-rwxr-xr-x. 1 root root 0 Mar 15 10:10 script
دستور chown
تغییر مالکیت یک فایل
[root@AvidLearn Test]# ls
file
[root@AvidLearn Test]# ll
total 0
-rw-r--r--. 1 root root 0 Mar 15 10:12 file
[root@AvidLearn Test]# chown testuser file
[root@AvidLearn Test]# ll
total 0
-rw-r--r--. 1 testuser root 0 Mar 15 10:12 file
دستور sleep
مکث به مدت چند ثانیه (اینجا ۱۰۰۰ ثانیه) که در اسکریپتها استفاده میشود، البته اینجا برای تست استفاده شده. اجرای یک پروسه در پس زمینه با استفاده از &
[root@AvidLearn ~]# sleep 1002 &
[1] 6516
[root@AvidLearn ~]# sleep 1003 &
[2] 6518
دستور ps
نمایش پروسههای فعال (که در اسم آنها sleep وجود دارد).
[root@AvidLearn ~]# ps fax | grep sleep
6516 pts/1 S 0:00 | \_ sleep 1002
6518 pts/1 S 0:00 | \_ sleep 1003
6522 pts/1 S+ 0:00 | \_ grep --color=auto sleep
دستور pgrep
نمایش PID پروسههای در حال اجرا به روشهای متفاوت.
[root@AvidLearn ~]# pgrep sleep
6516
6518
[root@AvidLearn ~]# pgrep -a sleep
6516 sleep 1002
6518 sleep 1003
دستور kill
ارسال سیگنال kill به پروسه و بستن آن.
[root@AvidLearn ~]# kill 3523
[root@AvidLearn ~]# ps fax | grep sleep
3529 pts/0 S+ 0:00 | \_ grep --color=auto sleep
دستور wget
دانلود فایل
[root@AvidLearn home]# wget https://download-ib01.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/n/nmon-16m-1.el8.x86_64.rpm
--2022-03-15 10:23:54-- https://download-ib01.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/n/nmon-16m-1.el8.x86_64.rpm
Resolving download-ib01.fedoraproject.org (download-ib01.fedoraproject.org)... 152.19.134.145, 2600:2701:4000:5211:dead:beef:fe:fed6
Connecting to download-ib01.fedoraproject.org (download-ib01.fedoraproject.org)|152.19.134.145|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 80728 (79K) [application/x-rpm]
Saving to: ‘nmon-16m-1.el8.x86_64.rpm’
nmon-16m-1.el8.x86_64.rpm 100%[===========================================================================================>] 78.84K 74.3KB/s in 1.1s
2022-03-15 10:23:57 (74.3 KB/s) - ‘nmon-16m-1.el8.x86_64.rpm’ saved [80728/80728]
[root@AvidLearn home]# ls
nmon-16m-1.el8.x86_64.rpm
دستور man
راهنمای استفاده از دستورات (در اینجا مشاهده راهنمای wget).
[root@AvidLearn home]# man wget
دستور echo
انتقال دیتا به یک فایل یا نمایش متن در ترمینال.
[root@AvidLearn home]# echo "Salaaam AVID" >> file
[root@AvidLearn home]# cat file
Salaaam AVID
[root@AvidLearn home]#
[root@AvidLearn ~]# echo USER
USER
$ برای نمایش متغیر به کار میرود (در اینجا متغیر USER).
[root@AvidLearn ~]# echo $USER
root
دستور clear
پاک کردن ترمینال
[root@AvidLearn ~]# clear
دستور type
نمایش نوع دستور
[root@AvidLearn ~]# type ll
ll is aliased to `ls -l --color=auto'
[root@AvidLearn ~]#
[root@AvidLearn ~]# type cd
cd is a shell builtin
[root@AvidLearn ~]# type if
if is a shell keyword
نکات و ترفندهای استفاده از ترمینال
Tab
استفاده از کلید Tab برای تکمیل کامند و همچنین مسیر بسیار مفید است و استفاده از آن پیشنهاد میشود.
CTRL + R
اجرای دستورات اخیر به این صورت که Ctrl + R را فشار میدهیم و بعد قسمتی از دستور را مینویسیم، در این حالت آخرین دستور اجرا شده، که همه یا قسمتی از، متن نوشته شده در آن وجود دارد، نمایش داده میشود، اگر Ctrl + R را دفعات بعد بزنیم دستورات قبلتر را نمایش میدهد و زمانی که به دستور دلخواه رسیدیم کلید اینتر را میزنیم (قبل از زدن اینتر حتما دستور را چک میکنیم).
[root@AvidLearn ~]#
(reverse-i-search)`find': find /Data/ | grep -i test
Ctrl+C و Ctrl+Z
برای متوقف کردن دستوری که در حال اجرا است به کار میرود.
Crtl+a
رفتن به ابتدای خط جاری
Ctrl+e
رفتن به انتهای خط جاری
“;”
برای اجرای چند دستور به صورت ترتیبی و پشت سر هم استفاده میشود.
[root@AvidLearn ~]# sleep 10 ; echo "Salaaam"
Salaaam
&&
اجرای چند دستور به ترتیب در صورت موفق بودن اجرای دستور قبلی.
[root@AvidLearn ~]# sleep 10 && echo "Salaaam"
Salaaam
“|” Pipe
برای ارسال خروجی یک دستور به دستور دیگر استفاده میشود. در این مثال خروجی cat به grep ارسال میشود.
[root@AvidLearn ~]# cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
Ctrl+S
برای freeze کردن ترمینال
Ctrl+Q
برای unfreeze کردن ترمینال.
Ctrl+D
Logout از یوزر جاری
nohup
هنگامی که خواسته باشیم دستور در حال اجرا با بسته شدن ترمینال یا logout یا قطع شدن ارتباط ما با سرور همچنان به اجرای خود ادامه دهد از nohup استفاده میکنیم. اجرای این دستور قبل از دستور اصلی خروجی دستور اصلی را به فایل nohup.out ارسال میکند. استفاده از این دستور در پیشزمینه ترمینال، با توجه به عدم امکان استفاده از ترمینال در زمان اجرای دستور، خیلی مفید نیست، به همین دلیل به همراه & در انتهای دستور برای ارسال دستور به پس زمینه استفاده میشود.
[root@AvidLearn ~]# nohup sleep 1000 &
[3] 6524
[root@AvidLearn ~]# nohup: ignoring input and appending output to 'nohup.out'
راهحل شما اینجاست.

کشف کنید
در صفحه دمو با امکانات و راهکارهای ما بیشتر آشنا شوید و انتخابی آگاهانه داشته باشید.

مشاوره بگیرید
در یک جلسه رایگان، کارشناسان ما به شما کمک میکنند تا راهکار مناسب را انتخاب کنید.

شروع کنید
با اولین قدم، مسیر موفقیت را هموار کنید. با ما تماس بگیرید تا همراهتان باشیم.