/bin : 기본 명령어
/home : user home dir
/dev : 각종 디바이스 파일
/etc : config, passwd, rc.d 등
- /etc/shadow : 실제 패스워드 저장 장소
/proc : 프로세스 정보
- /proc/cpuinfo
/sbin : 관리자용
/tmp : temporary dir
/usr : source or programs
/var : 로그, ftp, spool, mail
20 : FTP
21 : FTP
22 : SSH / rsync / rcp
25 : SMTP - 메일 발송
110 : POP3 - 메일 수신
80 : HTTP
443 : HTTPS
tab : 자동완성
화살표 위, 아래 : 명령어 히스토리
! + 알파벳 : 알파벳이 들어간 가장 가까운 명령어 수행
!! : 바로 이전 명령어 수행
Ctrl + A, Ctrl + E : 맨 앞, 맨 뒤로 이동
리눅스에서 한글 사용을 위해 설치
dnf install glibc-langpack-ko -y
localedef -f UTF-8 -i ko_KR ko_KR.utf8
euc-kr로 되어있을 경우
iconv -c -f euc-kr -t utf-8 a.js > a1.js
touch : 수정없이 수정일 갱신
head / tail : 일부분만 출력
tail -f : 지켜보면서 출력
more / less : 페이지 업 다운 키로 불가능 / 가능
clear : 화면 비우기
echo : 출력
cd : 디렉토리 변경
mkdir / rmdir : 폴더 생성 / 삭제 (비어있을 때만)
cp / mv / rm : 복사 / 이동 / 삭제
find : 파일 찾기
whoami : user 이름
passwd 유저명 : 패스워드 변경
df : 디바이스 정보 (-h : 단위 정리)
du -sh * : 파일들이 사용하고 있는 메모리 사용량
free (-h) : 메모리 사용량
vmstat 1 : 1초에 한번씩 시스템 자원 정보 출력 (-a : active / inactive 정보 출력)
top : 작업관리자 (space bar 누르면 갱신, 숫자 1을 누르면 CPU 1, 2번으로 나누어서 보여줌) -h : 스레드 단위
ps : 현재 프로세스
ps -ef | grep nginx : nginx 프로세스
chmod : 파일 권한 변경
chown : 파일의 소유자 변경
ln -s : 목적지 링크명
su
groupadd 그룹명 : 그룹 생성
useradd (-g 그룹명) 유저명 : 유저 생성
userdel 유저명 : 유저 삭제
chage -l 유저명 : 유저의 암호 정보
chage -d 0 유저명 : 유저의 암호의 남은 날을 0으로 변경하여 변경하도록 요구 (짧거나 아이디를 포함하거나 기존 암호와 비슷하면 X)
grep : 특정 단어 찾기
egrep 단어 *.gz : 압축 파일 중에 단어 포함 파일 찾기
vi .vimrc : vi 에디터의 런타임 환경설정
set tabstop=4 # 탭 간격
set shiftwidth=4
set expandtab
set smartindent
set autoindent # 자동 들여쓰기
set number # 행 번호
set showmatch
env 환경 선언 - ex ) bash 환경으로 선언
#!/bin/bash
# 1 ~ 5 LOOP
for i in 1 2 3 4 5; do echo $i; done
# 1 ~ 100 LOOP
for i in {1..100}; do echo $i; done
# 무한루프, 1초에 한 번 ll 명령어 수행
while true; do ll; sleep1; done
# ls -f로 나온 파일명들을 하나씩 출력
for i in `ls -f`; do echo $i; done
#!/bin/bash
echo "t.sh>>>>>>>> $0 $1 $2 $#"
# $0 : 명령어
# $1 : 파라미터1
# $2 : 파라미터2
# $3 : 파라미터3
# $# : 파라미터 개수
문자: ==, !=
숫자: -gt(greater than), -eq(equal), -lt(less than), -ne (not equal), -le (less equal), -ge (greater equal)
파일: -f(파일), -d(디렉토리), -r(읽기 가능), -w(쓰기 가능), -x(실행 가능)
# $#이 1보다 작다면 파라미터가 없다는 뜻 => 파일 이름을 입력하라는 출력
# $#이 1보다 크거나 같다면 파라미터가 있으므로 해당 파일로 cat 수행
# 파일 이름이 디렉토리라면 경고 문구 출력
#!/bin/bash
if [ $# -lt 1 ]; then
echo "Usage : ./t.sh <file>"
exit 0
elif [ -d $1 ]; then
echo "Input filename only!!"
exit 0
fi;
cat $1
DATE = `date +%Y-%m-%d`
echo $DATE
# 2021-10-11
DATE = `date +%Y-%m-%d --date=yesterday` #하루 전
DATE = `date +%Y-%m-%d --date='1 day ago'` #하루 전
DATE = `date +%Y-%m-%d --date='2 day ago'` #이틀 전
DATE = `date +%Y-%m-%d --date='2 day'` #이틀 후
DT = `date +%Y-%m-%d --date='1 week ago'` #일주일 전
DT = `date +%Y-%m-%d --date='1 month ago'` #한 달 전
DT = `date +%Y-%m-%d --date='1 month'` #한 달 후
#!/bin/bash
declare -a arr # 배열 선언
arr=("aaa" "bbb" "ccc" 123)
echo $arr
echo ${arr[0]}
arr[4]="666"
echo ${arr[@]}
echo "${#arr} : ${#arr[@]}"
for i in ${arr[@]}; do echo $i; done
#!/bin/bash
echo "$0 $@ $#"
say_hello(){
echo "Hello $0 $@ by $2!!($#)"
}
say_hello "Kim" "Lee"
IFS : 필드 구분값
default 값은 공백
#!/bin/bash
for i in `ls -al`
do
echo $i
done
# IFS의 default 값이 공백이기 때문에 공백으로 구분되어 있는 모든 필드가 하나씩 따로 출력
#!/bin/bash
PRE_IFS=$IFS #기존 IFS 저장
IFS = (개행) #IFS를 개행으로 변경
for i in `ls -al`
do
echo $i
done
IFS=$PRE_IFS #기존 IFS로 다시 변경
# 개행을 기준으로 필드를 구분하기 때문에 하나의 파일, 디렉토리가 한줄로 출력
AWK : 특정 필드만 출력
#!/bin/bash
PRE_IFS=$IFS #기존 IFS 저장
IFS = (개행) #IFS를 개행으로 변경
for i in `ls -al`
do
echo $i | awk '{print $5" "$9}'
done
IFS=$PRE_IFS #기존 IFS로 다시 변경
# 개행을 기준으로 필드를 구분하기 때문에 하나의 파일, 디렉토리가 한줄로 출력
#5번째와 9번째 필드만 출력
#$5와 $9사이에 " "는 공백을 주기 위해 삽입
dnf or yum install cronie
[CentOS] CentOS 8 에러 해결 (yum, dnf, localtime) (0) | 2024.04.16 |
---|---|
[Linux] 리눅스 메시지 큐 관련 파라미터 설정 (0) | 2023.02.12 |