八股文--linux
shell常用命令
1、ls命令
ls 以默认方式显示当前目录文件列表
ls -a 显示所有文件包括隐藏文件 例如: .file 文件名称前面带小数点为隐藏文件。
ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行
ls -lh 显示文件的大小,以容易理解的格式印出文件大小 (例如 1K 234M2G)
ls -lt 显示文件,按照修改时间排序
2.cd命令
cd dir 切换到当前目录下的dir目录
cd / 切换到根目录
cd .. 切换到到上一级目录
cd ../.. 切换到上二级目录
cd ~ 切换到用户目录,比如是root用户,则切换到/root下
3、cp命令
cp source target 将文件source复制为target
cp /root /source . 将/root下的文件source复制到当前目录
eg:cp /home/open_038_dev/external_files/test/test.sh .
cp –av soure_dir target_dir 将整个目录复制,两目录完全一样
4.rm命令
rm file 删除某一个文件
rm -f file 删除时候不进行提示。可以于r参数配合使用
rm -rf dir 删除当前目录下叫dir的整个目录
5.mv命令
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,
即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
6、diff diff dir1 dir2 比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出
diff file1 file2 比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的
7、comm comm file1 file2 比较文件,显示两个文件不相同的内容
comm -12 file1 file2 就只显示在两个文件中都存在的行
comm -23 file1 file2 只显示在第一个文件中出现而未在第二个文件中出现的行
comm -13 file1 file2 只显示在第一个文件中未出现而出现在第二个文件中的行
8.ln命令
ln source_path target_path 硬连接
ln -s source_path target_path 软连接
9.cat命令
显示文件的内容,和DOS的type相同
10、more命令
功能:分页显示命令
11、tail 命令
功能:显示文件的最后几行
12.vi命令
vi file 编辑文件file
13.touch命令
功能:创建一个空文件
touch aaa.txt 创建一个空文件,文件名为aaa.txt
14.Shell中的特殊符号
14.1 $美元符号。用来表示变量的值。如变量NAME的值为Mike,则使用$NAME就可以得到“Mike”这个值。
1.2 # 井号。除了做为超级用户的提示符之外,还可以在脚本中做为注释的开头字母,每一行语句中,从#号开始的部分就不执行了。
1.3 “” 双引号。shell不会将一对双引号之间的文本中的大多数特殊字符进行解释,如#不再是注释的开头,它只表示一个井号“#”。但$仍然保持特殊含义。(在双引号中的$加变量名,即:$PARAM_NAME,依然会转换成变量的值。)
1.3.1 双引号对于某些特殊符号是不起作用的, 例如:”,$,\,`(反引号)
1.3.2 双引号和单引号不能嵌套。即:echo ‘””’ 输出””, echo “’’” 输出’’
1.4 ‘’ 单引号。shell不会将一对单引号之间的任何字符做特殊解释。(在双引号中的$加变量名,即:$PARAM_NAME,不会转换成变量的值。)
1.4.1 echo “$HOME” (结果:/home/xiongguoan)
1.5 `` 倒引号。命令替换。在倒引号内部的shell命令首先被执行,其结果输出代替用倒引号括起来的文本,不过特殊字符会被shell解释。
1.5.1 echo ‘$HOME’ (结果:$HOME)
1.6 \ 斜杠。用来去掉在shell解释中字符的特殊含义。在文本中,跟在\后面的一个字符不会被shell特殊解释,但其余的不受影响。
1.7 []中括号, 主要是用来测试条件的,通常放在if语句的后面。 (不过还是不太明白),但是中括号本身不会在测试语句执行后消失。
1.7.1 echo [$HOME] (结果:出现错误)
1.7.2 echo [$HOME ] (结果:[/home/xiongguoan ]) (注意:HOME后面有空格哦。)
1.7.3 echo [$HOME –eq ‘/xiong’] (结果:[/home/xiongguoan –eq /xiong])
1.8 {}大括号,主要是和$符号配合,作为字符串连接来使用
1.8.1 echo ${HOME}ismydir (结果:/home/xiongguoanismydir)