పాత కమాండ్ లైన్ సాధనాలతో పాటు మరింత ఆధునిక ప్రత్యామ్నాయాలను ఉపయోగించడం ద్వారా, మీరు మరింత ఆనందించవచ్చు మరియు మీ ఉత్పాదకతను కూడా మెరుగుపరచుకోవచ్చు.
Linux/Unixలో మా రోజువారీ పనిలో, మేము అనేక కమాండ్ లైన్ సాధనాలను ఉపయోగిస్తాము - ఉదాహరణకు, డిస్క్ వినియోగం మరియు సిస్టమ్ వనరులను పర్యవేక్షించడానికి du. ఈ సాధనాల్లో కొన్ని చాలా కాలంగా ఉన్నాయి. ఉదాహరణకు, టాప్ 1984లో కనిపించింది మరియు డు యొక్క మొదటి విడుదల 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 ప్లాట్ఫారమ్లు మరియు పంపిణీలకు అందుబాటులో ఉంది. ఉదాహరణకు, మీరు అధికారిక రిపోజిటరీల నుండి నేరుగా Fedoraలో దీన్ని ఇన్స్టాల్ చేయడానికి dnfని ఉపయోగించవచ్చు:
$ sudo dnf install ncdu
2. htop vs టాప్
డిఫాల్ట్గా htop ఇలా కనిపిస్తుంది:
ఎగువన కాకుండా:
అదనంగా, htop ఎగువన సిస్టమ్ గురించి స్థూలదృష్టి సమాచారాన్ని ప్రదర్శిస్తుంది మరియు దిగువన ఫంక్షన్ కీలను ఉపయోగించి ఆదేశాలను అమలు చేయడానికి ప్యానెల్. మీరు కాన్ఫిగరేషన్ స్క్రీన్ను తెరవడానికి F2 నొక్కడం ద్వారా దీన్ని కాన్ఫిగర్ చేయవచ్చు. సెట్టింగ్లలో, మీరు రంగులను మార్చవచ్చు, కొలమానాలను జోడించవచ్చు లేదా తీసివేయవచ్చు లేదా ఓవర్వ్యూ ప్యానెల్ డిస్ప్లే ఎంపికలను మార్చవచ్చు.
టాప్ యొక్క తాజా వెర్షన్ల సెట్టింగ్లను సర్దుబాటు చేయడం ద్వారా మీరు సారూప్య వినియోగాన్ని సాధించగలిగినప్పటికీ, htop అనుకూలమైన డిఫాల్ట్ కాన్ఫిగరేషన్లను అందిస్తుంది, ఇది మరింత ఆచరణాత్మకంగా మరియు ఉపయోగించడానికి సులభమైనదిగా చేస్తుంది.
3. tldr vs మనిషి
tldr కమాండ్ లైన్ సాధనం ఆదేశాల గురించి సరళీకృత సహాయ సమాచారాన్ని ప్రదర్శిస్తుంది, ఎక్కువగా ఉదాహరణలు. ఇది సంఘం ద్వారా అభివృద్ధి చేయబడింది
Tldr మనిషికి ప్రత్యామ్నాయం కాదని గమనించాలి. ఇది ఇప్పటికీ కానానికల్ మరియు అత్యంత సమగ్రమైన మ్యాన్ పేజీ అవుట్పుట్ సాధనం. అయితే, కొన్ని సందర్భాల్లో మనిషి అనవసరంగా ఉంటాడు. మీకు కమాండ్ గురించి సమగ్ర సమాచారం అవసరం లేనప్పుడు, మీరు దాని ప్రాథమిక ఉపయోగాలను గుర్తుంచుకోవడానికి ప్రయత్నిస్తున్నారు. ఉదాహరణకు, కర్ల్ కమాండ్ కోసం మ్యాన్ పేజీ దాదాపు 3000 లైన్లను కలిగి ఉంటుంది. కర్ల్ కోసం 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 పైథాన్లో వ్రాయబడింది. మీరు దీన్ని dnf మేనేజర్ని ఉపయోగించి ఇన్స్టాల్ చేయవచ్చు. సాధారణంగా, సాధనం ఆపరేట్ చేయడానికి ఇంటర్నెట్ యాక్సెస్ అవసరం. కానీ ఫెడోరా యొక్క పైథాన్ క్లయింట్ ఈ పేజీలను డౌన్లోడ్ చేసుకోవడానికి మరియు ఆఫ్లైన్ యాక్సెస్ కోసం కాష్ చేయడానికి అనుమతిస్తుంది.
4.jq vs 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 కనుగొను
ఉదాహరణకు, Git రిపోజిటరీ డైరెక్టరీలో ఫైల్ల కోసం శోధిస్తున్నప్పుడు, fd .git డైరెక్టరీతో సహా దాచిన ఫైల్లు మరియు సబ్ డైరెక్టరీలను స్వయంచాలకంగా మినహాయిస్తుంది మరియు .gitignore ఫైల్ నుండి వైల్డ్కార్డ్లను కూడా విస్మరిస్తుంది. మొత్తంమీద, ఇది మొదటి ప్రయత్నంలోనే మరింత సంబంధిత ఫలితాలను అందించడం ద్వారా శోధనలను వేగవంతం చేస్తుంది.
డిఫాల్ట్గా, fd ప్రస్తుత డైరెక్టరీలో కలర్ అవుట్పుట్తో కేస్-ఇన్సెన్సిటివ్ శోధనను నిర్వహిస్తుంది. ఫైండ్ కమాండ్ని ఉపయోగించి అదే శోధనకు కమాండ్ లైన్లో అదనపు పారామితులను నమోదు చేయడం అవసరం. ఉదాహరణకు, ప్రస్తుత డైరెక్టరీలో అన్ని .md (లేదా .MD) ఫైల్లను కనుగొనడానికి, మీరు ఇలాంటి ఫైండ్ కమాండ్ను వ్రాస్తారు:
$ find . -iname "*.md"
Fd కోసం ఇది ఇలా కనిపిస్తుంది:
$ fd .md
కానీ కొన్ని సందర్భాల్లో, fdకి అదనపు ఎంపికలు కూడా అవసరం: ఉదాహరణకు, మీరు దాచిన ఫైల్లు మరియు డైరెక్టరీలను చేర్చాలనుకుంటే, మీరు తప్పనిసరిగా -H ఎంపికను ఉపయోగించాలి, అయితే శోధిస్తున్నప్పుడు ఇది సాధారణంగా అవసరం లేదు.
అనేక Linux పంపిణీలకు fd అందుబాటులో ఉంది. ఫెడోరాలో దీన్ని ఇలా ఇన్స్టాల్ చేయవచ్చు:
$ sudo dnf install fd-find
మీరు దేనినీ వదులుకోవాల్సిన అవసరం లేదు
మీరు కొత్త Linux కమాండ్ లైన్ సాధనాలను ఉపయోగిస్తున్నారా? లేక పాత వాటిపై ప్రత్యేకంగా కూర్చుంటారా? కానీ చాలా మటుకు మీకు కాంబో ఉంది, సరియైనదా? దయచేసి మీ అనుభవాన్ని వ్యాఖ్యలలో పంచుకోండి.
ప్రకటనల హక్కులపై
మా ఖాతాదారులలో చాలా మంది ఇప్పటికే ప్రయోజనాలను ప్రశంసించారు పురాణ సర్వర్లు!
ఈ
మూలం: www.habr.com