ከቀድሞው የትእዛዝ መስመር መሳሪያዎች ጋር ይበልጥ ዘመናዊ አማራጮችን በመጠቀም የበለጠ መዝናናት እና ምርታማነትዎን እንኳን ማሻሻል ይችላሉ።
በሊኑክስ/ዩኒክስ ላይ በምናደርገው የእለት ተእለት ስራ ብዙ የትዕዛዝ መስመር መሳሪያዎችን እንጠቀማለን - ለምሳሌ ዱ የዲስክ አጠቃቀምን እና የስርዓት ሃብቶችን ለመቆጣጠር። ከእነዚህ መሳሪያዎች ውስጥ አንዳንዶቹ ለረጅም ጊዜ የቆዩ ናቸው. ለምሳሌ, top በ 1984 ታየ, እና ዱ ለመጀመሪያ ጊዜ የተለቀቀው በ 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
የቀስት ቁልፎችን በመጠቀም በመግቢያዎቹ ውስጥ ማሰስ ይችላሉ። አስገባን ከተጫኑ, 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 የሰው ምትክ እንዳልሆነ ልብ ሊባል ይገባል። እሱ አሁንም ቀኖናዊ እና በጣም አጠቃላይ የሰው ገጽ የውጤት መሣሪያ ነው። ይሁን እንጂ በአንዳንድ ሁኔታዎች የሰው ልጅ ብዙ ጊዜ ይባክናል. ስለ አንድ ትዕዛዝ አጠቃላይ መረጃ በማይፈልጉበት ጊዜ መሰረታዊ አጠቃቀሙን ለማስታወስ እየሞከሩ ነው። ለምሳሌ፣ ለጠመዝማዛ ትዕዛዝ የሰው ገጽ ወደ 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 ማለት "በጣም ረጅም; አላነበበም"፡ ማለትም፣ አንዳንድ ፅሁፎች ከልክ ያለፈ የቃላት አነጋገር ችላ ተብለዋል። ስሙ ለዚህ መሳሪያ ተስማሚ ነው ምክንያቱም የሰው ገፆች ጠቃሚ ቢሆኑም አንዳንድ ጊዜ በጣም ረጅም ሊሆኑ ይችላሉ.
ለ 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 የሚለውን አማራጭ መጠቀም አለቦት፡ ምንም እንኳን ይህ ሲፈለግ ብዙ ጊዜ አያስፈልግም።
fd ለብዙ ሊኑክስ ስርጭቶች ይገኛል። በ Fedora ውስጥ እንደሚከተለው ሊጫን ይችላል-
$ sudo dnf install fd-find
ምንም ነገር መተው የለብዎትም
አዲሱን የሊኑክስ የትእዛዝ መስመር መሳሪያዎችን እየተጠቀሙ ነው? ወይስ በአሮጌዎቹ ላይ ብቻ ተቀምጠዋል? ግን ምናልባት ጥምር ሊኖርህ ይችላል፣ አይደል? እባክዎን በአስተያየቶች ውስጥ የእርስዎን ተሞክሮ ያካፍሉ.
በቅጂ መብቶች ላይ
ብዙ ደንበኞቻችን ቀደም ሲል ጥቅሞቹን አድንቀዋል ኢፒክ አገልጋዮች!
ይህ
ምንጭ: hab.com