Հրամանները Linux-ում։Աշխատանք տերմինալի հետ։
Տերմինալը Linux օպերացիոն համակարգի կարևոր բաղադրիչն է, քանի որ այն թույլ է տալիս կառավարել ամբողջ օպերացիոն համակարգը: Նույնիսկ եթե մենք խոսում ենք Linux-ի distro-ների մասին, որոնք օգտագործում են գրաֆիկական ինտերֆեյս։Միևնույն է ձեզ դեռ պետք է տերմինալ՝ բացելու Linux-ի ամբողջ հզորություննը:
Տերմինալում աշխատելու համար Linux-ը տրամադրում է shell: shell-ը հրամանի թարգմանիչ է. այն պատասխանատու է հրամանի տողում ձեր մուտքագրածից որևէ բան կատարելու համար: Ամենահայտնի shell-ը bash-ն է («Bourne Again Shell»-ի կրճատ, որտեղ «Bourne Shell»-ը Unix-ի առաջին shell-ի անունն է): Կարող են օգտագործվել նաև այլ shell-եր: Նրանք կարող են տրամադրել լրացուցիչ հնարավորություններ, բայց հիմնականում աշխատում են նույն սկզբունքով: Օրինակ, tcsh shell-ը տրամադրում է սկրիպտավորման լեզու, որը նման է C ծրագրավորման լեզվին. zsh shell-ը նույնպես բավականին տարածված է
Հրամաններն օգտագործվում են օպերացիոն համակարգի հետ տերմինալի միջոցով աշխատլու համար: Linux-ն ունի շատ հրամաններ, և պարբերաբար նոր հրամաններ են ավելացվում: Այնուամենայնիվ, այս բոլոր հրամաններն ունեն ընդհանուր գործելաոճ. Այսպիսով, բոլոր հրամանները բաղկացած են երեք մասից՝ ինքնին հրամանը, դրա պարամետրերը և արգումենտները: Օրինակ՝ վերցնենք ամենատարածված հրամաններից մեկը՝ ls-ը, որը նախատեսված է թղթապանակում ֆայլերի և դիրեկտորիաների ցանկը ցուցադրելու համար։ Պարզապես ls մուտքագրելով մենք ընթացիկ թղթապանակից կստանանք ֆայլերի և դիրեկտորիաների ցանկ.
┌─[superuser@parrot]─[~]
└──╼ $ls
Desktop Documents Downloads Music Pictures Public Templates Videos
┌─[superuser@parrot]─[~]
└──╼ $Հրամաները սովորաբար ընդնում են հավելյալ արգումենտներ և պարամետրերր: Օրինակ, ls հրամանը կարող է ընդունել -l պարամետրը, որը թույլ է տալիս ցուցադրել ավելի մանրամասն տեղեկատվություն ֆայլերի և կատալոգների մասին, ինչպիսիք են հասանելիությունները, ստեղծման ամսաթիվը և այլն: Եկեք օգտագործենք այս պարամետրը.
┌─[superuser@parrot]─[~]
└──╼ $ls -l
total 0
drwxr-xr-x 1 superuser superuser 28 Jun 3 16:56 Desktop
drwxr-xr-x 1 superuser superuser 0 Oct 22 03:27 Documents
drwxr-xr-x 1 superuser superuser 0 Oct 22 03:27 Downloads
drwxr-xr-x 1 superuser superuser 0 Oct 22 03:27 Music
drwxr-xr-x 1 superuser superuser 0 Oct 22 03:27 Pictures
drwxr-xr-x 1 superuser superuser 0 Oct 22 03:27 Public
drwxr-xr-x 1 superuser superuser 22 Jun 3 16:56 Templates
drwxr-xr-x 1 superuser superuser 0 Oct 22 03:27 Videos
┌─[superuser@parrot]─[~]
└──╼ $
Բացի հրահանգի պարամետրերից, դրանք կարող են ընդունել նաև արգումենտներ։ Առաջինը սովորաբար ներկայացնում է այն օբյեկտները, որոնց վրա հրահանգը կիրառում է։ Արգումենտը նշվում է հրահանգի վերջում։ Օրինակ, ls հրահանգը որպես արգումենտ ստանում է կատալոգի հասցեն, որի պարունակությունը պետք է ցուցադրվի։ Վերևում նշված օրինակներում պանակի հասցե չի փոխանցվել, ուստի ls հրահանգը կատարում է գործողությունը ըստ ներկայիս կատալոգի վրա։ Սակայն այժմ փոխանցենք կատալոգի հասցեն՝ /usr:
┌─[superuser@parrot]─[~]
└──╼ $ls /usr
bin games include lib lib32 lib64 libexec local sbin share src var
┌─[superuser@parrot]─[~]
└──╼ $Կարող ենք նաև օգտագործել ls -l փոխանցելով կատալոգի հասցեն։Որը կտպի փոխանցված կատալոգի պարունակության մանրամասն ինֆորմացիան։
┌─[superuser@parrot]─[~]
└──╼ $ls -l /usr
total 0
drwxr-xr-x 1 root root 69648 Nov 1 08:45 bin
drwxr-xr-x 1 root root 60 Jun 3 16:56 games
drwxr-xr-x 1 root root 4090 Oct 22 03:40 include
drwxr-xr-x 1 root root 4246 Nov 1 08:42 lib
drwxr-xr-x 1 root root 642 Oct 22 03:34 lib32
drwxr-xr-x 1 root root 40 Oct 22 03:35 lib64
drwxr-xr-x 1 root root 2406 Oct 22 03:51 libexec
drwxr-xr-x 1 root root 72 Jun 3 16:56 local
drwxr-xr-x 1 root root 17108 Nov 1 08:42 sbin
drwxr-xr-x 1 root root 8166 Oct 24 03:57 share
drwxr-xr-x 1 root root 686 Oct 22 04:07 src
drwxr-xr-x 1 root root 18 Jun 3 16:56 var
┌─[superuser@parrot]─[~]
└──╼ $Հրահանգների շղթաներ
| (հայկական ուղղահայաց գիծ) նշանով կարելի է կազմել հրահանգների շղթաներ։ Օրինակ, հետևյալ շղթան.
ls -R / | less
Ահա, ls -R (տպում է փոխանցված կատալոգի պարունակությունը ռեկուրսիվ) հրահանգը կատարվում է և իր արդյունքը փոխանցում է less հրահանգին։ Իսկ less հրահանգը ցույց է տալիս այդ արդյունքը էջերով։
Փոխանցում
Մեկ այլ հաճախ օգտագործվող օպերատոր է փոխանցման օպերատորը՝ >։ Օգտագործելով փոխանցում, կարելի է հրահանգի արդյունքը ուղարկել տարբեր վայրեր, օրինակ՝ ֆայլ։ Օրինակ, ցուցադրենք ls -l հրահանգի արդյունքը folder.txt ֆայլում։
ls -l > folder.txt
Այս հրահանգի արդյունքում կստեղծվի folder.txt ֆայլը ներկա պանակում, եթե այն դեռ չի ստեղծվել։ Եթե ֆայլը արդեն կա, ապա այն կփոխարինվի նոր տվյալներով։
Եթե ֆայլը կա, բայց պետք է ավելացնել հրահանգի արդյունքը արդեն գոյություն ունեցող ֆայլի մեջ, պետք է օգտագործել >> օպերատորը։
ls -l >> folder.txt
Եթե գործընթացում տեղի ունենան սխալներ, կարելի է օգտագործել 2> օպերատորը սխալները պահպանելու համար, օրինակ՝
ls -l 2> errors.txt
Եթե չենք իմանում, թե արդյոք սխալներ կլինեն, մենք կարող ենք տարբերել սովորական արդյունքը և սխալները՝
ls -l > folder.txt 2> errors.txt
Այս դեպքում հրահանգի արդյունքը կհաղորդվի folder.txt ֆայլում, իսկ սխալները՝ errors.txt ֆայլում։
Օգնություն ստանալ հրահանգների մասին
Linux-ում հրահանգների մասին տեղեկություններ ստանալու համար հատուկ man ("manual" բառի կարճ ձևը) հրահանգն է օգտագործվում։ Այս հրահանգին փոխանցվում է այն հրահանգը, որի մասին պետք է տեղեկություն ստանալ։
man lsLS(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 speci‐
fied.
Mandatory arguments to long options are mandatory for short options
too.
-a, --all
do not ignore entries starting with .Այդ դեպքում կստանանք ls հրահանգի մասին տեղեկատվությունը։ man հրահանգը սովորաբար պարունակում է հետևյալ բաժինները.
Name: հրահանգի անունը և նրա հիմնական նշանակությունը։
Synopsis: հրահանգի կիրառման համառոտ տեղեկություն։
Description: հրահանգի մանրամասն նկարագիր։
Options: հրահանգի հասանելի բոլոր պարամետրերի ամբողջական ցանկը։
Files: հրահանգի հետ կապված ֆայլեր (եթե կան)։
See also: կապված հրահանգներ։
Author: հրահանգի հեղինակը և նրա էլեկտրոնային հասցեն։
--help օպցիան
Մյուս տարբերակը հրահանգի մասին տեղեկություն ստանալու համար՝ կարող ենք օգտագործել --help օպցիան։ Այս տարբերակն ունեն գրեթե բոլոր հրահանգները։ Օրինակ, ls հրահանգի համար օգնություն ստանալու համար ։
ls --help
Usage: ls [OPTION]... [FILE]...
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 ..
--author with -l, print the author of each file
-b, --escape print C-style escapes for nongraphic characters
--block-size=SIZE with -l, scale sizes by SIZE when printing them;
e.g., '--block-size=M'; see SIZE format below
-B, --ignore-backups do not list implied entries ending with ~
-c with -lt: sort by, and show, ctime (time of last
modification of file status information);
with -l: show ctime and sort by name;
otherwise: sort by ctime, newest first
-C list entries by columns
--color[=WHEN] color the output WHEN; more info belowBash-ի հրահանգների պատմությունը
Բաշ շելլը հիշում է հրահանգների պատմությունը և թույլ է տալիս կրկին օգտագործել վերջերս կիրառված հրահանգները։ Բազմաթիվ դիստրիբուտիվներ հիշում են վերջին 1000 հրահանգները, որոնք օգտագործվել են օգտագործողի կողմից։ Իրականում, այն հրահանգների քանակը, որոնք հիշում է շելլը, որոշվում է համակարգի փոփոխականով՝ HISTSIZE։ Պատմությունը (վերջին 1000 հրահանգները) պահվում է .bash_history ֆայլում՝ յուրաքանչյուր օգտագործողի տնային կատալոգում։ Այդ ամբողջ պատմությունը տեսնելու համար կարելի է բացել այս ֆայլը կամ պարզապես օգտագործել history հրահանգը՝ տերմինալում.
history
1 ls
2 ls -l
3 ls /usr/
4 ls -l /usr
5 ls --help
6 history
Linux-ը թույլ է տալիս կրկնել հրահանգը, օգտագործելով դրա համարը պատմության մեջ։ Օրինակ, 4-րդ համարում ցուցադրված է ls -l /usr հրահանգը։ Այդ հրահանգը կրկնելու համար պետք է գրել !4
!4
ls -l /usr
total 148
drwxr-xr-x 2 root root 61440 Mar 4 19:40 bin
drwxr-xr-x 2 root root 4096 Oct 16 13:38 games
...
Եթե ցանկանում եք մաքրել ամբողջ պատմությունը, կարող եք օգտագործել history -c հրահանգը։
Ինֆորմացիոն հրահանգներ
Համակարգի մասին տեղեկատվություն ստանալ
uname: Այս հրահանգը օգտագործվում է օպերացիոն համակարգի և համակարգի հոստի անվան մասին տեղեկատվություն ցուցադրելու համար։ Այս հրահանգը նաև կարող է ցուցադրել սարքավորման տեսակն, օպերացիոն համակարգի տարբերակը և kernel-ի տարբերակի համարի մասին տվյալներ։
┌─[superuser@parrot]─[~]
└──╼ $uname
Linux
┌─[superuser@parrot]─[~]
└──╼ $
uname հրահանգը կարող է ընդունել տարբեր պարամետրեր՝ ելքային տվյալները կոնկրետացնելու համար։ Օրինակ, -a պարամետրը ցուցադրում է ամբողջ տեղեկատվությունը՝ ներառյալ համակարգի անվանումը, հոստի անվանումը, kernel-ի տարբերակը և այլն։
┌─[superuser@parrot]─[~]
└──╼ $uname -a
Linux parrot 6.10.11-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.10.11-1parrot1 (2024-10-03) x86_64 GNU/Linux
┌─[superuser@parrot]─[~]
└──╼ $Ավելին, փոխարեն ամբողջական տեղեկատվություն ցուցադրելու, կարող ենք միայն որոշակի տվյալներ ցուցադրել՝ օգտագործելով հետևյալ օպցիաներից մեկը.
-s,--kernel-name: Ցուցադրում է kernel-ի անունը։-n,--nodename: Ցուցադրում է հոստի անվանումը։-r,--kernel-release: Ցուցադրում է kernel-ի թողարկման տարբերակը։-v,--kernel-version: Ցուցադրում է kernel-ի վերսիան։-m,--machine: Ցուցադրում է համակարգչի արխիտեկտուրան։-p,--processor: Ցուցադրում է պրոցեսորի տեսակն։-i,--hardware-platform: Ցուցադրում է սարքավորման պլատֆորմը։-o,--operating-system: Ցուցադրում է օպերացիոն համակարգը։
hostnamectl
hostnamectl հրահանգը ցուցադրում և փոխում է համակարգի հոստի անվանումը, ինչպես նաև թույլ է տալիս դիտել համակարգի տարբեր պարամետրեր:
superuser@parrot:~$ hostnamectl
Static hostname: parrot
Icon name: computer-desktop
Chassis: desktop 🖥️
Machine ID: 1a2b3c4d5e6f0a1b3c0023ab75fd908a
Boot ID: d5e6f0a1b3c0a1a2b3c4d5e6f0a1c002
Operating System: Ubuntu 23.10
Kernel: Linux 6.5.0-21-generic
Architecture: x86-64
Hardware Vendor: ACER
Hardware Model: Acer Aspire Z3750
Firmware Version: 2313
date
date հրահանգը ցուցադրում է ներկայիս ամսաթիվը և ժամը։
┌─[superuser@parrot]─[~]
└──╼ $ date
Sat Nov 30 01:18:15 PM EST 2024
┌─[superuser@parrot]─[~]
└──╼ $
Այսպես, դուք կարող եք հեշտությամբ ստանալ համակարգի մասին օգտակար տեղեկություններ, որոնք օգտակար են ինչպես համակարգի կոնֆիգուրացիաներ կատարելու, այնպես էլ վերլուծություններ ու խնդիրներ լուծելու համար:
• Կիբեռանվտանգության հայալեզու ալիք ` https://t.me/onioncyberblog
• Python ծրագրավորման լեզվին նվիրված հայալեզու ալիք ` https://t.me/pyarmenia
Զգուշացում
Նյութը այլ տեղերում տարածելիս հղումը դեպի մեր ալիք պարտադիր է





Comments (0)