පැරණි විධාන රේඛා මෙවලම් සමඟ වඩාත් නවීන විකල්ප භාවිතා කිරීමෙන්, ඔබට වඩාත් විනෝද වීමට සහ ඔබේ ඵලදායිතාව වැඩි දියුණු කළ හැකිය.
Linux/Unix හි අපගේ දෛනික වැඩ වලදී, අපි බොහෝ විධාන රේඛා මෙවලම් භාවිතා කරමු - උදාහරණයක් ලෙස, තැටි භාවිතය සහ පද්ධති සම්පත් නිරීක්ෂණය කිරීමට du. මෙම මෙවලම් සමහරක් දිගු කලක් තිස්සේ පවතී. උදාහරණයක් ලෙස, top දර්ශනය වූයේ 1984 දී වන අතර du හි පළමු නිකුතුව 1971 දක්වා දිව යයි.
වසර ගණනාවක් පුරා, මෙම මෙවලම් නවීකරණය කර විවිධ පද්ධති වෙත මාරු කර ඇත, නමුත් සාමාන්යයෙන් ඒවා ඔවුන්ගේ පළමු අනුවාද වලින් බොහෝ දුර ගොස් නැත, ඒවායේ පෙනුම සහ උපයෝගීතාව ද බොහෝ වෙනස් වී නැත.
මේවා බොහෝ පද්ධති පරිපාලකයින්ට අවශ්ය වන විශිෂ්ට මෙවලම් වේ. කෙසේ වෙතත්, ප්රජාව අතිරේක ප්රතිලාභ ලබා දෙන විකල්ප මෙවලම් සකස් කර ඇත. ඒවායින් සමහරක් නවීන, අලංකාර අතුරු මුහුණතක් ඇති අතර අනෙක් ඒවා භාවිතා කිරීමේ හැකියාව බෙහෙවින් වැඩි දියුණු කරයි. මෙම පරිවර්තනයේදී, අපි සම්මත Linux විධාන රේඛා මෙවලම් සඳහා විකල්ප පහක් ගැන කතා කරමු.
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 බොහෝ Linux වේදිකා සහ බෙදාහැරීම් සඳහා ලබා ගත හැකිය. උදාහරණයක් ලෙස, ඔබට එය ෆෙඩෝරා මත ස්ථාපනය කිරීමට dnf භාවිතා කළ හැක.
$ sudo dnf install ncdu
2. htop vs top
පෙරනිමියෙන් htop මේ ආකාරයට පෙනේ:
ඉහළ මෙන් නොව:
ඊට අමතරව, htop මඟින් පද්ධතිය පිළිබඳ දළ විශ්ලේෂණයක් ඉහළින් පෙන්වයි, සහ පහළින් ඇති ක්රියාකාරී යතුරු භාවිතයෙන් විධාන ක්රියාත්මක කිරීම සඳහා පැනලයක් පෙන්වයි. වින්යාස තිරය විවෘත කිරීමට F2 එබීමෙන් ඔබට එය වින්යාසගත කළ හැක. සැකසීම් තුළ, ඔබට වර්ණ වෙනස් කිරීමට, ප්රමිතික එක් කිරීමට හෝ ඉවත් කිරීමට, හෝ දළ විශ්ලේෂණ පැනල සංදර්ශක විකල්ප වෙනස් කිරීමට හැකිය.
top හි නවතම අනුවාද වල සැකසුම් වෙනස් කිරීමෙන් ඔබට සමාන උපයෝගීතාවයක් ලබා ගත හැකි වුවද, htop පහසු පෙරනිමි වින්යාසයන් සපයයි, එය වඩාත් ප්රායෝගික සහ භාවිතයට පහසු කරයි.
3. tldr vs මිනිසා
tldr විධාන රේඛා මෙවලම විධාන පිළිබඳ සරල උපකාරක තොරතුරු පෙන්වයි, බොහෝ විට උදාහරණ. එය ප්රජාව විසින් වර්ධනය කරන ලදී
tldr මිනිසා වෙනුවට ආදේශකයක් නොවන බව සඳහන් කිරීම වටී. එය තවමත් කැනොනිකල් සහ වඩාත් විස්තීර්ණ මෑන් පිටු ප්රතිදාන මෙවලම වේ. කෙසේ වෙතත්, සමහර අවස්ථාවලදී මිනිසා අතිරික්ත වේ. ඔබට විධානයක් පිළිබඳ සවිස්තරාත්මක තොරතුරු අවශ්ය නොවන විට, ඔබ එහි මූලික භාවිතයන් මතක තබා ගැනීමට උත්සාහ කරයි. උදාහරණයක් ලෙස, curl විධානය සඳහා වන man පිටුවේ පේළි 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 යනු "දිග වැඩියි; කියවා නැත": එනම්, එහි අධික වාචිකත්වය නිසා සමහර පෙළ නොසලකා හරින ලදී. මෙම මෙවලම සඳහා නම යෝග්ය වන්නේ මිනිසා පිටු ප්රයෝජනවත් වන අතර සමහර විට දිගු විය හැකි බැවිනි.
Fedora සඳහා, tldr ලියා ඇත්තේ Python වලින්. ඔබට එය dnf කළමනාකරු භාවිතයෙන් ස්ථාපනය කළ හැකිය. සාමාන්යයෙන්, මෙවලම ක්රියාත්මක වීමට අන්තර්ජාල ප්රවේශය අවශ්ය වේ. නමුත් Fedora හි Python සේවාදායකයා මෙම පිටු බාගත කර නොබැඳි ප්රවේශය සඳහා හැඹිලිගත කිරීමට ඉඩ දෙයි.
4.jq එදිරිව sed/grep
jq යනු විධාන රේඛාව සඳහා වන JSON ප්රොසෙසරයකි. එය sed හෝ grep ට සමාන වේ, නමුත් JSON දත්ත සමඟ වැඩ කිරීමට විශේෂයෙන් නිර්මාණය කර ඇත. ඔබ එදිනෙදා කාර්යයන් සඳහා JSON භාවිතා කරන සංවර්ධකයෙකු හෝ පද්ධති පරිපාලකයෙකු නම්, මෙය ඔබ සඳහා වන මෙවලමයි.
grep සහ sed වැනි සම්මත පෙළ සැකසුම් මෙවලම් වලට වඩා jq හි ඇති ප්රධාන වාසිය නම් එය 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 repository බහලුමක ගොනු සෙවීමේදී fd ස්වයංක්රීයව .git බහලුම ඇතුළුව සැඟවුනු ගොනු සහ උප බහලුම් බැහැර කරන අතර .gitignore ගොනුවෙන් Wildcards නොසලකා හරියි. සමස්තයක් වශයෙන්, එය පළමු උත්සාහයේදී වඩාත් අදාළ ප්රතිඵල ලබා දීමෙන් සෙවීම් වේගවත් කරයි.
පෙරනිමියෙන්, fd වත්මන් බහලුම තුළ වර්ණ ප්රතිදානය සමඟ සිද්ධි සංවේදී නොවන සෙවුමක් සිදු කරයි. සොයන්න විධානය භාවිතා කරන එකම සෙවුම විධාන රේඛාවේ අතිරේක පරාමිතීන් ඇතුළත් කිරීම අවශ්ය වේ. උදාහරණයක් ලෙස, වත්මන් නාමාවලියෙහි ඇති සියලුම .md (හෝ .MD) ගොනු සොයා ගැනීමට, ඔබ මෙවැනි සොයා විධානයක් ලිවිය යුතුය:
$ find . -iname "*.md"
fd සඳහා එය මේ වගේ ය:
$ fd .md
නමුත් සමහර අවස්ථාවලදී, fd සඳහා අමතර විකල්ප ද අවශ්ය වේ: නිදසුනක් ලෙස, ඔබට සැඟවුණු ගොනු සහ නාමාවලි ඇතුළත් කිරීමට අවශ්ය නම්, ඔබ -H විකල්පය භාවිතා කළ යුතුය, නමුත් මෙය සාමාන්යයෙන් සෙවීමේදී අවශ්ය නොවේ.
බොහෝ ලිනක්ස් බෙදාහැරීම් සඳහා fd තිබේ. Fedora හි එය පහත පරිදි ස්ථාපනය කළ හැකිය:
$ sudo dnf install fd-find
ඔබ කිසිවක් අත්හැරිය යුතු නැත
ඔබ නව Linux විධාන රේඛා මෙවලම් භාවිතා කරන්නේද? නැතහොත් ඔබ පැරණි ඒවා මත පමණක් වාඩි වී සිටිනවාද? නමුත් බොහෝ විට ඔබට සංයෝජනයක් තිබේ, හරිද? කරුණාකර අදහස් දැක්වීමේදී ඔබේ අත්දැකීම් බෙදා ගන්න.
දැන්වීම් ප්රචාරණ අයිතිවාසිකම්
අපගේ බොහෝ ගනුදෙනුකරුවන් දැනටමත් ප්රතිලාභ අගය කර ඇත එපික් සර්වර්!
මෙම
මූලාශ්රය: www.habr.com