Shell 在计算机科学中是指”提供用户使用界面”的软件, 通常指的是命令行界面的解析器, 一般来说, 这个词指的是操作系统中提供访问内核所提供服务的程序. Shell 也用于泛指为所有用户提供操作界面的程序, 也就是程序和用户交互的层面. 因此与之相对的是程序内核(Core), 内核不提供和用户的交互功能.

bash (Bourne Again Shell) 是 Linux 标准的默认 shell, 支持 POSIX 标准, 完全兼容 sh.

进入 shell: 一般 Linux 系统中, 桌面(GUI)状态下使用快捷键 Ctrl+Alt+T 能打开一个虚拟终端, 输入 shell 命令并执行.
退出 shell: 在 shell 中输入 exit 然后回车
默认提示符: 普通用户$, 根用户#
查看 shell 版本: echo $SHELL
查看命令的辅助信息:
--help, --version

目录文件指令

pwd: 查看当前目录
echo $HOME 或者 echo ~: 查看主目录

ls: 列出文件或目录下的文件名

  • -a(all): 显示所有文件, 包括隐藏文件
  • -l(long): 显示详细信息(long 表示长格式显示)
  • -d(detail): 显示目录属性
  • -h(human): 人性化显示文件大小
  • -i(inode): 显示 inode
  • -ll(ls -l): 显示目录下文件的长信息

cd: 改变目录

  • ~ 进入当前用户的根目录
  • 同上
  • -进入上次目录
  • .. 进入上一级目录
  • . 进入当前目录

mkdir: 创建目录(文件夹)

  • -p 递归创建
    e.g. mkdir b/a =>fail, mkdir不能创建多级目录
    mkdir -p b/a 同时创建 b 和 a

rmdir: 删除空目录

rm: 删除目录及文件

  • -r强制删除目录
  • -f强制
  • 一般用 rm -rf ..

touch: 修改文件时间或者创建文件

chmod: 设置目录或文件的访问权限

  • chmod[选项][操作对象][操作符][权限][文件名]
  • 操作符号
      • 添加某个权限
    • -取消某个权限
    • =赋予给定权限并取消其他权限
  • 数字设定法
    • chmod abc 文件名
    • 其中 abc 各为一个数字, 分别表示 user, group, other 的权限
    • r为4, w为2, x为1, -为0(二进制位)
    • rwx = 7; rw- = 6; r-x = 5
  • 访问权限组(每一个文件或目录的访问权限都有三组)
    在 Linux 中是按照用户和组来设定权限的
    • 所有者权限: 就是文件或者目录的创建者, 一般来说和 root 用户权限相当. 文件被创建时, 文件所有者自动拥有对该文件的读写和可执行权限.
    • 同组权限: 就是所有者所在的用户组的其他成员的权限
    • 其他用户权限
  • 访问权限(读取, 写入, 执行)
    • r: 读取文件内容的权限, 或者浏览目录的权限
    • w: 新增,修改文件内容的权限, 或者删除, 移动目录内文件的权限
    • x: 执行文件的权限, 或者进入目录的权限
  • 用 -ll 也就是 -ls l显示文件或目录的详细信息, 最左的一列为文件的访问权限, 例如:
    -rw-r--r-- 1 root root 483997 Jul 15 18:31 sobsrc.tgz
    这里有10个位置, 第一个制定文件的类型, 通常意义上, 一个目录也是一个文件, 如果第一个字符是-, 表示是一个非目录文件, 如果是 d, 表示是一个目录
- rw- r-- r--
非目录的文件 所有者权限 组用户 其他用户
普通文件 可读写 只读 只读

chown: 改变目录的所有者
cp: 复制目录或文件

  • -r 复制目录
  • -p 连带文件属性复制
  • -d 若源文件是链接文件, 则复制链接属性
  • -a 相当于 -pdr
  • cp[现象][原文件或目录][目标目录]

mv: 剪切或改名(move)

  • mv a ../a 将当前目录下的 a 复制剪切到上一级的 a 目录中
  • mv abc.txt de.txt 如果原文件和目标文件在同一目录下, 则为改名, 否则是剪切

文件内容命令

diff: 比较两个文件的差异
patch: 修补文件(给文件打补丁)
cat: 输出文件内容
more: 逐屏显示文件内容
less: 逐页显示文件内容
head: 显示文件开头若干行内容
tail: 显示文件最后若干行内容
od: 查看特殊格式的文件内容

常见目录

/ 根目录
/bin 存放必要的命令
/boot 存放内核以及启动所需要的文件
/dev 存放设备文件
/etc 存放系统的配置文件
/home 用户文件的主目录
/lib 存放必要的运行库
/mnt 存放临时的映射文件系统
/proc 存放存储进程和系统信息
/root 超级用户的主目录
/sbin 存放系统管理程序
/tmp 存放临时文件
/usr 包含了一般不需要修改的应用程序, 命令程序文件, 程序库,手册等
/usr/bin 系统命令(普通用户 home)
/usr/sbin 系统命令(超级用户 root)
/var 包含系统产生的经常变化的文件