一, 命令的分类
用于实现某一类功能的指令或程序
命令本质就是程序
命令的执行必须依赖于 shell 命令解释器程序(例如:/bin/bash)
shell 解释器, 是 Linux 系统中运行的一种特殊程序, 就是作为翻译官, 横跨在用户和内核之间, 将用户输入的命令解释为内核能识别的语言
只要是用户登录系统后, 他都自带的在 / bin/bash 当中, 也就是它可以使用 shell 这个程序来进行登录到系统.
shell 也是一种进程.
Linux 里支持很多种 shell, 但默认的 shell 是 / bin/bash:
cat /etc/shells 查看 Linux 系统所支持的 shell 程序
2.Linux 命令的分类
内部命令: 属于 shell 解释器的一部分
内部命令就是伴随系统内核自动就携带的命令 .
外部命令: 独立于 shell 解释器之外的程序
外部命令, 是需要靠第三方的文件和命令文件所支持, 只有你有这个命令文件你才能使用这个命令, 这就是外部的
type 命令 判断用户输入的是外部命令还是内部命令
注: shell 内嵌代表内部命令, 文件路径代表外部命令 .
二, 命令的格式
1.Linux 命令的通用格式
命令字 [选项] [参数]
说明:
命令字, 就是命令
选项, 选项的意思就是增加一些功能, 它的作用就是用于调节命令的具体功能
参数, 参数就是你要执行的对象, 你要对哪个目录哪个文件进行操作, 这个对象一定要指明
注: 参数最好使用绝对路径.
所以说, 这三个组成, 命令, 我要执行干什么, 选项, 我要在干这个的时候执行哪些功能, 有了功能, 我要对谁执行, 这三个部分一定有.
选项里面有两种格式:
"-" 引导短格式选项, 例如 "ls -a"
后面基本是跟一个单个字母 -a -b -c -d = -abcd
"--" 引导长格式选项, 例如
"ls --help" 后面跟的是一个单词
三, 命令操作技巧
1.Tab 键: 按一次, 自动补齐; 按两次 Tab 键, 系统将输出可用的名称列表
2. 反斜杠 "\": 强制换行 , 用于命令过长的情况
3.ctrl+U: 快速删除当前光标处之前的所有字符
4.ctrl+K: 快速删除从当前光标处到行尾的所有字符
5.ctrl+L: 快速清空当前屏幕中的显示内容
6.ctrl+C: 取消当前命令行的编辑, 终止
7.ctrl+a: 跳到行首
8.ctrl+e: 跳到行尾
四, 获取命令帮助
尽量不要去试图记住所有的命令的选项, 只要记住常见的命令就可以了.
1. 内部命令 help
查看各 shell 内部命令 的帮助信息
2. 命令的 "--help" 选项
适用于大多数外部命令
通常用于查看命令的用法
将命令的所有选项都列表出来, 并解释其功能作用
3. 使用 man 命令阅读手册页
出现一个文本信息模式, 在这个文本信息模式中, 翻阅去查看
使用 "上, 下" 方向键滚动文本
使用 PageUp 和 PagedDown 键翻页
按 Q 或 q 键退出阅读环境
按 "/" 键查找内容;
n 往下找, N 往上找
满命令帮助信息的结构和意义:
结构名称 | 意义 |
---|---|
NAME | 命令的名称 |
SYNOPSIS | 参数的大致使用方法 |
DESCRIPTION | 介绍说明 |
EXAMPLES | 演示 |
OVERVIEW | 概述 |
DEFAULTS | 默认的功能 |
OPTIONS | 具体的可用选项(带介绍) |
ENVIRONMENT | 环境变量 |
FILES | 用到的文件 |
SEE ALSO | 相关的资料 |
HISTORY | 维护历史与联系方式 |
4,whatis ---> 只是告诉命令是干什么的
是 man 的一个摘要
格式: whatis 命令
当你看到一个不会的命令, 可以使用此命令查看是干什么的.
5, 查询的命令:
ls: 列表 (list) 显示目录中内容:
-a: 显示所有的子目录和文件的信息, 包括名称以点号 "." 开头的隐藏目录和隐藏文件
-A: 与 - a 作用类似, 但有两个特殊隐藏目录不会显示,"." 和 ".."
-l: 以长格式显示文件和目录的列表
例子: ls -l /etc
-d: 显示目录本身的属性
例子: ls -ld /zz/ 以长格式显示目录本身的属性
-h: 显示出详细信息, 如大小, 结合 - l 一起使用
例子: ls -lh
-R: 以递归方式将当前目录中的子目录全部展开
--color 默认情况就有了这条选项
注:
Linux 中的一切事物都是文件.
在所有的 Linux 系统当中, 组成文件的类型, 不像 Windows 当中的那么直观, 在 Windows 中, 这个是文件夹, 这个是文件, 并且我们都可以通过它的后缀名知道它是什么文件类型. 但是 Linux 当中就不一样, Linux 当中, 凭借颜色可以识别它到底是哪种文件类型:
蓝色 是目录(文件夹)
白色 是普通文本文件
绿色 是可执行文件(脚本文件)
*** 是设备文件
红色 是压缩性文件 (压缩包)
浅蓝色 是软链接文件(快捷方式)
红色闪烁: 表示链接的文件有问题
灰色 是其他文件
6, 创建别名 --alias
作用:
1, 通过给危险命令加一些保护参数, 防止人为误操作
2, 把很多复杂的字符串或命令编程一个简单的字符串或命令.
例子:
alias MySQL="echo 这条命令无效"
别名对应的命令:
alias #只输入一个 "alias" 是查看已设置的别名
alias 别名 #创建一个新别名
unalias 别名 #取消已创建的别名
那么有的时候, 这种别名, 你操作起来还是比较简便的
那么别名这种形式, 比如说这个命令是一个组合, ls -alh
你可以通过 alias 把它定义, 说白了就是给它取个小名或者称号,
Alias myls='ls -alh'
注意: 单引号不要忘了 , 它其实就是创建一个快捷键
然后我们输入 myls, 就是相当于执行了 "ls -alh" 这条命令.
\ls 和 /bin/ls 就是直接使用 ls 命令, 不是使用 ls --color:auto
注:"\" 是转义符号, 将有特殊含义的字符串转换为普通字符串.
以上都是临时的
永久设置别名: 放置在系统的环境变量文件中
一般放置在以下两个地方:
/etc/profile 全局生效, 即对所有人生效
~/.bashrc 当前用户生效, 只对当前登录的用户生效
7,du-- 统计目录
作用: 统计指定目录 (或文件) 所占用磁盘空间的大小
常用选项有:
-a, 统计磁盘空间占用时包括所有的文件, 而不仅仅只统计目录, 实际上统计里面空间文件 的大小, 罗列的非常详细
-h, 以友好形式显现出目录或文件的大小(K,M), 默认的大小单位为字节(B)
-s, 只统计每个参数所占用空间总的大小, 而不是统计每个子目录, 文件的大小
注意了, a 和 s 不能同用, 你要么使用 du -ah, 要么使用 du -sh
如果你用了, 系统就会报错
8, 创建目录和文件 --mkdir, touch,
1. 创建目录(文件夹) mkdir
格式: mkdir [选项] 目录位置及名称
-p 一次性创建嵌套的多层目录
9, 创建文本文件 --touch
格式: touch 文本文件名 (不加任何选项)
文件名之间以空格分隔, 可以一次性创建多个文件.
(1)当文件不存在, 则创建新文件
(2)当目标文件已存在时, 将更新该文件的时间标记
10, 复制拷贝文件或目录 --cp 命令 (copy)
格式: cp [选项] 源文件或目录... 目标文件或目录
-f: 覆盖目标同名文件或目录时不进行提醒, 直接强制复制
-i: 覆盖目标同名文件或目录时提醒用户确认
-p: 复制时保持源文件的权限, 属主及时间标记等属性不变
-r: 复制目录时必须使用此选项, 表示递归复制所用文件及子目录
通常后面加'v', 显示过程(cp -rv)
11, 删除文件或目录 --rm (remove)
格式: rm [选项] 要删除的文件名称或目录名称
-f: 删除文件或目录时不进行提醒, 而直接强制删除
-i: 删除文件或目录时提醒用户确认
-r: 删除目录时必须使用此选项, 表示递归删除整个目录树(应该谨慎使用)
谨慎操作: rm -rf *
单独的一个, 代表所有
a 代表的是以 a 开头的所有文件或目录
? 只代表一个数或者字母
12, 移动文件或目录 --mv(move) 重命名 (剪切)
作用:(1)将指定的文件或目录转移位置 (不同目录下, 剪切 / 移动)
(2)如果目标位置与源位置相同, 则相当于执行重命名操作 (同一目录下, 重命名)
格式: mv 源文件或目录 目标文件或目录
使用绝对路径.
13, 查找用户所执行的命令文件存放的目录 --which 命令
查找可执行程序的位置, 只去 $PATH 结果中找
搜索范围由环境变量 PATH 决定
$PATH 系统环境变量
echo $PATH(查看用户环境变量的命令)
PATH 的值 - 系统中所有可执行命令的位置
格式 which 命令或者程序名
默认当找到第一个目标后不再继续查找
which -a 命令或者程序名 如果希望在所有搜索路径中查找 一直找
14, 查找文件或目录 find 命令
find [目录] [命令] [名称]
(1)按名称查找
find 源目录 -name 关键字
- a(a 开头),b; a(结尾),b; a??
- ??A(一个 "?" 代表一个字符)
(2)按文件大小查找 find 源目录 -size
-30k(小于 30k);+30k(大于 30k);30k(等于 30k);MB,GB(注意大小写, B 可省略), 加 ""
(3)按文件属主查找 find 源目录 -user
按帐户 / 用户名查找
(4)按 uid 查找 find 源目录 -uid
查找当普通帐户被删除之后, 该用户所创建的文件
查看 uid 的命令是: id 用户名
例子: find /bin -uid 1000
查找 / bin 目录下 UID 为 1000 的文件
(5)按文件类型查找 find 源目录 -type
l(软链接, 快捷方式),f(普通文件),d(目录),b(硬件设备文件),c(字符终端, 字符块设备)
例子: find /bin -type l/f/d/b/c
查找 / bin 目录下的文件类型为 l/f/d/b/c 的文件或目录
Linux 系统中一切事物都是文件.
(6)用 find 进行多条件查找:
-a 表示 而且(and) ; -o 表示 或者(or)
例子: find /etc -size +40k -a -type f
查找 / etc 大于 40k 的并且文件类型为普通文件的文件.
find /etc -size +20K -o -size -10k
查找 / etc 大于 20k 文件或者小于 10k 文件.
find /etc -size +100k -a -size -150k
查找 / etc 中的 100k 到 150k 的文件
15, 对文件内容进行查看:
cat: 直接一次性查看所有内容.
tac: 从最后一行开始倒着显示文档内容
more: 从文件开头开始显示内容, 通过按下空格键查看下一屏内容, 不允许向上翻. 按回车键可以一行一行向下翻. 看到最后一屏自动退出查看.
Less: 有 more 就有 Less,Less 不与 more 相反且更为强大, 内容并不从尾部显示到头部, 与 more 显示顺序相同, 它集成了 more 的空格键与回程键功能, 同时还有以下功能:
1. 支持上下方向键向上向下翻转一行内容, j,k 键分别实现上下翻功能.
2. 还支持 page down 与 page up 实现按屏翻. Ctrl+b 向下按屏翻, Ctrl + f 向上按屏翻(助记: bottom 下, front 上).
3. 按下 "g" 实现回到首行功能, 按下 "G" 实现到最后一行功能.
4.Less 支持搜索关键字, 按下 "/" 后输入要查找的关键字, 文中匹配字符串将高亮显示. 且按下字母 n 键, 可以一个一个向后查看这些关键字. 向前查用 N 键.
除了 "/" , 用 "?" 键加上要查找的字符串也是大体相同, 只是 n 与 N 键对字符串的跳动方向相反.
注意看到最后一屏消息并不会结束 Less 命令, 按下 q 退出查看.
head: 默认查看内容前 10 行, 加上参数如 head -2 1.txt 查看前两行.
tail: 默认查看后十行, 加上参数如 tail -2 1.txt 查看后两行. 加上参数 -f 可以动态查看末尾内容(相当于看到的文件始终是最新的). 退出用 Ctrl +c 键.
16,grep: 检索和过滤文件内容
格式:
grep 选项 "查找条件" 目标文件
-i: 查找时忽略大小写
-v: 反转查找, 输出与条件不相符的行
"^...": 表示以... 开头
"...$": 表示以... 结尾
"^$": 表示空行
17,gzip 和 gunzip 以 gzip 格式压缩和解压缩
格式:
gzip -9 文件名 #-9 是压缩级别, 9 为最高级别
gunzip 压缩文件名 等同于 gzip -d 压缩文件名
18,bzip2,bunzip2 以 bzip2 格式压缩和解压缩
格式:
bzip2 -9 文件名 #-9 是压缩级别, 9 为最高级别
bunzip2 压缩文件名 等同于 bzip2 -d 压缩文件名
19,zip 和 unzip 以 zip 格式压缩和解压缩
格式:
zip -9 文件名
unzip 压缩文件名
20,tar 用于对文件进行打包压缩或解压.
格式:
tar 选项 打包的文件名 源文件或目录
常用选项:
-c : 创建压缩文件
-t : 查看压缩包内有哪些文件
-x : 解开压缩文件
-z : 以 gzip 的格式进行压缩或解压缩: 此時压缩文件名最好为 .tar.gz
-j : 以 bzip2 的格式进行压缩或解压缩: 此時压缩文件名最好为. tar.bz2
-J : 以 xz 的格式进行压缩或解压缩: 此時压缩文件吗最好为 *.tar.xz
-v : 显示压缩, 解压过程
-f : 目标文件名(-f 应放在参数末位, 立即接文档名)
-C : 解压到指定目录
注: 特別留意的是, -c, -t, -x 不可同时出現在一串指令列中.
特別留意, -z, -j, -J 不可以同时出現在一串指令列中
打包压缩:
tar -czvf 压缩后的文件名. tar.gz 源文件或目录
tar -cjvf 压缩后的文件名. tar.bz2 源文件或目录
查看压缩文件中的内容:
tar -tzvf 压缩后的文件名. tar.gz
tar -tjvf 压缩后的文件名. tar.bz2
解压压缩文件:
tar -xvf 压缩后的文件名. tar.gz -C 目的目录
来源: http://www.bubuko.com/infodetail-2915423.html