나는 그것을 사용할 때마다 부작용으로 현재 날짜와 시간을 표시하기를 원합니다 ls
. 명령의 기능을 어떻게 변경할 수 있나요?
답변1
date
한 가지 옵션은 예를 들어 호출할 별칭을 만드는 것입니다 alias ls='date;ls'
. 예는 다음과 같습니다.
$ touch a b c
$ ls
a b c
$ alias ls='date;ls'
$ ls
Mon Oct 14 10:37:29 BST 2013
a b c
답변2
쉘에 대한 PS1 변수를 정의하십시오. 여기에서 쉘에서 원하는 모든 것을 볼 수 있습니다.
예:
export PS1="\t [\u@\h \W]\$ "
12:01:58 [user@host ~]$ ls /etc/fstab
/etc/fstab
12:02:00 [user@host ~]$ ls /etc/motd
/etc/motd
답변3
왜 이런 짓을 하는지 이해가 안 돼요. 실제로 달성하려는 목표를 공유하면 더 나은 솔루션을 찾는 데 도움이 될 수 있습니다.
제가 개인적으로 하는 일은 PS1 라인을 편집하는 것입니다. 내 PS1 라인은 프롬프트에 다음과 같은 많은 정보를 표시합니다.
보시다시피 날짜와 시간 외에도 많은 정보가 표시됩니다. PS1에서 날짜와 시간을 표시하려면 \@
표시 시간과 \d
표시 날짜를 추가하세요.
귀하의 질문에 명확하게 답 하려면 .bashrc
.~/.bashrc
alias ls='date && ls'
명령 작동 방식을 변경하고 싶지 않다고 말씀하셨습니다. 여기서는 반대처럼 보일 수도 있지만 별칭이 실제로 명령을 변경하지 않는다는 사실을 인식하려면 별칭이 어떻게 작동하는지 이해해야 합니다 ls
. 스크립트 내에서 ls를 실행하면 하위 쉘에서 명령이 호출되어 상위 쉘이 별칭 규칙을 적용하지 못하게 됩니다. 따라서 ls
출력 형식 변경으로 인해 스크립트 호출이 중단되지 않습니다.
편집: 다른 사람들이 PS1 시리즈 자체에 관심이 있을 수 있으므로 여기에서 자세한 내용을 확인할 수 있습니다.여기. 이는 매우 크고 디렉토리에 수천 개의 파일이 포함되어 있으면 셸 성능이 크게 저하된다는 점에 유의하세요.