ใครสามารถบอกฉันว่านามแฝงคำสั่งเทอร์มินัลll
มีไว้เพื่ออะไร? ฉันทั้งหมดสามารถค้นหาออนไลน์คือหลาย ๆ คนบอกว่ามันเป็นนามแฝงสำหรับls -l
หรือหรือls -la
ls -ltr
แต่นั่นก็ผิด ผลลัพธ์มีลักษณะที่แตกต่างกัน มีวิธีการค้นหาll
และดูไวยากรณ์ของมันหรือไม่
ใครสามารถบอกฉันว่านามแฝงคำสั่งเทอร์มินัลll
มีไว้เพื่ออะไร? ฉันทั้งหมดสามารถค้นหาออนไลน์คือหลาย ๆ คนบอกว่ามันเป็นนามแฝงสำหรับls -l
หรือหรือls -la
ls -ltr
แต่นั่นก็ผิด ผลลัพธ์มีลักษณะที่แตกต่างกัน มีวิธีการค้นหาll
และดูไวยากรณ์ของมันหรือไม่
คำตอบ:
คุณสามารถใช้alias
หรือtype
คำสั่งเพื่อตรวจสอบว่านามแฝงเฉพาะหมายถึงอะไร:
$ alias ll
alias ll='ls -alF'
$ type ll
ll is aliased to `ls -alF'
โปรดทราบว่านามแฝงอาจใช้นามแฝงอื่นดังนั้นคุณอาจต้องตรวจสอบซ้ำเช่นในกรณีที่ll
คุณควรตรวจสอบls
คำสั่งที่เรียก:
$ alias ls
alias ls='ls --color=auto'
$ type ls
ls is aliased to `ls --color=auto'
ดังนั้นll
จริงๆแล้วหมายถึง:
ls --color=auto -alF
alias ll='ls -lh'
ผมอยากแนะนำให้ คุณสามารถเรียกใช้ls -l
หากคุณต้องการขนาดเป็นไบต์แทนที่จะเป็น B / kiB / MiB / GiB ที่เป็นมิตรกับมนุษย์
ll
เป็นนามแฝงที่กำหนดไว้ในของคุณ~/.bashrc
หากคุณไม่ได้เปลี่ยนเป็นls -alF
:
$ grep ll= <~/.bashrc
alias ll='ls -alF'
สามตัวเลือกเหล่านี้คือ:
เช่น
$ grep ls= <~/.bashrc
alias ls='ls --color=auto'
แสดงว่าls
ตัวเองเป็นอีกชื่อแทนสำหรับls --color=auto
:
ด้วย
--color=auto
,ls
ปล่อยรหัสสีเฉพาะเมื่อเชื่อมต่อเอาท์พุทมาตรฐานกับเทอร์มินัลLS_COLORS
ตัวแปรสภาพแวดล้อมสามารถเปลี่ยนการตั้งค่า ใช้dircolors
คำสั่งเพื่อตั้งค่า
bash
เป็นเปลือกเริ่มต้นสำหรับผู้ใช้และนามแฝงll
ที่กำหนดไว้ใน/etc/skel/.bashrc
ที่ถูกคัดลอกลงทุกใหม่ โฮมไดเรกทอรีของผู้ใช้ แน่นอนคุณสามารถใช้ไฟล์ใดก็ได้เพื่อจัดเก็บชื่อแทนของคุณเอง - สิ่งที่คุณต้องมีก็คือแหล่งที่มา
grep
นั้นจะใช้ชื่อไฟล์เป็นอาร์กิวเมนต์ ในขณะที่การ grepping ไฟล์เริ่มต้นจะช่วยให้คุณค้นหาตำแหน่งที่นามแฝง (อีกครั้ง) กำหนดไว้ (โปรดทราบว่ามันอาจจะอยู่ในไฟล์โดย/etc
รู้ว่าจะช่วยให้คุณไม่ต้องเกาหัวถ้าคุณลบไฟล์นั้นออกจากไฟล์เริ่มต้นของผู้ใช้ การเปลี่ยนแปลงพฤติกรรมของมัน) ถ้าคุณเพียงแค่ต้องการได้อย่างรวดเร็วรู้ว่าสิ่งที่หมายคือนามแฝงคำสั่งตามที่ระบุไว้ในคำตอบที่ได้รับการยอมรับจะทำผลงานได้
bash
เปิดไฟล์ แต่มันดีกว่ามาก! ประโยคสุดท้ายในการโพสต์คำถามอ่านมีวิธีการค้นหาll
และดูไวยากรณ์ของมัน? นั่นคือสิ่งที่คำตอบของฉันตอบ
คุณสามารถดูใน ~ / .bashrc ของคุณ (หรือไฟล์บางไฟล์ที่ชื่อแทนของคุณ) หรือคุณสามารถเขียนคำสั่งเหล่านี้ในเชลล์ของคุณ:
command -v ll # "command" is a shell built-in that display information about
# the command. Use the built-in "help command" to see the
# options.
type -p ll # "type" is another built-in that display information about how the
# command would be interpreted
grep -r "alias ll=" ~ # and don't worry about de .file that contains your
# alias. This command search recursively under each
# folder of your home. So it's something rude.
find ~ -maxdepth 1 -type f | xargs grep "alias ll" # Just look in
# the files (not folders) in your home folder
แต่ทำไมต้องใช้ find โดยไม่มี -name ". *" สาเหตุที่คุณสามารถใส่สิ่งนี้ใน. bashrc ของคุณ
source bash_hacks # where the file bash_hacks, in your home directory can
# contain the alias ll='ls -la etc etc'.
เนื่องจาก "ll" เป็นนามแฝงจึงไม่ใช่สิ่งจำเป็นที่มีเพียงความหมายเดียว (ll = 'ls -alF --color') คุณจึงสามารถตั้งชื่อแทน "ll" เหมือนคำสั่งอื่นฉันไม่ทราบ "rm" . ฉันคิดว่ามันเป็นแบบแผนมากกว่า (ผลิตภัณฑ์ที่ใช้กันทั่วไป)
แต่ "ll" อาจเป็นโปรแกรมที่เก็บไว้ในโฟลเดอร์ใด ๆ ของ PATH ของคุณ ตัวอย่างเช่นหากคุณมีโฟลเดอร์ชื่อ "ถังขยะ" ในบ้านของคุณสร้างสคริปต์ "ll" ที่มีบางสิ่งบางอย่าง
#!/bin/bash
ls -lhar
แต่จะเกิดอะไรขึ้นถ้า PATH ของคุณถูกเปลี่ยนแปลงเพื่อเพิ่มโฟลเดอร์อื่นที่มีคำสั่ง "ll" ใหม่? สำหรับข้อมูลที่น่าสนใจเพิ่มเติมคุณสามารถดูลิงก์ต่อไปนี้เพื่อตอบคำถามที่เกี่ยวข้อง
ไม่จำเป็นต้องแยกวิเคราะห์ ~ / .bashrc หรือสคริปต์อื่น ๆ คุณสามารถตรวจสอบค่าปัจจุบันของalias
คำสั่งการพิมพ์ชื่อแทนทั้งหมดในเทอร์มินัล มันจะนำนามแฝงที่กำหนดไว้ทั้งหมดพร้อมคำจำกัดความของพวกเขาลงบนหน้าจอของคุณ
ls -la
มันควรจะเป็น ดู Linuxize.com:
https://linuxize.com/post/how-to-create-bash-aliases/
type -a commandname
จะเปิดเผยทั้งหมด - มันจะบอกคุณว่าคำสั่งเป็นหนึ่งในนามแฝง, ฟังก์ชั่น, builtin หรือไฟล์ปฏิบัติการหนึ่งไฟล์ขึ้นไปใน PATH ของคุณตามลำดับที่มาก่อน สิ่งนี้ช่วยในการทำความเข้าใจว่าทำไมยกตัวอย่างเช่นการยกเลิกคำสั่งไม่ได้ทำให้มันกลับไปสู่พฤติกรรมที่คาดหวัง