셸 소개, 명령 기록, 명령 완성 과 별명, 어댑터, 입 출력 재 설정

셸 소개
  • 셸 은 명령 해석 기 로 사용자 와 기계 간 의 상호작용 을 제공 합 니 다
  • 특정한 문법 을 지원 한다. 예 를 들 어 논리 적 판단, 순환
  • 모든 사용 자 는 자신의 특정한 셸
  • 을 가 질 수 있다.
  • CentOS 7 기본 셸 은 bash (Bourne Agin Shell)
  • 그리고 zsh, ksh 등
  • 명령 기록 history
    [root@localhost ~]# ls /root/.bash_history 
    /root/.bash_history
    [root@localhost ~]# 
  • 최대 1 천 개 를 저축한다.
  • [root@localhost ~]# echo $HISTSIZE
    1000
    [root@localhost ~]# 
    
  • 변수 HISTSIZE 가 / etc / profile 에서 수정
    vi /etc/profile
      
    HOSTNAME=`/usr/bin/hostname 2>/dev/null`
    HISTSIZE=1000
    if [ "$HISTCONTROL" = "ignorespace" ] ; then
        1000       5000
  • 변경 후 터미널 을 종료 하고 다시 들 어가 거나 source / etc / profile 을 사용 해 야 변경 할 수 있 습 니 다.
    [root@localhost ~]# echo $HISTSIZE
    1000
    [root@localhost ~]# source /etc/profile
    [root@localhost ~]# echo $HISTSIZE
    5000
    [root@localhost ~]# 
    
  • 변수 재 할당
  • HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
    [root@localhost ~]# history 
        1  ls
        2  ls /etc/passwd
        3  cat /etc/passwd
        4  [root@localhost ~]# cat /etc/passwd
        5  root:x:0:0:root:/root:/bin/bash
        6  bin:x:1:1:bin:/bin:/sbin/nologin
        7  daemon:x:2:2:daemon:/sbin:/sbin/nologin
        8  adm:x:3:4:adm:/var/adm:/sbin/nologin
        9  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    다시 할당 후
    [root@localhost ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
    [root@localhost ~]# history 
        1  2017/08/30 19:20:18 ls
        2  2017/08/30 19:20:18 ls /etc/passwd
        3  2017/08/30 19:20:18 cat /etc/passwd
        4  2017/08/30 19:20:18 [root@localhost ~]# cat /etc/passwd
        5  2017/08/30 19:20:18 root:x:0:0:root:/root:/bin/bash
        6  2017/08/30 19:20:18 bin:x:1:1:bin:/bin:/sbin/nologin
        7  2017/08/30 19:20:18 daemon:x:2:2:daemon:/sbin:/sbin/nologin
        8  2017/08/30 19:20:18 adm:x:3:4:adm:/var/adm:/sbin/nologin
    

    이 때 새로운 터미널 을 열 면 환경 변 수 는 유효 하지 않 습 니 다.
    이 환경 변 수 를 전역 에 적용 하려 면 / etc / profile 을 편집 하여 HISTTIMEFORMAT = "% Y /% m /% d% H:% M:% S" 를 추가 해 야 합 니 다.
    fi
    
    HOSTNAME=`/usr/bin/hostname 2>/dev/null`
    HISTSIZE=5000
    HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
    if [ "$HISTCONTROL" = "ignorespace" ] ; then
        export HISTCONTROL=ignoreboth
    

    source / etc / profile 후 적용
  • 명령 기록 영구 저장
    chattr +a ~/.bash_history

  • 추가 만 가능 삭제 불가
  • 정상적으로 종료 되 지 않 으 면 과거 기록 명령 저장 이 완료 되 지 않 습 니 다
  • !!
    마지막 과거 기록 명령 실행 표시
  • !n
    실행 기록 줄 수 명령 지정
  • !명령 하 다.
    명령 기록 에 이 명령 을 마지막 으로 입력 하 는 명령 을 표시 합 니 다.

  • 명령 완성 및 별명
  • tab 키, 두 드 려, 두 드 려
  • Centos 7 은 매개 변수 보완 을 지원 합 니 다. 기본적으로 안 됩 니 다. yum install - y bash - completion 을 설치 한 후에 시스템 을 다시 시작 해 야 합 니 다.
  • alias 별명, 명령 에 새 이름 지어 주기
  • [root@localhost ~]# alias restartnet='systemctl restart network.service'
    [root@localhost ~]# restartnet
    [root@localhost ~]# alias
    alias cp='cp -i'
    alias egrep='egrep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias grep='grep --color=auto'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias restartnet='systemctl restart network.service'
    alias rm='rm -i'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
    [root@localhost ~]# 
    

    alias 는 사용자 의 집 디 렉 터 리 에 있 는 bashrc 파일 에 존재 합 니 다.
    그리고 일부 존재 / etc / profile. d / 아래
    unalias 사용자 정의 별명 취소
    어댑터
    *
    [root@localhost ~]# ls
    111  1eer  1.txt  2.txt  anaconda-ks.cfg  erwe
    [root@localhost ~]# ls *.txt
    1.txt  2.txt
    [root@localhost ~]# 
    [root@localhost ~]# ls 1*
    1eer  1.txt
    
    111:
    [root@localhost ~]# ls *1*
    1eer  1.txt
    
    111:
    [root@localhost ~]# 
    

    ?
    물음표
    [root@localhost ~]# ls ?.txt
    1.txt  2.txt
    [root@localhost ~]# ls *.txt
    1.txt  2.txt  bbcc.txt  bb.txt
    [root@localhost ~]# 
    

    []
    선택 범위
    [root@localhost ~]# ls [123].txt
    1.txt  2.txt
    [root@localhost ~]# ls [0-9].txt
    1.txt  2.txt
    [root@localhost ~]# ls [1].txt
    1.txt
    [root@localhost ~]# ls [2].txt
    2.txt
    [root@localhost ~]# 
    

    {}
    또한 선택 범위 로 [] 와 차이 가 많 지 않 지만 중간 에 쉼표 가 있 습 니 다.
    [root@localhost ~]# ls {1,2}.txt
    1.txt  2.txt
    [root@localhost ~]# 
    

    입 출력 방향 변경
    >
    > 앞의 내용 을 삭제 하고 뒤의 내용 으로 바 꿉 니 다.
    >>
    > > 앞의 내용 을 뒤의 내용 에 추가 합 니 다.
    2>
    잘못된 정 보 를 파일 로 표시 합 니 다.
    [root@localhost ~]# fddd
    -bash: fddd:      
    [root@localhost ~]# fddd 2> 1.txt 
    [root@localhost ~]# cat 1.txt 
    -bash: fddd:      
    

    2>>
    오류 추가 방향 변경
    &>
    오류 와 정확 한 출력 방향 변경
    [root@localhost ~]# ls [12].txt asffsfs.txt &> 1.txt
    [root@localhost ~]# cat 1.txt 
    ls:     asffsfs.txt:          
    1.txt
    2.txt
    [root@localhost ~]# 
    

    <
    입력
    손잡이
    [root@localhost ~]# wc -l < 1.txt
    3
    [root@localhost ~]# 
    

    좋은 웹페이지 즐겨찾기