{}
: 여러개# mkdir dir{A,B,C}
anaconda-ks.cfg Desktop dirA dirB dirC
# touch dir{A,B,C}/file{X,Y,Z}
# touch file{A,B,C,D}
anaconda-ks.cfg Desktop dirA dirB dirC fileA fileB fileC fileD
# ls -F ./ dirA dirB dirC
anaconda-ks.cfg Desktop/ dirA/ dirB/ dirC/ fileA fileB fileC fileD
dirA:
fileX fileY fileZ
dirB:
fileX fileY fileZ
dirC:
fileX fileY fileZ
uname
: 시스템 정보 출력# uname
Linux
# uname -a
Linux localhost.localdomain 3.10.0-1160.59.1.el7.x86_64 #1 SMP Wed Feb 23 16:47:03 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
# uname -s
Linux
# uname -r
3.10.0-1160.59.1.el7.x86_64
# uname -s -r
Linux 3.10.0-1160.59.1.el7.x86_64
# uname -sr
Linux 3.10.0-1160.59.1.el7.x86_64
# date
Tue Apr 5 16:49:02 KST 2022
# cal
April 2022
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
# cal 9 2015
September 2015
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
# ls
anaconda-ks.cfg Desktop
# ls -l /etc/hosts
-rw-r--r--. 1 root root 158 Jun 7 2013 /etc/hosts
cd
: 디렉토리 이동/
생략 가능[root@localhost /]# cd /var/log/samba/old
[root@localhost old]# cd /
[root@localhost /]# cd test
[root@localhost test]#
;
: 명령어 연결[root@localhost /]# date; uname
Tue Apr 5 17:16:38 KST 2022
Linux
[root@localhost /]# cal 9 2020; date; uname -a
September 2020
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tue Apr 5 17:16:56 KST 2022
Linux localhost.localdomain 3.10.0-1160.59.1.el7.x86_64 #1 SMP Wed Feb 23 16:47:03 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost /]#
mkdir –p /test
: 최상위 디렉토리 아래 test 디렉토리 생성
cd /test
: 생성한 test 디렉토리로 이동
pwd
: 현재 작업 디텍토리 확인
# mkdir -p /test
# ls
bin dev home lib64 mnt proc run srv test usr
boot etc lib media opt root sbin sys tmp var
# cd test
[root@localhost test]# cd /var/log/samba/old
[root@localhost old]# pwd
/var/log/samba/old
cd ~
: home으로 이동[root@localhost old]# cd ~
[root@localhost ~]# pwd
/root
[root@localhost ~]#
Ctrl
+ C
: 명령어 중지# sleep 500
# ls
# locale
Ctrl
+ D
: 파일의 끝
file1
에 Hello, Linux
라는 문구 입력# cat > file1
Hello, Linux <Enter>
<CTRL + D>
<
: 생략가능# cat < file1
Hello, Linux
실습
# cat > file1
Hello, Linux
# ls
anaconda-ks.cfg Desktop dirA dirB dirC file1 fileA fileB fileC fileD
# cat file1
Hello, Linux
# cat < file1
Hello, Linux
# cat > file2
Aloha, Linux
# cat file2
Aloha, Linux
[root@localhost ~]# mkdir dir{A,B,C}
[root@localhost ~]# pwd
/root
[root@localhost ~]# whoami
root
[root@localhost ~]# ls
anaconda-ks.cfg Desktop dirA dirB dirC Downloads VBoxLinuxAdditions.run
[root@localhost ~]# touch dir{A,B,C}/file{X,Y,Z}
[root@localhost ~]# ls dirA
fileX fileY fileZ
[root@localhost ~]# touch file{A,B,C,D}
[root@localhost ~]# ls
anaconda-ks.cfg dirA dirC fileA fileC VBoxLinuxAdditions.run
Desktop dirB Downloads fileB fileD
[root@localhost ~]# ls -F ./ dirA dirB dirC
./:
anaconda-ks.cfg dirA/ dirC/ fileA fileC VBoxLinuxAdditions.run*
Desktop/ dirB/ Downloads/ fileB fileD
dirA:
fileX fileY fileZ
dirB:
fileX fileY fileZ
dirC:
fileX fileY fileZ
>
: 입력 + <Ctrl + D><
: 출력 (생략가능)[root@localhost ~]# cat > file1
Hello, Linux
[root@localhost ~]# cat < file1
Hello, Linux
Ctrl + D
# mkdir –p /test #최상위 디렉토리 아래 test 디렉토리 생성
# cd /test #생성한 test 디렉토리로 이동
# pwd #현재 작업 디텍토리 확인
/test
# cat > file1 # 파일에 내용 입력
Hello, Linux <Enter>
<CTRL + D> # “파일의 끝”의미
# cat file1 # 입력된 파일 내용 확인
Hello, Linux
Ctrl + U
# find / -name core -type f <CTRL + U>
Ctrl + W
# find / -name core -type f <CTRL + W>
# find / -name core -type <CTRL + W> <CTRL + W>
# find / -name <CTRL + W>
Ctrl + S
# du –a /
Ctrl + Q
# du –a /
CTRL + C
# du –a /
# man uname
# man ls
# man -k calendar
cal (1) - display a calendar
현재 작업 디렉토리 확인
# pwd
디렉토리 내용 확인
# ls
# ls dirA
# ls /var/log
숨겨진 파일 보기
.
으로 시작하는 파일# ls -a
개별 디렉토리 확인
# ls -l
# ls -l dirA
# ls -ld dirA
# ls -l /dev
디렉토리 하위 목록 보기
# ls -R
# ls -R dirA
파일 종류 확인
# ls -F
# ls -F /bin/uname
/bin/uname*
*
: 실행파일
/
: 폴더
# file dirA
dirA: directory
# file /var/log/maillog
/var/log/maillog: ASCII text
# file /bin/uname
/bin/uname: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=520fab7250b1fd254767861e67b70ae401d0288b, stripped
# file VBoxLinuxAdditions.run
VBoxLinuxAdditions.run: data
# file fileA
fileA: empty
# cat > fileA
Hello World
# file fileA
fileA: ASCII text
# file /dev/sda
/dev/sda: block special
디렉토리 변경
# cd /root/dirA #절대경로
# cd dirA #상대경로
# cd .. #상위폴더로
# cd dirA #dirA로
# cd ../dirA #상위폴더로 이동 후 dirA로
# cd /root/dirA #위와 동일
# cd ../.. #최상위폴더로
# cd ~ #홈으로
# cd - #위와 동일
# cd #위와 동일
# cd ~/dirA #홈으로 이동 후 dirA로
# cd -/dirA #오류!!
# cd .
# cd ./
bash command
# cat /etc/ssh/sshd_config
# more /etc/ssh/sshd_config
# echo -e "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15" > numbers
# cat numbers
# head numbers
# head -5 numbers
# tail -3 numbers
more : 일부분만 출력하고 나머지 more...
echo : 입력
>
: 방향성 화살표>
numbers 파일 생성# wc /etc/ssh/sshd_config
139 476 3907 /etc/ssh/sshd_config #line / word / byte
# wc -c /etc/ssh/sshd_config
3907 /etc/ssh/sshd_config #bytes
# wc -m /etc/ssh/sshd_config
3907 /etc/ssh/sshd_config #chars
# wc -l /etc/ssh/sshd_config
139 /etc/ssh/sshd_config #lines
# wc -w /etc/ssh/sshd_config
476 /etc/ssh/sshd_config
-c
: print the byte counts-m
: print the character counts-l
: print the newline counts-L
: print the length of the longest line-w
: print the word counts파일 복사
-i
: interative# ls -F
# cp fileA fileAA
# ls -F
# ls -F dirC
# cp fileA fileAA dirC
# ls -F dirC
# cp -i fileA fileAA
cp: overwrite ‘fileAA’?
디렉토리 복사
-r
: copy directories recursively# cp dirC dirCC #오류!!
# cp -r dirC dirCC
파일 이동
# ls -F dirC
# mv fileD dirC
# ls -F dirC
디렉토리 이동
# ls -F
# ls -F dirC
# mv dirCC dirC
# ls -F
# ls -F dirC
빈 파일 생성
# touch dirC/touch_file
# ls -F dirC
# touch makeA makeB makeC
# ls -F
디렉토리 생성
# mkdir dirX
# ls -ld dirX
# mkdir dirY/dirZ #오류!!
mkdir: cannot create directory ‘dirY/dirZ’: No such file or directory
# mkdir -p dirY/dirZ
# ls -F
# ls -F dirY
# mkdir dirU dirV
파일 이름 변경
# mv fileAA fileF
# ls -F
디렉토리 이름 변경
# mv dirX dirD
# ls -F
파일 삭제
# rm makeA
# rm makeB makeC
빈 디렉토리 삭제
# rmdir dirD
# ls -F
# ls -F dirC
# rmdir dirC
# rm -r dirC
-r
/ -rf
사용# touch dirD/test.txt
# rm dirD
rm: cannot remove ‘dirD’: Is a directory
# rm -r dirD
rm: descend into directory ‘dirD’? y
rm: remove regular empty file ‘dirD/test.txt’? y
rm: remove directory ‘dirD’? y
# rm -rf dirD
상호 연결을 통해 디스크를 효율적으로 사용
하드 링크 (디스크 공유)
i
: index # ls -il /bin/cd
201327765 -rwxr-xr-x. 1 root root 26 Nov 25 01:33 /bin/cd
# ls -il /usr/bin/cd
201327765 -rwxr-xr-x. 1 root root 26 Nov 25 01:33 /usr/bin/cd
# ls -il fileA
# ln fileA hardA
# ls -il fileA hardA
135405047 -rw-r--r--. 2 root root 12 Apr 6 16:30 fileA
135405047 -rw-r--r--. 2 root root 12 Apr 6 16:30 hardA
>
: 기존 문구가 새 문구를 대체>>
: 기존 문구에 새 문구# echo hello > fileA
# cat fileA
hello
# cat hardA
hello
# echo world > hardA
# cat hardA
world
# cat fileA
world
# echo hello > fileA
# cat hardA
hello
# echo world >> hardA
# cat hardA
hello
world
# rm -f hardA
# cat fileA
hello
world
심볼릭 링크 (바로가기)
# ln -s fileA symbolA
# ls -il fileA symbolA
135405047 -rw-r--r--. 1 root root 12 Apr 7 10:31 fileA
135405041 lrwxrwxrwx. 1 root root 5 Apr 7 10:43 symbolA -> fileA
# echo aloha > fileA
# cat symbolA
aloha
# rm -rf fileA
# ls -il
# cat symbolA
cat: symbolA: No such file or directory
# rm -rf symbolA
grep 명령어
# grep `root` /etc/passwd
-n
: 매칭되는 줄번호# grep -n `root` /etc/passwd
-v
: root만 제외하고 출력# grep -v `root` /etc/passwd
-l
: root라는 문구가 포함된 파일 출력# grep -l `root` /etc/*
-c
: root가 있는 줄 갯수 출력# grep -c `root` /etc/passwd
# useradd kosa
# grep `kosa` /etc/passwd
-w
: 단어 단위로 출력# grep -w `kosa` /etc/passwd
^
: kosa로 시작되는 부분만 출력# grep `^kosa` /etc/passwd
..
: k로 시작 a로 끝나는 부분 출력# grep `k..a` /etc/passwd
$
: login로 끝나는 부분 출력# grep `login$` /etc/passwd
egrep 명령어
|
: or
# egrep `N(o|e)+` /etc/passwd
# egrep `(root|kosa):x` /etc/passwd
# egrep -c `(svm|vmx)` /proc/cpuinfo
0
/
뒤에 경로 붙여도 됨# find / -name hosts
# find /etc -name hosts
f
: 파일
d
: 디렉토리
# find / -name hosts -type f
# find / -name hosts -type d
-exec rm {} \;
: 강제 삭제
-ok rm {} \;
: 대화형 삭제
# find / -name fileA -type f -exec rm {} \;
# find / -name fileC -type f -ok rm {} \;
< rm ... /root/fileC > ?
# find ~ -mtime -2
# find /usr/bin -size +3000000c -ls