Бо истифода аз алтернативаҳои муосири муосир дар баробари абзорҳои кӯҳнаи сатри фармон, шумо метавонед лаззати бештаре дошта бошед ва ҳатто маҳсулнокии худро беҳтар кунед.
Дар кори ҳаррӯзаи худ дар Linux/Unix, мо бисёр асбобҳои сатри фармонро истифода мебарем - масалан, du барои назорат кардани истифодаи диск ва захираҳои система. Баъзе аз ин асбобҳо муддати тӯлонӣ вуҷуд доранд. Масалан, топ соли 1984 пайдо шуд ва аввалин нашри du ба соли 1971 рост меояд.
Дар тӯли солҳо, ин асбобҳо навсозӣ ва ба системаҳои гуногун интиқол дода шуданд, аммо дар маҷмӯъ онҳо аз версияҳои аввалини худ дур нарафтанд, намуди зоҳирӣ ва қобили истифодаашон низ чандон тағйир наёфтааст.
Инҳо абзорҳои олие мебошанд, ки ба бисёре аз маъмурони система ниёз доранд. Бо вуҷуди ин, ҷомеа асбобҳои алтернативӣ таҳия кардааст, ки манфиатҳои иловагӣ пешкаш мекунанд. Баъзеи онҳо интерфейси замонавӣ ва зебо доранд, дар ҳоле ки дигарон қобили истифодаро хеле беҳтар мекунанд. Дар ин тарҷума, мо дар бораи панҷ алтернатива ба асбобҳои стандартии сатри фармони Linux сӯҳбат хоҳем кард.
1. ncdu против ду
Истифодаи диски NCurses (
ncdu дискро таҳлил мекунад ва сипас натиҷаҳоро аз рӯи феҳристҳо ё файлҳои бештар истифодашаванда мураттаб мекунад, масалан:
ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help
--- /home/rgerardi ------------------------------------------------------------
96.7 GiB [##########] /libvirt
33.9 GiB [### ] /.crc
7.0 GiB [ ] /Projects
. 4.7 GiB [ ] /Downloads
. 3.9 GiB [ ] /.local
2.5 GiB [ ] /.minishift
2.4 GiB [ ] /.vagrant.d
. 1.9 GiB [ ] /.config
. 1.8 GiB [ ] /.cache
1.7 GiB [ ] /Videos
1.1 GiB [ ] /go
692.6 MiB [ ] /Documents
. 591.5 MiB [ ] /tmp
139.2 MiB [ ] /.var
104.4 MiB [ ] /.oh-my-zsh
82.0 MiB [ ] /scripts
55.8 MiB [ ] /.mozilla
54.6 MiB [ ] /.kube
41.8 MiB [ ] /.vim
31.5 MiB [ ] /.ansible
31.3 MiB [ ] /.gem
26.5 MiB [ ] /.VIM_UNDO_FILES
15.3 MiB [ ] /Personal
2.6 MiB [ ] .ansible_module_generated
1.4 MiB [ ] /backgrounds
944.0 KiB [ ] /Pictures
644.0 KiB [ ] .zsh_history
536.0 KiB [ ] /.ansible_async
Total disk usage: 159.4 GiB Apparent size: 280.8 GiB Items: 561540
Шумо метавонед бо истифода аз тугмаҳои тирча дар дохили сабтҳо ҳаракат кунед. Агар шумо Enter-ро пахш кунед, ncdu мундариҷаи директорияи интихобшударо намоиш медиҳад:
--- /home/rgerardi/libvirt ----------------------------------------------------
/..
91.3 GiB [##########] /images
5.3 GiB [ ] /media
Шумо метавонед ин асбобро истифода баред, масалан, муайян кунед, ки кадом файлҳо фазои бештари дискро ишғол мекунанд. Шумо метавонед бо пахш кардани тугмаи тирчаи чап ба феҳристи пешина гузаред. Бо ncdu шумо метавонед файлҳоро бо пахш кардани тугмаи d тоза кунед. Он пеш аз нест кардан тасдиқро талаб мекунад. Агар шумо хоҳед, ки хусусияти нест карданро барои пешгирӣ кардани талафоти тасодуфии файлҳои арзишманд ғайрифаъол кунед, имконоти -r-ро барои фаъол кардани режими дастрасии танҳо барои хондан истифода баред: ncdu -r.
ncdu барои бисёр платформаҳо ва дистрибюторҳои Linux дастрас аст. Масалан, шумо метавонед dnf-ро барои насб кардани он дар Fedora мустақиман аз анбори расмӣ истифода баред:
$ sudo dnf install ncdu
2. htop vs top
Бо нобаёнӣ htop чунин менамояд:
Баръакси боло:
Илова бар ин, htop маълумоти мухтасарро дар бораи система дар боло ва панел барои иҷро кардани фармонҳо бо истифода аз тугмаҳои функсионалӣ дар поён нишон медиҳад. Шумо метавонед онро бо пахшкунии F2 барои кушодани экрани конфигуратсия танзим кунед. Дар Танзимот, шумо метавонед рангҳоро тағир диҳед, нишондиҳандаҳоро илова ё хориҷ кунед ё имконоти намоиши панели умумиро тағир диҳед.
Ҳарчанд шумо метавонед бо тағир додани танзимоти версияҳои охирини боло қобилияти шабеҳро ба даст оред, htop конфигуратсияҳои мувофиқи пешфарзро таъмин мекунад, ки истифодаи онро амалӣ ва осонтар мекунад.
3. tldr против одам
Асбоби сатри фармони tldr маълумоти соддакардашудаи кӯмакро дар бораи фармонҳо, асосан мисолҳо нишон медиҳад. Он аз ҷониби ҷомеа таҳия шудааст
Бояд гуфт, ки тлдр ивазкунандаи одам нест. Он то ҳол воситаи каноникӣ ва мукаммалтарин воситаи баромади саҳифаи одам мебошад. Аммо, дар баъзе мавридҳо одам зиёдатист. Вақте ки ба шумо маълумоти ҳамаҷониба дар бораи фармон ниёз надоред, шумо танҳо кӯшиш мекунед, ки истифодаи асосии онро дар хотир доред. Масалан, саҳифаи ман барои фармони curl тақрибан 3000 сатрро дар бар мегирад. Саҳифаи tldr барои curl 40 сатр аст. Қисми он чунин менамояд:
$ tldr curl
# curl
Transfers data from or to a server.
Supports most protocols, including HTTP, FTP, and POP3.
More information: <https://curl.haxx.se>.
- Download the contents of an URL to a file:
curl http://example.com -o filename
- Download a file, saving the output under the filename indicated by the URL:
curl -O http://example.com/filename
- Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer:
curl -O -L -C - http://example.com/filename
- Send form-encoded data (POST request of type `application/x-www-form-urlencoded`):
curl -d 'name=bob' http://example.com/form
- Send a request with an extra header, using a custom HTTP method:
curl -H 'X-My-Header: 123' -X PUT http://example.com
- Send data in JSON format, specifying the appropriate content-type header:
curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234
... TRUNCATED OUTPUT
TLDR маънои "хеле дароз; нахондааст»: яъне баъзе матндо аз чидати муф-тадил буданаш нодида гирифта шудаанд. Ном барои ин асбоб мувофиқ аст, зеро саҳифаҳои man, гарчанде муфид бошанд ҳам, баъзан метавонанд хеле дароз бошанд.
Барои Fedora, tldr дар Python навишта шудааст. Шумо метавонед онро бо истифода аз менеҷери dnf насб кунед. Одатан, асбоб барои кор кардан дастрасии интернетро талаб мекунад. Аммо муштарии Python Fedora имкон медиҳад, ки ин саҳифаҳо барои дастрасии офлайн зеркашӣ ва кэш карда шаванд.
4.jq против sed/grep
jq протсессори JSON барои сатри фармон аст. Он ба sed ё grep монанд аст, аммо махсус барои кор бо маълумоти JSON тарҳрезӣ шудааст. Агар шумо таҳиягар ё мудири система бошед, ки JSON-ро дар вазифаҳои ҳаррӯза истифода мебарад, ин асбоб барои шумост.
Бартарии асосии jq нисбат ба абзорҳои стандартии коркарди матн ба монанди grep ва sed дар он аст, ки он сохтори додаҳои JSON-ро мефаҳмад ва ба шумо имкон медиҳад дар як ифода дархостҳои мураккаб эҷод кунед.
Масалан, шумо кӯшиш карда истодаед, ки дар ин файли JSON номҳои контейнерро пайдо кунед:
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"labels": {
"app": "myapp"
},
"name": "myapp",
"namespace": "project1"
},
"spec": {
"containers": [
{
"command": [
"sleep",
"3000"
],
"image": "busybox",
"imagePullPolicy": "IfNotPresent",
"name": "busybox"
},
{
"name": "nginx",
"image": "nginx",
"resources": {},
"imagePullPolicy": "IfNotPresent"
}
],
"restartPolicy": "Never"
}
}
Барои дарёфти номи сатр grep-ро иҷро кунед:
$ grep name k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox"
"name": "nginx",
grep ҳамаи сатрҳои дорои номи калимаро баргардонид. Шумо метавонед якчанд имконоти дигарро ба grep барои маҳдуд кардани он илова кунед ва барои пайдо кардани номҳои контейнер баъзе аз коркарди ифодаи муқаррариро истифода баред.
Барои ба даст овардани ҳамон натиҷа бо истифода аз jq, танҳо нависед:
$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"
Ин фармон ба шумо номи ҳарду контейнерро медиҳад. Агар шумо танҳо номи контейнери дуюмро ҷустуҷӯ кунед, индекси элементи массивро ба ифода илова кунед:
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"
Азбаски jq дар бораи сохтори маълумот медонад, он як натиҷаҳоро медиҳад, ҳатто агар формати файл каме тағир ёбад. grep ва sed метавонанд дар ин ҳолат дуруст кор накунанд.
jq вазифаҳои зиёд дорад, аммо барои тавсифи онҳо мақолаи дигар лозим аст. Барои маълумоти бештар лутфан тамос гиред
5. fd vs find
Масалан, ҳангоми ҷустуҷӯи файлҳо дар директорияи анбори Git, fd ба таври худкор файлҳо ва зеркаталогҳои пинҳоншударо, аз ҷумла директорияи .gitро истисно мекунад ва инчунин аломатҳои ҷонишинро аз файли .gitignore нодида мегирад. Умуман, он ҷустуҷӯро тавассути баргардонидани натиҷаҳои мувофиқтар дар кӯшиши аввал суръат мебахшад.
Бо нобаёнӣ, fd дар феҳристи ҷорӣ бо баромади ранг ҷустуҷӯи ба ҳарфи ҳарфро иҷро мекунад. Ҷустуҷӯи якхела бо истифода аз фармони ҷустуҷӯ ворид кардани параметрҳои иловагиро дар сатри фармон талаб мекунад. Масалан, барои пайдо кардани ҳама файлҳои .md (ё .MD) дар феҳристи ҷорӣ, шумо фармони find-ро чунин менависед:
$ find . -iname "*.md"
Барои fd он чунин менамояд:
$ fd .md
Аммо дар баъзе мавридҳо, fd инчунин имконоти иловагиро талаб мекунад: масалан, агар шумо хоҳед, ки файлҳо ва директорияҳои пинҳониро дохил кунед, шумо бояд опсияи -H -ро истифода баред, гарчанде ки ин одатан ҳангоми ҷустуҷӯ талаб карда намешавад.
fd барои бисёр тақсимоти Linux дастрас аст. Дар Fedora онро метавон чунин насб кард:
$ sudo dnf install fd-find
Шумо набояд аз чизе даст кашед
Оё шумо асбобҳои нави сатри фармони Linux-ро истифода мебаред? Ё шумо танҳо дар болои кӯҳна нишастаед? Аммо эҳтимоли зиёд шумо комбо доред, дуруст? Лутфан таҷрибаи худро дар шарҳҳо мубодила кунед.
Дар бораи ҳуқуқи реклама
Бисёре аз муштариёни мо аллакай фоидаҳоро қадр кардаанд серверҳои эпикӣ!
ин
Манбаъ: will.com