Linux용 특수 문자: 1. "#" 주석 문자, 2. 사용자의 홈 디렉터리를 나타내는 ";", "연속 명령" 기능을 수행하는 기호입니다. "/"는 경로 디렉터리 구분 기호입니다. 5. "", 이스케이프 문자 6. "|", 파이프 문자 7. "."는 현재 디렉터리를 나타냅니다. 9. "?"는 파일 이름의 모든 문자 일치를 나타내는 단일 문자 와일드카드를 나타냅니다. 모든 문자 등과 일치합니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
Linux 특수 기호 사용법 및 의미
#:
은 #으로 시작합니다. 이는 이 문장이 주석임을 의미합니다.
#!/bin/bash 常出现在命令之前,或者命令之后,后面是注释文字,不会被执行 #当输入的命令不想被执行时输入(#)就行了 #This line is comments.(这是一行注释)
위 단락이 무시되더라도 명령 기록에는 계속 추가됩니다.
더 강력한 접근 방식은 다음과 같습니다.
먼저 변수를 정의하고 "amazing alvin" 문자열을 할당합니다.
this_string="amazing alvin"
${this_string#amazing}은 놀라운 주석 처리가 포함된 this_string 문자열 변수를 반환합니다. 확인할 수 있습니다. 결과를 보기 위한 echo 출력:
echo awsome ${this_string#amazing}
amazing은 방금 주석 처리되었으며 삭제되지 않았습니다. 주석을 제거하면 다시 나타납니다.
echo $this_string
~
~는 사용자의 홈 디렉터리를 나타냅니다. 사용자의 개인 디렉토리인 홈 디렉토리를 참고하여 어디에 있든 cd를 입력하세요~집으로 이동합니다!
cd ~
더 발전된 방법은 뒤에 특정 경로를 추가하고 홈 디렉터리에서 지정된 위치를 직접 찾는 것입니다. 매우 편리하지 않나요?
cd ~/work/archive
;Semicolon
셸에서 "연속 명령" 기능을 수행하는 기호는 "세미콜론"입니다.
우리가 일상적으로 사용하는 ";"와 유사하므로 주로 명령어를 구분하는 데 사용됩니다.
ls > count.txt; wc -l count.txt; rm count.txt
여기서 명령을 ;로 구분하면 첫 번째 명령이 실패하더라도 두 번째 명령이 실행되고, 두 번째 명령이 실패하더라도 세 번째 명령이 실행된다는 점에 유의하세요.
명령이 실패했을 때 중지하려면 다음과 같이 "&&"를 사용하세요.
cd ./doesntexist && cp ~/Documents/reports/* .
;; 연속 세미콜론(터미네이터)
케이스 옵션에 특별히 사용되며 터미네이터 역할을 합니다.
case "$fop" inhelp) echo "Usage: Command -help -version filename";;version) echo "version 0.1" ;;esac
.dot
셸에서 사용자는 하나의 .
가 현재 디렉터리를 나타내고 두 개의 ..
가 상위 디렉터리를 나타낸다는 것을 모두 알아야 합니다
.
代表当前目录,两个 ..
代表上层目录
我们来看一下当前目录下的全部文件:
ls -al
红圈里的 . 就是指当前目录,不过这没什么意义,我们更多的是在命令中使用它,如下:
./script.sh
这样做是在告诉 bash 只要在当前目录中查找并执行 script.sh 文件就好了,不用在路径中找了。
假设我们要回到上一级目录:
cd ..
跟前面一样,你可以在它后面加具体的目录,这里的意思就是定位到与当前目录同级的其它目录:
cd ../projects/
‘string’ 单引号 (字符串单引号)
被单引号用括住的内容,将被视为单一字串。在引号内的代表变数的$符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换。
hello world=hello world echo '$hello world' # We get $hello world
“string” 双引号 (字符串双引号)
被双引号用括住的内容,将被视为单一字串。它防止通配符扩展,但允许变量扩展。这点与单引数的处理方式不同
heyyou=homeecho "$heyyou" # We get home
command(命令)
현재 디렉터리의 모든 파일을 살펴보겠습니다.
fdv=`date +%F`echo "Today $fdv"🎜
这个符号常运用在运算当中当做"区隔"用途。例touch f{1,2,3}🎜
ls ~/work/tests/🎜
cd /🎜🎜"string" 큰따옴표(문자열 큰따옴표)🎜🎜🎜큰따옴표로 묶인 내용은 단일 문자열로 처리됩니다. 와일드카드 확장은 방지하지만 변수 확장은 허용합니다. 이는 작은따옴표를 처리하는 방식과 다릅니다🎜
# type rmrm is aliased to `rm -i'# \rm ./*.log🎜🎜
명령어(command)
백틱(backtick)🎜🎜在前面的单双引号,括住的是字串,但如果该字串是一列命令列,会怎样?答案是不会执行。要处理这种情况,我们得用倒单引号来做。
fdv=`date +%F`echo "Today $fdv"
在倒引号内的 date +%F 会被视为指令,执行的结果会带入 fdv 变数中。
, 逗点 (comma,标点中的逗号)
这个符号常运用在运算当中当做"区隔"用途。例touch f{1,2,3}
/ 斜线 (forward slash):
在路径表示时,代表目录。通常单一的 / 代表 root 根目录的意思
斜杠 "/" 指的是路径目录分隔符,这里没什么好说的。
ls ~/work/tests/
但是,有意思的是,如果 / 路径目录分隔符前面没有东西的话,是不是就是意味着这是最上级的目录了?由于 Linux 系统的目录树均始于 / ,所以仅仅一个 / 代表了我们常说的系统根目录。
cd /
\ 倒斜线(转义符)
在交互模式下的escape 字元,有几个作用;放在指令前,有取消 aliases的作用;放在特殊符号前,则该特殊符号的作用消失;放在指令的最末端,表示指令连接下一行。
# type rmrm is aliased to `rm -i'# \rm ./*.log
上例,我在 rm 指令前加上 escape 字元,作用是暂时取消别名的功能,将 rm 指令还原。
# bkdir=/home# echo "Backup dir, \$bkdir = $bkdir"Backup dir,$bkdir = /home
上例 echo 内的 \$bkdir,escape 将 $ 变数的功能取消了,因此,会输出 $bkdir,而第二个 $bkdir则会输出变数的内容 /home。
| 管道 (pipeline)
pipeline 是 UNIX 系统,基础且重要的观念。连结上个指令的标准输出,做为下个指令的标准输入。
who | wc -l
善用这个观念,对精简 script(脚本) 有相当的帮助
! 感叹号(negate or reverse)
通常代表反逻辑的作用,比如条件侦测中用,!= 来代表"不等于"
ls f[!1-9]代表显示除了f0, f1 .... f9 这几个文件的其他文件
:冒号
在 bash 中,这是一个内建指令:"什么事都不干",但返回状态值 0
echo $? # 回应为 0 : > f.$$
上面这一行,相当于 cat /dev/null >f.$$。不仅写法简短了,而且执行效率也好上许多。
有时,也会出现以下这类的用法
: ${HOSTNAME?} ${USER?} ${MAIL?}
这行的作用是,检查这些环境变数是否已设置,没有设置的将会以标准错误显示错误讯息。像这种检查如果使用类似 test 或 if这类的做法,基本上也可以处理,但都比不上上例的简洁与效率。
除了上述之外,还有一个地方必须使用冒号
PATH=$PATH:$HOME/fbin:$HOME/fperl:/usr/local/mozilla
在使用者自己的HOME 目录下的 .bash_profile或任何功能相似的档案中,设定关于"路径"的场合中,我们都使用冒号,来做区隔。
? 问号 (wild card)
在文件名扩展(Filename expansion)上扮演的角色是匹配一个任意的字元,但不包含 null 字元。
# ls a?a1
星号 (wild card)
相当常用的符号。在文件名扩展(Filename expansion)上,她用来代表任何字元,包含 null 字元。
# ls a*a a1 access_log
在运算时,它则代表 "乘法"。
let "fmult=2*3"
除了内建指令 let,还有一个关于运算的指令expr,星号在这里也担任"乘法"的角色。不过在使用上得小心,他的前面必须加上escape 字元。
** 次方运算
两个星号在运算时代表 "次方" 的意思。
let "sus=2**3"echo "sus = $sus" # sus = 8
$ 美元
变量替换(Variable Substitution)的代表符号。
vrs=123echo "vrs = $vrs" # vrs = 123
另外,在 Regular Expressions 里被定义为 "行" 的最末端 (end-of-line)。这个常用在grep、sed、awk 以及 vim(vi) 当中。
${} 变量的正规表达式
bash 对 ${} 定义了不少用法。以下是取自线上说明的表列
${parameter:-word} ${parameter:=word} ${parameter:?word} ${parameter:+word} ${parameter:offset} ${parameter:offset:length} ${!prefix*} ${#parameter} ${parameter#word} ${parameter##word} ${parameter%word} ${parameter%%word} ${parameter/pattern/string} ${parameter//pattern/string}
$*
$* 引用script的执行引用变量,引用参数的算法与一般指令相同,指令本身为0,其后为1,然后依此类推。引用变量的代表方式如下:
$0, $1, $2, $3, $4, $5, $6, $7, $8, $9, ${10}, ${11}.....
个位数的,可直接使用数字,但两位数以上,则必须使用 {} 符号来括住
$* 则是代表所有引用变量的符号。使用时,得视情况加上双引号。
echo "$*"
还有一个与 $* 具有相同作用的符号,但效用与处理方式略为不同的符号
¥@
$@ 与 $* 具有相同作用的符号,不过她们两者有一个不同点。
符号 $* 将所有的引用变量视为一个整体。
但符号 $@ 则仍旧保留每个引用变量的区段观念。
$#
这也是与引用变量相关的符号,她的作用是告诉你,引用变量的总数量是多少。
echo "$#"
$? 状态值 (status variable)
一般来说,UNIX(linux) 系统的进程以执行系统调用exit()来结束的。这个回传值就是status值。回传给父进程,用来检查子进程的执行状态。
一般指令程序倘若执行成功,其回传值为 0;失败为 1。
tar cvfz dfbackup.tar.gz /home/user > /dev/nullecho"$?"$$
由于进程的ID是唯一的,所以在同一个时间,不可能有重复性的 PID。有时,script会需要产生临时文件,用来存放必要的资料。而此script亦有可能在同一时间被使用者们使用。在这种情况下,固定文件名在写法上就显的不可靠。唯有产生动态文件名,才能符合需要。符号$$或许可以符合这种需求。它代表当前shell 的 PID。
echo "$HOSTNAME, $USER, $MAIL" > ftmp.$$
使用它来作为文件名的一部份,可以避免在同一时间,产生相同文件名的覆盖现象。
ps: 基本上,系统会回收执行完毕的 PID,然后再次依需要分配使用。所以 script 即使临时文件是使用动态档名的写法,如果script 执行完毕后仍不加以清除,会产生其他问题。
( ) 指令群组 (command group)
用括号将一串连续指令括起来,这种用法对 shell 来说,称为指令群组。如下面的例子:(cd ~ ; vcgh=`pwd` ;echo $vcgh),指令群组有一个特性,shell会以产生 subshell来执行这组指令。因此,在其中所定义的变数,仅作用于指令群组本身。我们来看个例子
# cat ftmp-01#!/bin/basha=fsh(a=incg ; echo -e "\n $a \n")echo $a#./ftmp-01incgfsh
除了上述的指令群组,括号也用在 array 变数的定义上;另外也应用在其他可能需要加上escape字元才能使用的场合,如运算式。
(( ))
这组符号的作用与 let 指令相似,用在算数运算上,是 bash 的内建功能。所以,在执行效率上会比使用 let指令要好许多。
#!/bin/bash(( a = 10 ))echo -e "inital value, a = $a\n"(( a++))echo "after a++, a = $a"
{ } 大括号 (Block of code)
有时候 script 当中会出现,大括号中会夹着一段或几段以"分号"做结尾的指令或变数设定。
# cat ftmp-02#!/bin/basha=fsh{a=inbc ; echo -e "\n $a \n"}echo $a#./ftmp-02inbcinbc
这种用法与上面介绍的指令群组非常相似,但有个不同点,它在当前的 shell 执行,不会产生 subshell。
大括号也被运用在 "函数" 的功能上。广义地说,单纯只使用大括号时,作用就像是个没有指定名称的函数一般。因此,这样写 script也是相当好的一件事。尤其对输出输入的重导向上,这个做法可精简 script 的复杂度。
此外,大括号还有另一种用法,如下
{xx,yy,zz,...}
这种大括号的组合,常用在字串的组合上,来看个例子
mkdir {userA,userB,userC}-{home,bin,data}
我们得到 userA-home, userA-bin, userA-data, userB-home, userB-bin,userB-data, userC-home, userC-bin,userC-data,这几个目录。这组符号在适用性上相当广泛。能加以善用的话,回报是精简与效率。像下面的例子
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
如果不是因为支援这种用法,我们得写几行重复几次呀
[ ] 中括号
常出现在流程控制中,扮演括住判断式的作用。if [ "$?" != 0 ]thenecho "Executes error"exit1fi
这个符号在正则表达式中担任类似 "范围" 或 "集合" 的角色
rm -r 200[1234]
上例,代表删除 2001, 2002, 2003, 2004 等目录的意思
[[ ]]
这组符号与先前的 [] 符号,基本上作用相同,但她允许在其中直接使用 || 与&& 逻辑等符号。
#!/bin/bashread akif [[ $ak > 5 || $ak< 9 ]]thenecho $akfi
|| 逻辑符号
这个会时常看到,代表 or 逻辑的符号
&& 逻辑符号
这个也会常看到,代表 and 逻辑的符号
& 后台工作
单一个& 符号,且放在完整指令列的最后端,即表示将该指令列放入后台中工作。
tar cvfz data.tar.gz data > /dev/null&
单字边界
这组符号在规则表达式中,被定义为"边界"的意思。譬如,当我们想找寻 the 这个单字时,如果我们用
grep the FileA
你将会发现,像 there 这类的单字,也会被当成是匹配的单字。因为 the 正巧是 there的一部份。如果我们要必免这种情况,就得加上 "边界" 的符号
grep '\' FileA
- 加号 (plus)
在运算式中,她用来表示 "加法"。expr 1 + 2 + 3 此外在规则表达式中,用来表示"很多个"的前面字元的意思。 # grep '10\+9' fileB109100910000910000931010009#这个符号在使用时,前面必须加上escape 字元。
- 减号 (dash)
在运算式中,她用来表示 "减法"。 expr 10 - 2 此外也是系统指令的选项符号。 ls -expr 10 - 2 在 GNU 指令中,如果单独使用 - 符号,不加任何该加的文件名称时,代表"标准输入"的意思。这是 GNU指令的共通选项。譬如下例 tar xpvf - 这里的 - 符号,既代表从标准输入读取资料。 不过,在 cd 指令中则比较特别 cd - 这代表变更工作目录到"上一次"工作目录。
% 除法 (Modulo)
在运算式中,用来表示 "除法"。
expr 10 % 2
此外,也被运用在关于变量的规则表达式当中的下列
${parameter%word}${parameter%%word}
一个 % 表示最短的 word 匹配,两个表示最长的 word 匹配。
= 等号 (Equals)
常在设定变数时看到的符号。
vara=123echo " vara = $vara"
或者像是 PATH 的设定,甚至应用在运算或判断式等此类用途上。
== 等号 (Equals)
常在条件判断式中看到,代表 "等于" 的意思。
if [ $vara == $varb ]...下略
!= 不等于
常在条件判断式中看到,代表 "不等于" 的意思。
if [ $vara != $varb ]...下略
^
这个符号在规则表达式中,代表行的 "开头" 位置,在[]中也与"!"(叹号)一样表示“非”
输出/输入重导向
> >> &> 2&> 2>& >&2
文件描述符(File Descriptor),用一个数字(通常为0-9)来表示一个文件。
常用的文件描述符如下:
文件描述符 名称 常用缩写 默认值 0 标准输入 stdin 键盘 1 标准输出 stdout 屏幕 2 标准错误输出 stderr 屏幕
我们在简单地用时,相当于使用 0(下面会详细介绍)。
-
* cmd > file
把cmd命令的输出重定向到文件file中。如果file已经存在,则清空原有文件,使用bash的noclobber选项可以防止复盖原有文件。
-
* cmd >> file
把cmd命令的输出重定向到文件file中,如果file已经存在,则把信息加在原有文件後面。
-
* cmd
使cmd命令从file读入
-
* cmd
从命令行读取输入,直到一个与text相同的行结束。除非使用引号把输入括起来,此模式将对输入内容进行shell变量替换。如果使用
-
* cmd
把word(而不是文件word)和後面的换行作为输入提供给cmd。
-
* cmd file
以读写模式把文件file重定向到输入,文件file不会被破坏。仅当应用程序利用了这一特性时,它才是有意义的。
-
* cmd >| file
功能同>,但即便在设置了noclobber时也会复盖file文件,注意用的是|而非一些书中说的!,目前仅在csh中仍沿用>!实现这一功能。
: > filename 把文件"filename"截断为0长度.# 如果文件不存在, 那么就创建一个0长度的文件(与'touch'的效果相同).
cmd >&n 把输出送到文件描述符n
cmd m>&n 把输出 到文件符m的信息重定向到文件描述符n
cmd >&- 关闭标准输出
cmd
cmd m
cmd
cmd
cmd >&n- 移动输出文件描述符 n而非复制它。(需要解释)
注意: >&实际上复制了文件描述符,这使得cmd > file 2>&1与cmd 2>&1 >file的效果不一样。
相关推荐:《Linux视频教程》
위 내용은 리눅스의 특수 문자는 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Linux 유지 관리 모드 사용 타이밍 및 이유 : 1) 시스템이 시작될 때 2) 주요 시스템 업데이트 또는 업그레이드를 수행 할 때 3) 파일 시스템 유지 관리를 수행 할 때. 유지 보수 모드는 안전하고 제어 된 환경을 제공하여 운영 안전 및 효율성을 보장하고 사용자에게 미치는 영향을 줄이며 시스템 보안을 향상시킵니다.

Linux의 필수 명령에는 다음이 포함됩니다. 1.LS : 목록 디렉토리 내용; 2.CD : 작업 디렉토리 변경; 3.mkdir : 새 디렉토리 생성; 4.RM : 파일 또는 디렉토리 삭제; 5.CP : 파일 또는 디렉토리 복사; 6.mv : 파일 또는 디렉토리를 이동하거나 바꾸십시오. 이러한 명령은 사용자가 커널과 상호 작용하여 파일 및 시스템을 효율적으로 관리하는 데 도움이됩니다.

Linux에서 파일 및 디렉토리 관리는 LS, CD, MKDIR, RM, CP, MV 명령을 사용하며 권한 관리는 CHMOD, Chown 및 CHGRP 명령을 사용합니다. 1. 파일 및 디렉토리 관리 명령 LS-L 목록 상세 정보와 같은 MKDIR-P는 디렉토리를 재귀 적으로 생성합니다. 2. CHMOD755FILE SET 파일 권한 설정, ChownUserFile 변경 파일 소유자 및 CHGRPGROUPFILE와 같은 허가 관리 명령은 파일 그룹을 변경합니다. 이러한 명령은 파일 시스템 구조 및 사용자 및 그룹 시스템을 기반으로하며 시스템 호출 및 메타 데이터를 통해 작동 및 제어합니다.

MaintenanceModeInlinlinlinuxisspecialbootenvernmentforcriticalsystemmaintenancetasks.itallowsAdministratorStorformtaskSlikeresettingpasswords, Repairingfilesystems, Andrecoveringfrombootfailuresinaminimalenvernment.toentermaintingancemode, intermainteancemode

Linux의 핵심 구성 요소에는 커널, 파일 시스템, 쉘, 사용자 및 커널 공간, 장치 드라이버 및 성능 최적화 및 모범 사례가 포함됩니다. 1) 커널은 하드웨어, 메모리 및 프로세스를 관리하는 시스템의 핵심입니다. 2) 파일 시스템은 데이터를 구성하고 Ext4, BTRF 및 XFS와 같은 여러 유형을 지원합니다. 3) Shell은 사용자가 시스템과 상호 작용하고 스크립팅을 지원하는 명령 센터입니다. 4) 시스템 안정성을 보장하기 위해 사용자 공간을 커널 공간과 별도로 분리하십시오. 5) 장치 드라이버는 하드웨어를 운영 체제에 연결합니다. 6) 성능 최적화에는 튜닝 시스템 구성 및 다음 모범 사례가 포함됩니다.

Linux 시스템의 5 가지 기본 구성 요소는 다음과 같습니다. 1. Kernel, 2. System Library, 3. System Utilities, 4. 그래픽 사용자 인터페이스, 5. 응용 프로그램. 커널은 하드웨어 리소스를 관리하고 시스템 라이브러리는 사전 컴파일 된 기능을 제공하며 시스템 유틸리티는 시스템 관리에 사용되며 GUI는 시각적 상호 작용을 제공하며 응용 프로그램은 이러한 구성 요소를 사용하여 기능을 구현합니다.

Linux 유지 관리 모드는 Grub 메뉴를 통해 입력 할 수 있습니다. 특정 단계는 다음과 같습니다. 1) Grub 메뉴에서 커널을 선택하고 'e'를 눌러 편집, 2) 'Linux'라인 끝에 '단일'또는 '1'추가, 3) Ctrl X를 눌러 시작합니다. 유지 보수 모드는 시스템 수리, 비밀번호 재설정 및 시스템 업그레이드와 같은 작업을위한 안전한 환경을 제공합니다.

Linux 복구 모드를 입력하는 단계는 다음과 같습니다. 1. 시스템을 다시 시작하고 특정 키를 눌러 Grub 메뉴를 입력하십시오. 2. (복구 계)로 옵션을 선택하십시오. 3. FSCK 또는 루트와 같은 복구 모드 메뉴에서 작업을 선택하십시오. 복구 모드를 사용하면 단일 사용자 모드에서 시스템을 시작하고 파일 시스템 검사 및 수리를 수행하고 구성 파일 편집 및 기타 작업을 수행하여 시스템 문제를 해결할 수 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
