Bash 의 기본 특성
shell : shell distribution ; ; shell Linux , Linux shell 。
Shell , , 。
Linux Shell , :
Bourne Shell(/bin/sh)
Bourne Again Shell(/bin/bash)Linux shell
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
Bash
1
2
3
4
5
6
7 glob
8 I/O
9
10
11 bash
1 명령 기록
shell , 1000 ;
.bash_history 。
shell , shell .bash_history 。
shell ; “ ”
bash, , bash ( bash )
: ~/.bash_logout history , date
history
-c:
-d:
#: #
-a:
-n:
-r:
-w:
-p: ,
-s: ,
HISTSIZE :
HISTFILE : , ~/.bash_history
HISTFILESIZE :
HISTTIMEFORMAT=“%F %T“
HISTIGNORE=“str1:str2:… “ string1,string2
:HISTCONTROL
ignoredups , , “ ”
ignorespace
ignoreboth ignoredups, ignorespace
erasedups
export =" “
/etc/profile ~/.bash_profile
, 4 :
• ,
• !!
• !-1
• Ctrl+p
Ctrl + n :
!num: history
!-n : n
!string “string ”
!?string string
!string:p ,
!$:p !$
!*:p !*) ( )
^string string
^string1^string2 string1 string2
!!:gs/string1/string2 string1 string2
up ( ) down ( )
ctrl-r
• ( (reverse-i-search )`’: :
Ctrl+g :
:
!$
Esc, . ( Esc , . )
Alt+ . ( Alt . )
command !^ : cmd
command !$ : cmd
command !* : cmd
command !:n : n cmd
command !n:^ n
command !n:$ n
command !n:m n m
command !n:* n
command !string:^ string ,
command !string:$ string ,
command !string:n string , n
command !string:* string ,
2 명령 별명
, -- rm
:
# alias
:
# alias NAME='COMMAND'
: shell ; , shell
:
# unalias NAME
,
:~/.bashrc
:/etc/bashrc
bash
source /path/to/config_file
. /path/to/config_file
:unalias
unalias [-a] name [name ...]
-a
, ,
“\COMMAND”
’COMMAND’
/PATH/COMMAND
3 단축 키
Ctrl + l , clear
Ctrl + o ,
Ctrl + s ,
Ctrl + q
Ctrl + c ,
Ctrl + z
Ctrl + d exit
Ctrl + u ,
Ctrl + m Enter
Ctrl + a
Ctrl + e
Ctrl + f ( )
Ctrl + b ( )
Alt + f ( )
Alt + b ( )
Ctrl + xx
Ctrl + u
Ctrl + k
Ctrl + w
Ctrl + d
Ctrl + h
Ctrl + y
Ctrl + t
Alt + d
Alt + c
Alt + u
Alt + l
Alt + t
Alt + N , N
:Alt ,
4 명령 완성 과 경로 완성
:
shell , ;
:
(1) ;
(2) :
1、 $PATH , ;
2、 , ;
3、 , tab ;
4、 : ;
:
, :
:tab ;
:tab, tab ;
: ;
5 명령 행 전개
:$( ) ``
$ echo "This system's name is $(hostname ) "
This system's name is server1.example.com
$echo "i am `whoami ` "
i am root
~: , ;
;
~: ;
~USERNAME: ;
{}: , ;
:
/tmp/{a,b,c} /tmp/a /tmp/b /tmp/c
/tmp/{a,b}/z /tmp/a/z /tmp/b/z
6 명령 실행 상태 코드
:
:0
:1-255
bash $? :echo $?
7 glob 어댑터 man 7 glob
glob : ; ; ;
*: ;
?: ;
[ ]: ;
[a-z0-9]:
[0-9]:
[a-zA-Z]:
[a-z], [A-Z]: ;,
[^]: ,
[[:upper:]]: ;
[[:lower:]]: ;
[[:digit:]]: ;
[[:alpha:]]: ;
[[:alnum:]]: ;
[[:space:]]: ;
[[:punct:]]: ;
:
1、 /etc , , ;
ls -d /etc/[^[:alpha:]][a-z]* -d
2、 /etc , n , /tmp/etc ;
mkdir /tmp/etc
cp -r /etc/n*[^0-9] /tmp/etc/
3、 /usr/share/man , man , ;
ls -d /ur/share/man/man[0-9]
4、 /etc , p,m,r , .conf /tmp/conf.d ;
mkdir /tmp/conf.d/
cp -r /etc/[pmr]*.conf /tmp/conf.d/
8 I / O 리 셋 과 파이프
:
, ;
, ;
( /etc/crontab ) , ;
, 2> /dev/null ;
。
(stdin) : 0 , < <<
(stdout): 1 , > >>
(stderr): 2 , 2> 2>>
fd:file descriptor, , , ( )
shell :
# set -C
;
: “>|” ;
# set +C
;
:
(1) &>, &>> 2>&1 2>>&1
:/dev/null
:/dev/zero
() : STDOUT
( cal 2007 ; cal 2008 ) > all.txt
Here Document
COMMAND << EOF
COMMAND > /PATH/TO/SOMEFILE << EOF
: stdin
$ cat > catfile < ~/.bashrc
: standard error output
$ echo "error message" 1>&2
$ echo "error message" 2> /dev/null 1>&2
:cat catfile , eof ,
$ cat > catfile << "eof"
> This is a test.
> OK now stop
> eof <== , [ctrl]+d
|
COMMAND1 | COMMAND2 | COMMAND3 | …
standard output, standard error output
standard input
STDERR , 2>&1 |&
shell shell
-
, stdout stdin , ( tar) , stdin stdout "-" ,
# tar -cvf - /home | tar -xvf - -C /tmp/homeback #-C -C
/home , , stdout; , tar -cvf - /home tar -xvf - - stdout, , filename
9 변수
shell
10 bash 환경 에서 의 특수 기호
# : script , !
\ : 『 』
| (pipe): ( );
; : ( ! )
~
$ :
& (job control):
! 『 』 not !
/ :
>, >> : , 『 』 『 』
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.