Apa perintah alias ll untuk?

28

Dapatkah seseorang memberi tahu saya apa perintah terminal alias lluntuk? Yang bisa saya temukan online adalah banyak orang mengatakan itu alias ls -latau ls -laatau ls -ltr. Tapi itu salah. Hasilnya terlihat berbeda. Apakah ada cara untuk mencari lldan melihat sintaksnya?

Socrates
sumber

Jawaban:

76

Anda dapat menggunakan perintah aliasatau typeuntuk memeriksa apa artinya alias spesifik:

$ alias ll
alias ll='ls -alF'

$ type ll
ll is aliased to `ls -alF'

Perhatikan bahwa alias mungkin menggunakan alias lain, jadi Anda mungkin harus memeriksanya secara rekursif, misalnya dalam kasus ll, Anda juga harus memeriksa lsperintah yang dipanggil:

$ alias ls
alias ls='ls --color=auto'

$ type ls
ls is aliased to `ls --color=auto'

Jadi llsebenarnya berarti:

ls --color=auto -alF
Komandan Byte
sumber
10
Perhatikan bahwa dalam kasus umum, perintah dapat memiliki beberapa definisi simultan. type -a commandnameakan mengungkapkan semua - ini akan memberi tahu Anda jika perintahnya adalah satu atau lebih dari alias, fungsi, builtin atau satu atau lebih file yang dapat dieksekusi di PATH Anda, dengan urutan prioritas. Ini membantu dalam memahami mengapa, misalnya, membatalkan perintah tidak mengembalikan semuanya ke perilaku yang diharapkan.
Dijeda sampai pemberitahuan lebih lanjut.
Saya akan merekomendasikan alias ll='ls -lh'. Anda dapat menjalankan ls -ljika Anda menginginkan ukuran dalam byte alih-alih B / kiB / MiB / GiB yang ramah manusia.
Peter Cordes
13

lladalah alias yang didefinisikan dalam Anda ~/.bashrc, asalkan Anda tidak mengubahnya, itu adalah ls -alF:

$ grep ll= <~/.bashrc
alias ll='ls -alF'

Tiga opsi ini adalah:

  • -a, --all - jangan abaikan entri yang dimulai dengan.
  • -l - gunakan format daftar panjang
  • -F, --classify - append indikator (salah satu dari * / => @ |) ke entri

Sebagai

$ grep ls= <~/.bashrc
alias ls='ls --color=auto'

menunjukkan, lsitu sendiri lagi alias untuk ls --color=auto:

Dengan --color=auto, lsmemancarkan kode warna hanya ketika output standar terhubung ke terminal. The LS_COLORSvariabel lingkungan dapat mengubah pengaturan. Gunakan dircolors perintah untuk mengaturnya.

pencuci mulut
sumber
Tidak harus .bashrc. Jika Anda menggunakan shell yang berbeda, itu akan ditentukan dalam file .rc untuk shell itu -, cshrc, .tchshc, dan sebagainya.
jamesqf
@ jamesqf Saya pikir seseorang yang menggunakan shell yang berbeda juga tahu alias mana yang sudah ditentukan di dalamnya - saya mengambil pertanyaan tentang pengaturan default Ubuntu, di mana bashshell default untuk pengguna dan alias lldidefinisikan di /etc/skel/.bashrcmana disalin ke setiap baru direktori home pengguna. Tentu saja Anda dapat menggunakan file apa pun untuk menyimpan alias Anda sendiri - yang Anda butuhkan adalah sumbernya.
hidangan penutup
2
Tidak perlu mengarahkan ulang file ke grep, itu akan mengambil nama file sebagai argumen. Saat mengambil file startup akan membantu Anda menemukan di mana alias didefinisikan (kembali) (perhatikan bahwa file tersebut mungkin ada dalam file /etc- mengetahui bahwa Anda akan terhindar dari goresan kepala jika Anda menghapusnya dari file startup pengguna dan masih tetap ada atau bahkan mengubah perilakunya), jika Anda hanya ingin cepat tahu apa definisi itu, perintah alias , seperti disebutkan dalam jawaban yang diterima, akan melakukan pekerjaan itu.
Dijeda sampai pemberitahuan lebih lanjut.
@ DennisWilliamson Tidak perlu bashmembuka file, tapi jauh lebih baik! Kalimat terakhir dalam posting pertanyaan berbunyi Apakah ada cara untuk menemukan lldan melihat sintaksnya? , itulah jawaban jawaban saya.
hidangan penutup
3

Anda dapat melihat ~ / .bashrc Anda (atau beberapa file di mana alias Anda berada) atau Anda dapat menulis beberapa perintah ini di shell Anda:

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

Tetapi mengapa menggunakan find tanpa -nama ". *"? Karena Anda dapat memasukkan ini ke dalam .bashrc Anda

source bash_hacks # where the file bash_hacks, in your home directory can 
                  # contain the alias ll='ls -la etc etc'.

Karena "ll" itu adalah alias, itu tidak perlu yang hanya memiliki satu makna (ll = 'ls -alF --color'), Anda dapat alias "ll" seperti perintah lain seperti, saya tidak tahu, "rm" . Saya pikir ini lebih merupakan konvensi (produk dari kegunaan umum).

Tapi "ll" bisa berupa program yang disimpan di folder PATH Anda. Misalnya, jika Anda memiliki folder bernama "tempat sampah" di rumah Anda, buat skrip "ll" yang berisi sesuatu seperti

#!/bin/bash
ls -lhar

Tetapi, bagaimana jika PATH Anda telah diubah untuk menambahkan folder lain yang berisi perintah "ll" baru? Untuk informasi lebih menarik, Anda dapat melihat tautan berikut ke pertanyaan terkait.

Cuauhtli
sumber
0

Tidak perlu menguraikan ~ / .bashrc atau skrip lainnya. Anda dapat memeriksa nilai Anda saat ini dari semua alias mengetik aliasperintah di terminal. Ini akan membawa semua alias dengan definisi mereka ke layar Anda.

Serg Stetsuk
sumber
Halo dan selamat datang di askubuntu. Bagaimana jawaban ini menambahkan sesuatu ke yang diterima?
Bruni