별명은 어떤 명령입니까?


28

별칭 ll이 어떤 터미널 명령인지 알려줄 수 있습니까 ? 나는 온라인으로 찾을 수있는 것은 많은 사람들이이 별칭이라고 쓰여있는 말은 ls -lls -lals -ltr. 그러나 그것은 단순히 잘못입니다. 결과가 다르게 보입니다. ll구문 을 찾고 볼 수있는 방법이 있습니까?

답변:


76

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

10
일반적인 경우 명령에 여러 개의 동시 정의가있을 수 있습니다. type -a commandname모든 것을 공개합니다-명령이 PATH에서 하나 이상의 별명, 함수, 내장 또는 하나 이상의 실행 파일인지 여부를 우선 순위대로 알려줍니다. 예를 들어 명령의 별칭을 해제해도 명령이 예상 된 동작으로 완전히 돌아 가지 않는 이유를 이해하는 데 도움이됩니다.
추후 공지가있을 때까지 일시 중지되었습니다.

추천 alias ll='ls -lh'합니다. ls -l사람에게 친숙한 B / kiB / MiB / GiB 대신 바이트 단위의 크기를 원할 경우 실행할 수 있습니다 .
Peter Cordes

13

ll~/.bashrc변경하지 않은 경우에 정의 된 별칭입니다 ls -alF.

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

이 세 가지 옵션은 다음과 같습니다.

  • -a, --all –로 시작하는 항목을 무시하지 않습니다.
  • -l – 긴 목록 형식 사용
  • -F, --classify – 항목에 표시기 (* / => @ | 중 하나) 추가

같이

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

보여줍니다. ls자체는 다시 별칭입니다 ls --color=auto.

하여 --color=auto, ls컬러 코드를 방출 표준 출력 단자에 연결되어있는 경우에만. LS_COLORS환경 변수 설정을 변경할 수 있습니다. dircolors 명령을 사용하여 설정하십시오.


반드시 .bashrc는 아닙니다. 다른 쉘을 사용하는 경우 해당 쉘의 .rc 파일 (, cshrc, .tchshc 등)에 정의됩니다.
jamesqf

@ jamesqf 다른 쉘을 사용하는 사람도 미리 정의 된 별칭을 알고 있다고 생각합니다. 기본 우분투 설정에 대한 질문을 bash했습니다. 사용자의 기본 쉘은 어디에 있고 별칭 ll/etc/skel/.bashrc모든 새로운 폴더에 복사됩니다. 사용자의 홈 디렉토리. 물론 당신이 사용할 수 있는 자신의 별칭을 저장하는 파일을 - 당신이 필요로하는 모든이 소스입니다.
디저트

2
파일을로 리디렉션 할 필요는 없습니다 grep. 파일 이름을 인수로 사용합니다. 시작 파일을 가져 오는 동안 별명이 정의 된 위치 를 찾는 데 도움이 됩니다 (파일에있을 수 있음을 참고 /etc하십시오. 사용자 시작 파일에서 제거해도 여전히 머리가 긁히는 것을 방지 할 수 있습니다. 정의가 무엇인지 빨리 알고 싶다면 허용 된 답변에 언급 된 것처럼 alias 명령이 작업을 수행합니다.
추후 공지가있을 때까지 일시 중지되었습니다.

@DennisWilliamson 파일을 열 필요는 bash없지만 훨씬 좋습니다! 질문 게시물의 마지막 문장 은 구문 을 찾고 ll볼 수있는 방법이 있습니까?입니다. , 그것이 나의 대답입니다.
디저트

3

~ / .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

그러나 -name ". *"없이 find를 사용하는 이유는 무엇입니까? .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"은 다른 comand처럼 "ll"의 별명을 지정할 수 있습니다. . 나는 그것이 더 많은 관습 (공통의 제품)이라고 생각합니다.

그러나 "ll"은 PATH의 모든 폴더에 저장된 프로그램 일 수 있습니다. 예를 들어, 집에 "bin"이라는 폴더가 있다면 다음과 같은 것을 포함하는 "ll"스크립트를 만드십시오.

#!/bin/bash
ls -lhar

그러나 새 "ll"명령이 포함 된 다른 폴더를 추가하기 위해 PATH를 변경 한 경우 어떻게됩니까? 보다 흥미로운 정보는 관련 질문에 대한 다음 링크를 참조하십시오.


0

~ / .bashrc 또는 다른 스크립트를 구문 분석 할 필요가 없습니다. alias터미널에서 command를 입력하여 모든 별칭의 현재 값을 확인할 수 있습니다 . 정의 된 모든 별칭이 화면에 나타납니다.


안녕하세요. askubuntu에 오신 것을 환영합니다. 이 답변은 어떻게 받아 들일 수있는 것에 추가합니까?
Bruni

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.