极速入门必备指令
1 Shell 简介
Shell 是运维和系统管理员操作Linux 系统的首选,简单说,它是一个命令解释器。
命令行相关:
行首“$” 或 “#” - 命令行提示符 (代表你们可以输入命令了)
行中 ## - 视为注释开始
注意: 命令行是区分大小写的!
使用命令行补全(Tab) 和通配符可以提高输入效率
通配符共有3个: “*”,“?”,“[]”
*’- 用于匹配文件名中任意长度的字符串;
? - 只匹配一个字符;
[] - 用于匹配所有出现在方括号内的字符。可以使用短线“-”来指定字符集范围。如:ls text[1-3] 或 ls test[a-z]
2 入门必备命令
2.1 帮助命令 - man
作用: Linux 为所有命令和系统调用编写了帮助手册。使用man 命令可以方便地获取某个命令的帮助信息。
用法: man [手册编号] 命令名。 (手册编号可省略)
man 命令在显示手册页时实际调用less 完成显示,J K可以上下翻动,空格用于向下翻页。Q键退出。
手册总共分为9 节,各部分内容如下:
2.2 用户切换命令 - SU
作用: 切换到其他用户
用法: su [用户名]
$su ccbond ## 切换到 ccbond 这个用户
$su ## 切换到特权用户 root
2.3 特权命令 - sudo
作用: 提升当前执行命令的权限,以root 身份执行它.
用法: sudo 命令行
$ sudo su ## 切换到root 用户
3 文件操作常用指令
3.1 显示当前目录 pwd 和改变目录 cd
pwd 命令
作用: 显示当前目录,即工作目录
用法: pwd
cd 命令
作用: 改变目录位置
用法: cd . . .[OPTION] . . .[FILE]. . .
cd 目录路径 - 进入指定的目录中去
cd .. - 返回父目录
cd / - 进入根目录
cd 或 cd~ - 进入用户主目录
cd ./ * - 进入当前目录下* 表示子目录
3.2 ls 命令
用法: ls . . .[OPTION] . . .[FILE]. . .
常用参数:
1. 不带任何参数 列出当前目录下的所有文件和子文件
2. -F 分类显示,方便阅读
3. -a 显示含隐藏文件
4. -l 查看文件的各种属性
3.3. 列出目录内容: dir 和 vdir
用法:
dir . . .[OPTION] . . .[FILE]. . .
vdir. . .[OPTION] . . .[FILE]. . .
dir 和 ls 差不多,就比ls 功能少
vdir 相当于 ls -l 命令
3.4. 建立目录mkdir
用法: mkdir . . .[OPTION] . . .[FILE]. . .
mkdir 一次可以建立一个或 几个目录
常用参数:
不带任何参数 创建相应目录,如果目录的父级目录路径不存在,则创建失败;
-p 创建相应目录,如果目录的父级目录路径不存在,则一起创建;
3.5. 移动、复制和删除
移动命令 mv
用法: mv . . .[OPTION] 源文件 目标文件
## 如下:
$mv test1.c ./test1/
常用参数:
不带任何参数 将源文件移动到目标文件,注意:如果目标文件存在则替换;
-i 将源文件移动到目标文件,如果目标文件存在则提示是否替换;
-b 将源文件移动到目标文件,如果目标文件存在则不进行覆盖,而是在目标文件后加~
复制命令 cp
用法: cp . . .[OPTION] 源文件 目标文件
常用参数:
不带任何参数 将源文件复制到目标文件,注意:如果目标文件存在则替换;
-i 将源文件复制到目标文件,如果目标文件存在则提示是否替换;
-b 将源文件复制到目标文件,如果目标文件存在则不进行覆盖,而是
在目标文件后加~
-r 将子目录及其中的文件一起复制到另一个子目录下
删除命令 rm
删除命令可以一次永久性删除一个或几个文件(包含目录)
用法: rm . . .[OPTION]. . . [FILE]. . .
常用参数:
不带任何参数 删除文件或相应目录,不给予任何提示;
-i 删除文件或相应目录,删除时进行提醒;
-f 强制性删除文件或相应目录;
-r 将子目录及其中的文件一并删除。
3.6. 文件连接 ln
ln 建立文件链接
用法: ln . . .[OPTION] 源文件 目标文件
常用参数:
不带任何参数 创建硬链接,ls -i 查看可以看到两个文件的inode 值一致;
-s 创建软链接,即别名,如果源文件删除,则软链接(别名)也无法访问。
软连接其实相当于就是一个别名而已,属于这个东西指向源文件
3.7. 改变文件所有权 chown 和 chgrp
chown 命令用于改变文件的所有权。
用法: chown . . .[OPTION] [OWNER][:[GROUP]] FILE . . .
常用参数:
不带任何参数 改变单个或多个文件的属主和属组;
-r 改变一个目录及其下所有文件(和子目录)的所有权设置。
l 代表这是个连接
- 代表这是个文件
d 代表这是个目录
r 读
w 写
x 执行
接下来每三位:
用户权限、同组的其他成员权限、其他组成员权限
chgrd 用于单独设置文件的属组。
用法: chown . . .[GROUP] FILE . . .
$ chgrp nogroup text.txt
3.8. 改变文件权限 chmod
chmod 用于改变一个文件的权限。它以“用户组 +/- 权限”的表达方式来增加/删除相应的权限。具体来说,用户组包括了文件属主(u)、文件属组(g)、其他人(o) 和所有人(a),而权限则包括读取
(r、w、x)
用法: chmod . . .[OPTION] . . .[FILE]. . .
$chmod u+x test.txt
$chmod u-x test.txt
$chmod ug=wr、o=r text.txt
3.9. 阅读文件的头部和尾部: head 和 tail
用法: head/tail . . .[OPTION]. . . FILE
常用参数:
不带任何参数 显示文件的头部/尾部 10 行;
-n 按指定的行数显示文件的头部/尾部 ;
3.10. 查看文本文件: cat 、more 和 less
cat 命令用来一次性查看全部文本文件的内容,后跟文件名作为参数.也可以带上 -n 显示每
行的行号。如果文件长达几十上百页,不建议使用 cat.
more 命令用来分页查看文本文件。空格翻页;回车向下滚动一行;Q键退出。
less 更人性化的文本阅读工具。
3.11. 编辑器: vim
vim 是UNIX 和 Linux 上标配的编辑器,功能十分强大。
用法 :
vim file
或 vim
分为两种模式:插入和命令
保存和退出
保存文件、退出等需要切换到行命令模式,在插入模式下输入 Esc 再 输入 :w :q 或 :wq 等
搜索字符串
前提:须切换到命令模式
/string 用于向下搜索一个字符串
?string 用于向上搜索一个字符串
搜索时如果需要启动或关闭大小写敏感,先执行:
:set ignorecase
或
:set noignorecase
替换字符串
前提:须切换到命令模式。
> 语法 : :[range]s/pattern/string/[c、e、g、i]
> 这条命令将 pattern 所代表的字符串替换成 string。开头的range 用于指定替换作用的范围,
> 如“1,10”表示从第1行到第10行,“1,$”表示从第1行到最后一行,也就是全文。
> 全文也可以用 “%” 表示。
最后的方括号是可选选项,含义如下:
删除、复制、粘贴
前提:须切换到命令模式。
撤销和重做
前提:须切换到命令模式
程序员特有配置
:syntax on ## 语法高亮
:set autoindent ## 自动缩进
:set shiftwidth=4 ## 设置Tab 键对应的空格数
4. 查找和定位常用命令
4.1. find 命令
作用: 在指定范围内迅速查找到文件。
用法: find [OPTION] [path . . .] [expression]
常用参数:
-type 查找时指定文件的类型,可使用参数如下表;
-atime n 查找最后一次使用在n天前的文件,n 使用负数表示;
-mtime n 查找最后一次修改在n天前的文件;
-maxdepth n 查找目录的最大深度
-mindepth n 从指定的目录的第几层深度开始查找
4.2. 更快速的定位文件 - locate 命令
作用: 火箭般的速度定位文件。
用法: locate [expression] pattern
locate 并不进入子目录进行搜索,它通过检索数据库来确定文件的位置。可以使用 updatedb
来更新检索数据库。
4.3. 查找文件内容 - grep 命令
作用: 在文件中寻找某些信息。
用法: grep [OPTIONS] PATTERN [FILE…] ## pattern 使用基础正则表达式
$grep open ./test.c ## 会把所有包含open的都打印出来