[모범 사례 질문]
나는 방금 유닉스를 사용하기 시작했습니다. 몇몇 일반적인 작업(예: 심볼릭 링크 만들기 ln -s
또는 파일 이름 바꾸기) 이 직관적이지 않다는 것을 알았습니다.mv
내 별칭을 정의할지 여부에 대해 토론 중 입니다 .rename
symlink
이것이 나쁜 생각인가요? 왜 안 돼)?
노트:저는 시스템 관리를 하지 않고 단지 생산성을 높이기 위해 개인용 컴퓨터에서 UNIX 터미널을 사용합니다.
밝히다:내 말은 내 자신의 문법을 정의하는 것입니다어느직관적이지 않아 더 잘 이해할 수 있지만 내가 제어하는 컴퓨터에 고유한 내장 bash 명령(내 별칭에 액세스)
답변1
확실히 선호의 문제입니다. 제 생각에는 명령을 직접 배우는 것이 더 많은 장점이 있습니다.
- 일관성/신뢰성- 새 컴퓨터를 사용할 때마다,
ln
와 같은 명령어를 알아두면 도움이 됩니다.mv
돌아가서 설정을 찾거나 복사하거나 원하는 것을 찾는 것은 어렵지 않지만 기본 명령을 알면 항상 약간의 시간을 절약할 수 있습니다. 내장된 매뉴얼(man mv
)에 접근하는 것도 항상 이점이 됩니다. 또한 ;)ln -s
보다 키 입력 횟수 가 적습니다.symlink
- 학습능력/유연성- 기본 명령어를 익히고 동작 원리를 익히는데 중점을 두신 분명령으로, 다양한 플래그의 작동 방식, 서로 연결되는 방식 등을 이해하는 것이 더 쉬울 것입니다. 심볼릭 링크를 만드는 데 도움이 되지만
symlink
하드 링크를 만들거나 기존 파일을 바꾸려면ln
반드시 사용해야 합니다. 즉, 사용자 정의 별칭은 기본 명령만큼 유연하지 않습니다.
이러한 점을 염두에 두고 개별 명령을 별칭으로 바꾸지 않는 것이 좋습니다. 그러나 별칭 명령이 적합한 상황이 많이 있습니다. 몇 가지 예:
- 자주 수행하는 특정 작업- 예를 들어
scp -r /home/user/project/logs [email protected]~/logs/`date %F`
- 여러 명령을 하나로 묶는 작업- 예를 들어
cat /var/logs/websites | grep 502 > /home/user/logs/502
별칭을 최대한 활용하는 방법을 이해하는 데 도움이 되기를 바랍니다. 그러나 궁극적으로 그것은 귀하의 결정이며 연습을 통해 오래된 스택 교환 의견을 읽는 것보다 linux/unix에 대해 더 많이 배우게 될 것입니다. P 이러한 별칭을 만들고 1년 이내에 더 이상 필요하지 않게 바꾸는 것은 학습을 위한 훌륭한 선택입니다.
답변2
시작할 때 비슷한 문제가있었습니다.
나에게 가장 큰 문제는 이름과 옵션을 기억하는 것입니다. 한동안 사용하다 보면 익숙해집니다(제외 git
).
직감에 관해서. 명령이 수행하는 작업에 대한 잘못된 모델이 있으면 명령이 직관적이지 않습니다.
예를 들어
mv
이름을 바꾸는 대신 파일이 새 디렉토리 항목으로 이동됩니다. 이는 동일한 디렉토리의 새 이름, 다른 디렉토리의 동일한 이름 또는 다른 디렉토리의 다른 이름일 수 있습니다.
rm
삭제하지 마십시오. 디렉토리 항목이 삭제됩니다. 파일은 참조 횟수가 계산되는 가비지 수집기에 의해 삭제됩니다(파일에 디렉터리 항목이 없고 어떤 프로세스에서도 파일이 열리지 않는 경우).
별칭에 잘못된 이름을 선택하면 익히기가 더 어려워지고 오해와 오류가 발생할 수 있습니다.
답변3
단순함은 결국 편안해질 것입니다.
터미널에서 시간을 보내면(혼자서) 가장 일반적으로 사용되는 명령이 2자, 최대 3자 길이라는 것이 얼마나 편리한지 이해하게 될 것입니다. 그렇다면 당신은 타이핑에 대해 걱정하고 싶지 않다는 것을 깨닫고 symlink
타이핑의 단순성에 감사하게 될 것입니다 ln -s
. 특히 당신이 얘기할 때생산력, 마치 귀하의 질문이 신고된 것처럼 보입니다.
mv
ls
그리고 , , 같은 ln
프로그램 이름은 rm
실제로는 약어일 뿐입니다.쌀오V이자형.나나에스티,나나N케이와아르 자형이자형쌀더 쉽게 기억할 수 있도록 했습니다.
이는 니모닉이므로 심볼릭 링크에 대한 명령을 잊어버린 경우 "나나N케이에스상징적이다'라는 ln -s
말이 떠오른다.
별칭은 긴 명령을 짧게 만드는 것보다 긴 명령을 짧게 하면 유용할 것 같습니다.
답변4
어떤 시스템을 사용하고 있는지에 따라 다릅니다. 예를 들어 CentOS 8에서는 /etc/profile.d/global_alias.sh
SSH를 통해 로그인할 때마다 사용할 수 있는 전역 별칭을 추가할 수 있습니다 . 파일이 없으면 그냥 만드시면 됩니다. 세션에서 사용할 수 있도록 하려면 다시 연결해야 하며, 현재 세션에서만 활성화하려면 명령줄에 직접 입력해야 합니다. 이전 버전의 CentOS(RHEL)에서는 이를 파일에 넣을 수 있습니다 /root/.bashrc
.
파일에 다음을 넣을 수 있습니다.
alias clear="clear; printf '\033[3J' "
alias logs='cd /var/log/; clear; ll;'
alias edit='nano -w -S -T 4'
alias dirsize='du -h -x --max-depth=1'
개인적으로 저는 명령에 다른 이름을 부여하기 위해 심볼릭 링크를 만드는 대신 별칭을 사용합니다.