1.基础命令

命 令 说 明
pwd 显示当前目录
passwd 修改用户密码
ls 列出目录内容
cd 改变当前的工作目录
* 匹配任意长度的任意字符
匹配任意一个字符
cat 显示输出文件的全部内容
cp 复制文件
mv 移动文件
rm 删除文件
mkdir 创建目录
rmdir 删除目录
chown 修改目录或文件所有者
chgrp 修改目录或文件用户组
chmod 修改文件或目录的权限
grep 查找指定字符串
find 查找指定文件
egrep 支持正则表达式的grep
& 在后台运行
| 管道符 用于连接多个命令 其中前一命令的输出为后一命令的输入

2. IO重定向

命令行 说明
命令1 > 文件1 将命令1的输出结果重定向到文件1
命令1 &> 文件1 将命令1的输出结果和标准错误输出一起重定向到文件1
命令1 >> 文件1 将命令1的输出结果追加到文件1中
命令1 2> 文件1 将命令1的标准错误输出的结果重定向到文件1中
命令1 < 文件1 将文件1作为命令1的标准输入
命令1 << 字符串1 允许连续输入数据,直到收到字符串1

3. 命令连接

3.1 管道(pipe)

#将前一程序的输出作为后一程序的输入
命令1 | 命令2 [| 命令3 ...] 
#连标准错误输出一起送入管道
命令1 |& 命令2 [|& 命令3 ...] 

例:可以使用cat,sort,wc命令,统计student文件是否有重复的行

#	cat student | sort -u |wc -l

3.2执行顺序控制

(1)顺序的执行多个命令,用分号( ; )分隔

# echo hello shell;pwd;ls

(2)有条件的执行,分为&&和||

  • &&:连接两命令,前一命令执行成功后再执行后一命令,想到与逻辑与
  • || :连接两命令,前一命令执行失败后再执行后一命令,想到与逻辑或

4. 三种引号用法

  • 双引号(" "):双引号中的字符,除了$ , " , ’ 和 \ 以外的所有字符都会解释成字符本身。

  • 单引号(’ '):单引号中的所有特殊字符(例如 $ , " , ’ 和 \ )都失去特殊意义成为普通字符。

  • 反引号(` `):反引号中的字符都会被解释成命令,例如`cmd`会被解释成cmd的执行结果。

    raki@ubuntu:~$ echo "$PATH"
    /home/raki/.local/share/umake/bin:/home/raki/bin:/home/raki/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/arm/4.4.3/bin
    
    raki@ubuntu:~$ echo "PATH"
    PATH
    
    raki@ubuntu:~$ echo '$PATH'
    $PATH
    
    raki@ubuntu:~$ echo `ls`
    a.out apue.2e arm-linux-gcc-4.4.3.tar.gz Desktop Documents Downloads examples.desktop Music opt opt111 Pictures Public spf13-vim.sh src.2e.tar.gz Templates tool Videos wyc
    
    raki@ubuntu:~$ echo "I am $USER"
    I am raki