Skip to content

Linux 常用命令(2):Shell

🏷️ Linux

Shell 命令的语法分析

命令格式

shell
command [options] [arguments]
shell
ls -a
ls -a -l
ls -al
ls -al /etc
mv mylinux1.txt mylinux2.txt
ls -al;cp mylinux1.txt mylinux2.txt
cp -i \
>mylinux1.txt \
>mylinux2.txt

通配符

  • *:匹配任意一个或多个字符
  • ?:匹配任意单一字符
  • []:匹配任何包含在方括号内的单字符
  • 通配符可以组合使用
shell
ls *.txt
cp doc/* /opt
ls -al /etc/*/*.conf
ls ab?.txt
ls ab??.txt
ls /dev/sda[123456]
ls /dev/sda[1-5]
ls [0-9]?.conf
ls [xyz]*.txt

重定向

  • <:输入重定向为文件
  • <<:输入重定向为来自命令行中一对分隔号之间的内容。(分隔号可以是任意字符)(在第一个分隔号后开始读取,直到出现另一个分隔号读取结束)
  • >:输出重定向为文件(覆盖)
  • >>:输出重定向为文件(追加)
  • 2>:错误重定向

管道

shell
ls -al /ect/* |more
ps -ef|grep httpd|wc -l

特殊字符

\:转义符

shell
mv abc\?\* abc
mv c\:\\backup backup

':单引号

shell
mv c\:\\backup backup
mv 'c:\backup' backup

":双引号

包含在双引号内的大部分特殊字符都当作普通字符处理,但是仍然有一部分特殊字符即使用双括号括起来,也仍然保留自己的特殊含义,比如“$”、“\”和“`”。

shell
root@a-server:/# str="The \$SHELL Current shell is $SHELL"
root@a-server:/# str1="\$$SHELL"
root@a-server:/# echo $str
The $SHELL Current shell is /bin/bash
root@a-server:/# echo $str1
$/bin/bash
root@a-server:/# str2="This hostname is `hostname`"
root@a-server:/# echo $str2
This hostname is a-server