Хуучин командын мөрийн хэрэгслүүдийн хажуугаар илүү орчин үеийн хувилбаруудыг ашигласнаар та илүү хөгжилтэй байж, бүтээмжээ ч сайжруулж чадна.
Linux/Unix дээрх өдөр тутмын ажилдаа бид командын шугамын олон хэрэгслийг ашигладаг - жишээлбэл, дискний хэрэглээ болон системийн нөөцийг хянахын тулд du. Эдгээр хэрэгслүүдийн зарим нь удаан хугацааны туршид бий болсон. Жишээлбэл, top 1984 онд гарч байсан бөгөөд du-гийн анхны хувилбар нь 1971 онд гарсан.
Олон жилийн туршид эдгээр хэрэгслүүдийг шинэчилж, өөр өөр системд шилжүүлсэн боловч ерөнхийдөө анхны хувилбараасаа хол хөндийрөөгүй, гадаад төрх байдал, ашиглах чадвар нь тийм ч их өөрчлөгдөөгүй байна.
Эдгээр нь олон системийн администраторуудад хэрэгтэй гайхалтай хэрэгслүүд юм. Гэсэн хэдий ч олон нийт нэмэлт ашиг тусыг санал болгодог өөр хэрэгслүүдийг боловсруулсан. Тэдгээрийн зарим нь орчин үеийн, үзэсгэлэнтэй интерфэйстэй байдаг бол зарим нь ашиглах чадварыг ихээхэн сайжруулдаг. Энэ орчуулгад бид Линуксийн стандарт командын мөрийн хэрэгслүүдийн таван хувилбарын талаар ярих болно.
1. ncdu vs du
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 нь олон Линукс платформ болон түгээлтийн хувьд боломжтой. Жишээлбэл, та үүнийг Fedora дээр албан ёсны репозитороос шууд суулгахын тулд dnf ашиглаж болно:
$ sudo dnf install ncdu
2. htop vs top
Анхдагч байдлаар htop дараах байдалтай байна:
Топоос ялгаатай нь:
Нэмж дурдахад, htop нь дээд хэсэгт системийн талаарх ерөнхий мэдээллийг, доод талд нь функцийн товчлууруудыг ашиглан тушаалуудыг ажиллуулах самбарыг харуулдаг. Та тохиргооны дэлгэцийг нээхийн тулд F2 товчийг дарж тохируулж болно. Тохиргоо дотроос та өнгийг өөрчлөх, хэмжүүр нэмэх, хасах эсвэл тойм самбарын дэлгэцийн сонголтыг өөрчлөх боломжтой.
Хэдийгээр та дээд хувилбарын хамгийн сүүлийн хувилбаруудын тохиргоог өөрчилснөөр үүнтэй төстэй ашиглах боломжтой боловч htop нь тохиромжтой анхдагч тохиргоог өгдөг бөгөөд энэ нь илүү практик, ашиглахад хялбар болгодог.
3. tldr vs man
tldr командын мөрийн хэрэгсэл нь командуудын тухай хялбаршуулсан тусламжийн мэдээллийг харуулдаг, гол төлөв жишээнүүд. Үүнийг олон нийт боловсруулсан
tldr бол хүнийг орлох зүйл биш гэдгийг тэмдэглэх нь зүйтэй. Энэ нь каноник бөгөөд хамгийн өргөн хүрээтэй хүн хуудас гаргах хэрэгсэл хэвээр байна. Гэсэн хэдий ч зарим тохиолдолд хүн илүүдэлтэй байдаг. Хэрэв танд командын талаар дэлгэрэнгүй мэдээлэл хэрэггүй бол та түүний үндсэн хэрэглээг санахыг л хичээж байна. Жишээлбэл, curl командын хүн хуудас нь бараг 3000 мөртэй. Curl-д зориулсан tldr хуудас нь 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 "хэт урт; уншаагүй": өөрөөр хэлбэл зарим бичвэрийг хэт нарийн бичсэний улмаас үл тоомсорлосон. Энэ хэрэгсэлд нэр нь тохиромжтой, учир нь хүн хуудаснууд нь ашигтай хэдий ч заримдаа хэтэрхий урт байж болно.
Федорагийн хувьд tldr нь Python дээр бичигдсэн. Та үүнийг dnf менежер ашиглан суулгаж болно. Ихэвчлэн энэ хэрэгсэл ажиллахын тулд интернет холболт шаарддаг. Гэхдээ Fedora-ийн Python клиент нь эдгээр хуудсыг татаж авах, офлайнаар нэвтрэх боломжийг олгодог.
4.jq vs 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 нь одоогийн директор дотор өнгөт гаралт бүхий жижиг үсгийн жижиг үсгийн хайлтыг гүйцэтгэдэг. Find командыг ашиглан ижил хайлт хийх нь тушаалын мөрөнд нэмэлт параметрүүдийг оруулахыг шаарддаг. Жишээлбэл, одоогийн директор доторх бүх .md (эсвэл .MD) файлуудыг олохын тулд та дараах байдлаар олох командыг бичнэ.
$ find . -iname "*.md"
fd-ийн хувьд дараах байдалтай байна.
$ fd .md
Гэхдээ зарим тохиолдолд fd нь нэмэлт сонголтуудыг шаарддаг: жишээлбэл, хэрэв та далд файл, лавлахыг оруулахыг хүсвэл -H сонголтыг ашиглах ёстой, гэхдээ энэ нь ихэвчлэн хайлт хийхэд шаардлагагүй байдаг.
fd нь олон Linux түгээлтийн хувьд боломжтой. Fedora-д үүнийг дараах байдлаар суулгаж болно.
$ sudo dnf install fd-find
Та юу ч орхих шаардлагагүй
Та Линуксийн шинэ командын мөрийн хэрэгслийг ашиглаж байна уу? Эсвэл зөвхөн хуучин дээр суудаг уу? Гэхдээ танд комбо байгаа байх, тийм үү? Сэтгэгдэл хэсэгт туршлагаа хуваалцана уу.
Сурталчилгааны эрх
Манай олон үйлчлүүлэгчид ашиг тусыг нь аль хэдийн үнэлдэг баатарлаг серверүүд!
энэ
Эх сурвалж: www.habr.com