현재 위치한 디렉토리의 경로 표시
a@test:~$ pwd /home/a
a@test:~/folder1$ pwd /home/a/folder1
현재 디렉토리 위치에서 새로운 디렉토리 생성
a@test:~$ mkdir folder2
현재 디렉토리의 파일 및 디렉토리 목록 출력
a@test:~$ ls folder1 test.txt
ls -옵션
ls -a : 숨김파일 및 디렉토리까지 출력 a@test:~$ ls -a . .. .bash_logout .bashrc .cache folder1 .profile .sudo_as_admin_successful text.txt
ls -l : 파일 및 디렉토리를 자세히 출력 a@test:~$ ls -l total 8 drwxrwxr-x 2 a a 4096 Oct 26 00:28 folder1 -rw-rw-r-- 1 a a 8 Oct 26 00:46 test.txt (권한)(포함된 파일 수)(소유자)(그룹)(파일크기)(수정일자)(파일이름)
ls -R : 현재 디렉토리에 있는 하위 디렉토리의 파일 및 디렉토리까지 출력 a@test:~$ ls -R .: folder1 test.txt ./folder1:
ls -h : 파일 크기의 단위값을 표시하여 출력 a@test:~$ ls -alh total 32K drwxr-xr-x 4 a a 4.0K Oct 26 00:47 . drwxr-xr-x 3 root root 4.0K Oct 25 23:33 .. -rw-r--r-- 1 a a 220 Feb 25 2020 .bash_logout -rw-r--r-- 1 a a 3.7K Feb 25 2020 .bashrc drwx------ 2 a a 4.0K Oct 25 23:34 .cache drwxrwxr-x 2 a a 4.0K Oct 26 00:28 folder1 -rw-r--r-- 1 a a 807 Feb 25 2020 .profile -rw-r--r-- 1 a a 0 Oct 25 23:35 .sudo_as_admin_successful -rw-rw-r-- 1 a a 8 Oct 26 00:46 test.txt (권한)(포함된 파일 수)(소유자)(그룹)(파일크기)(수정일자)(파일이름)
변경할 디렉토리 경로 지정
cd .. => 상위 디렉토리로 이동(상대경로)
cd ~ 사용자의 home 디렉토리로 바로 이동a@test:~$ cd folder1 a@test:~/folder1$ pwd /home/a/folder1 a@test:~/folder1$ cd .. a@test:~$ pwd /home/a a@test:/$ pwd / a@test:/$ cd ~ a@test:~$
파일 및 디렉토리 삭제
a@test:~$ rm test.txt
폴더의 경우 -r 옵션을 이용하여 삭제할 수 있음
(-r, recursively 재귀적 => 디렉토리에 속해있는 하위 디렉토리 또는 파일을 순차적으로 삭제함)a@test:~$ rm -r folder1
명령어에 대한 도움말 출력
a@test:~$ ls --help
a@test:~$ rm --help
help명령어와 유사하나 독립적인 페이지로써의 명령어에 대한 매뉴얼 제공
a@test:~$ man ls
파일 또는 디렉토리 복사 명령어
a@test:~$ cp test1.txt folder1 // test1.txt 파일을 folder1 디렉토리 안으로 복사
a@test:~$ cp -r folder1 folder2 // folder1 디렉토리를 folder2 디렉토리 안으로 복사 // 디렉토리 복사 시 -r옵션을 이용하여야 함 // folder1 에 복사한 test.txt 파일이 있기 때문에 해당 파일까지 복사하기 위함 a@test:~/folder2/folder1$ pwd /home/a/folder2/folder1 a@test:~/folder2/folder1$ ls test.txt
파일 또는 디렉토리 이동 또는 이름변경
이동할 디렉토리가 없으면 파일의 이름변경a@test:~$ mv test.txt folder1 a@test:~$ cd folder1 a@test:~/folder1$ ls test.txt
a@test:~$ mv test.txt test2.txt a@test:~$ ls folder1 folder2 test2.txt
슈퍼유저 권한으로 실행한다(super user do)라는 의미로 리눅스 시스템에 영향을 미치는 작업을 실행할 때 필요한 명령어
su: 슈퍼유저가 되기 위한a@test:~$ sudo apt-get install git
웹 사이트에 있는 파일 및 이미지 등을 다운 받을 수 있는 명령어
a@test:~$ wget http://kor.theasian.asia/wp-content/uploads/2019/06/6000220501_20090417.jpg
또는 다른 이름으로 저장 (-O 저장할이름)
a@test:~$ wget -O 5manwon.jpg http://kor.theasian.asia/wp-content/uploads/2019/06/6000220501_20090417.jpg
버전관리에 특화된 툴
github등을 통해 clone을 받아 사용할 수 있음a@test:~$ git clone https://github.com/facebook/react.git
두개 이상의 파일을 연결해서 출력할 때 사용, 하나의 파일만 출력도 가능
-n 옵션을 사용하여 행 번호를 붙혀 출력 가능a@test:~$ cat test.txt hi my name is linux a@test:~$ cat test2.txt aaaiii a@test:~$ cat test.txt test2.txt hi my name is linux aaaiii a@test:~$ cat -n test.txt 1 hi my name is linux
파일의 특정 행까지만 출력하기 위한 명령어 (-n 명령어를 통해 출력할 행을 결정 가능)
a@test:~$ head -n1 test3.txt total 184
입력과 출력의 방향을 제어하는 행위
(>) : output redirection (출력하는 방향, 1은 Standard output, 2는 Standard error)
(<) : input redirection (입력하는 방향)
(>>): append redirection (원래 있는 데이터를 유지하면서 뒷 부분에 내용을 추가)a@test:~$ ls -l 1> test3.txt (ls -l의 결과를 test3.txt파일로 저장) a@test:~$ ls -l >> test3.txt (ls -l의 결과를 test3.txt파일의 마지막에 추가로 저장) a@test:~$ rm test4.txt 2> error.log (test4.txt 파일이 없기 때문에 1>로 redirection하면 오류가 나기 때문에 2>로 error 출력) a@test:~$ cat < test3.txt (cat의 Standard Input으로 test3.txt를 입력) a@test:~$ cat test3.txt (cat의 인자로서 test3.txt를 전달)
파일의 위치를 찾기 위한 명령어
파일을 하나씩 검색하면서 찾는것이 아닌 DB에 저장되있는 경로를 확인하여 출력a@test:~$ locate *.log /home/a/error.log
파일의 위치를 찾기 위한 명령어
디렉토리를 지정하여 해당 디렉토리부터 하위디렉토리까지 직접 검색하여 경로를 확인하여 출력
(. = 현재 디렉토리부터 검색, ~ = 자신의 home 디렉토리부터 검색, / = root 디렉토리부터 검색)a@test:~$ find . -name *.log // 현재 디렉토리에서 하위 디렉토리까지 검색 ./error.log a@test:~$ find . -type f -name "test*.txt" // type지정, f는 파일 ./test2.txt ./test.txt ./folder2/folder1/test.txt ./test3.txt
명령어의 위치를 찾기 위한 명령어
명령어와 man파일의 위치까지 표시a@test:~$ whereis rm rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz
$PATH = 리눅스에서 만든 환경변수
whereis 명령어를 사용하면 $PATH에 있는 경로값을 모두 검색하여 찾고 싶은 명령어의 위치가 발견되면 실행 (: 콜론으로 경로를 묶음)a@test:~$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
현재 실행중인 프로세스를 출력
a@test:~$ ps PID TTY TIME CMD 1325 tty1 00:00:00 bash 1337 tty1 00:00:00 ps a@test:~$ ps -ef ...
현재 실행중인 프로세스를 백그라운드로 전환
'jobs' 명령어로 현재 백그라운드에 있는 프로세스 확인 가능
'fg' 명령어로 포그라운드로 다시 불러오기a@test:~$ jobs [1]+ Stopped vim a@test:~$ kill -9 %1 [1]+ Killed vim
id: 자신의 이름 및 속해있는 그룹 등을 표시
who: 현재 리눅스 시스템에 접속해 있는 유저 표시a@test:~$ id uid=1000(a) gid=1000(a) groups=1000(a), 4(adm), 24(cdrom), 27(sudo), 30(dip), 46(plugdev), 116(lxd) a@test:~$ who a tty1 2021-10-28 01:10
a@test:~$ sudo useradd -m b // b라는 사용자 생성 a@test:~$ sudo passwd b // b 사용자의 비밀번호 생성 a@test:~$ sudo adduser b sudo // b 사용자에게 sudo 권한을 부여 Adding user 'b' to group 'sudo'... Adding user b to group sudo Done. a@test:~$ su - b Password: $