본문 바로가기

Linux

(25)
[bash] 쉘스크립트로 출력하기 (echo, printf 명령어) 어떤 프로그램이든 시작은 "Hello world"를 화면에 출력하는 것으로 시작한다. bash 쉘 스크립트로 "Hello world"를 화면에 띄우려면 어떻게 해야할까. 대표적으로 echo 명령어가 있다. echo 문자열이나 변수를 출력하는 명령어. 출력시 자동적으로 줄바꿈 처리를 해줌 문자열 출력하기 1 2 3 4 5 6 #!/bin/bash echo "Hello world" ### 출력 Hello world cs 변수 내용 출력하기 1 2 3 4 5 6 7 8 #!/bin/bash name="lim" org="dev" echo name: ${name}, org: ${org} ###출력 name: lim, org: dev cs 변수 name과 org에 값을 할당하고 echo로 찍은 예제이다. 산술 연산..
[Linux] 사용자 쉘 바꾸는 명령어 (chsh) 특정 유저가 로그인 했을때 사용되는 쉘을 따로 지정해줄 수 있다. ubuntu에서는 유저를 생성하면 기본적으로 /bin/sh로 설정이 되는 듯하다. $ cat /etc/passwd | grep user11 user11:x:1002:1002::/home/user11:/bin/sh 만약 user11에 대한 쉘을 변경하고 싶다면 아래와 같이 chsh 명령어를 통해서 바꿀 수 있다. $ sudo chsh -s /bin/bash user11 $ cat /etc/passwd | grep user11 user11:x:1002:1002::/home/user11:/bin/bash user11의 쉘이 /bin/sh에서 /bin/bash 쉘로 바뀐 것을 확인할 수 있다.
[python] list로 for문 돌면서 remove할때 주의할점 원래 리스트를 for 문을 돌면서 원소를 하나씩 제거하려고 했는데 원하는 대로 되지 않았다. 문제는 다음과 같았다. 리스트를 돌면서 원소를 제거할때 >>> l = [1, 2, 3, 4, 5] >>> >>> for i in l: ... print(i) ... l.remove(i) ... 1 3 5 리스트 l에 있는 원소를 for루프를 돌면서 지우기 위해 위와 같은 코드가 있다고 하면, 모든 원소를 루프를 돌지 않게 된다. 결국 l의 모든 원소는 모두 지워지지 않고 남는 원소들이 생긴다. >>> for i in range(0, len(l)): ... print(l[i]) ... 2 4 문제의 원인은 remove시 원본 리스트 데이터도 훼손되기 때문에 발생한다. 1번째 루프에서 0번째 원소 1을 지우므로 리스..
[Linux] 리눅스에서 파일 내용 삭제하는 명령어 (파일은 남겨두고) 리눅스에서 파일은 남겨두고 파일 내용만 삭제하고 싶은 경우가 있다. 그때 명령어는 아래와 같다. cat /dev/null > 파일명 예제 # a.txt에 아래와 같은 내용이 있었다. $ cat a.txt 123 234 345 # 파일 내용 비우기 $ cat /dev/null > a.txt # 내용이 없는 것을 확인할 수 있다. $ cat a.txt
[Linux] 리눅스 쉘로 파일 내용만 삭제하는 명령어 리눅스에서 파일은 그대로 두고 안에 내용만 삭제하고 싶을 때는 아래 명령어를 사용하면 된다. cat /dev/null > 파일명 예제 # cat fes.log 1 2 3 4 5 # cat /dev/null fes.log # cat fes.log fes.log 파일의 내용을 지우고 싶을때, 위 명령어를 사용하면 파일은 남고 내용은 지워진 것을 볼 수 있다.