Linus命令精讲
linux的哲学思想
-
一切都是一个文件。(包括硬件,文本,二进制,源代码)连配置文件都存储在文本中,方便增删改查
-
系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)
-
当遇到复杂任务,通过不同功能用途的程序组合起来完成。 轻量级,一台服务 dhcp ip 数据库服务 网页
-
避免令人困惑的用户界面就是没有复杂的图形界面。
-
不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。
shell
shell的定义
shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。
用户使用应用程序发布指令比如 (使用浏览器访问网页)
shell去通知操作系统需要进行什么样的操作(相当于解释层)
内核相当于操作系统去指挥硬件
硬件才能工作,否则无法交互。
shell 分为内部命令 和外部命令,一般先执行内部命令,hash 再执行外部命令(别名最大)
命令执行的顺序
1 绝对路径下的执行程序
2 先看别名,如果有别名 直接执行
3 再区别是 内部 还是外部, 内部直接执行
4 外部 首先 看 hash 表 表中直接执行, 表中有 但是找不到 直接报错
5 没有hash 回去 $PATH 路径下的文件夹去找,找到执行 找不到直接报错
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
命令行格式
- 在 Linux 操作系统中,凡是在字符操作界面中输入能够完成特定操作和任务的字符串都
可以称为命令。 - 严格来说,命令通常只代表实现某一类功能的程序的名称。
格式
命令字 空格 [选项] 空格 [参数]
解释命令字 选项 参数各自的意思及具体使用方法
-
命令字
是整条命令中最关键的一部分
唯一确定 -
选项
短格式选项:使用“-”符号引导 通常 一个字母
长格式选项:使用“–”符号引导 通常完整的单词类 unix 命令 bsd
-
参数
命令字的处理对象
可以是文件名、目录(路径)名或用户名等内容
个数可以是零到多个
;可以隔开命令,执行多个命令
快捷键 | 功能 |
---|---|
Tab 键 | 自动补齐(两次可以显示所有选项) |
反斜杠“\” | 强制换行或转义 |
Ctrl+a | 光标移到最前 |
Ctrl+e 或 end 键 | 光标移到最后 |
Ctrl+U | 清空至行首不包括当前光标处的 字符 |
Ctrl+K | 清空至行尾包括当前光标处的字符 |
Ctrl+w | 从当前光标删除到开头 |
ALT+d | 从当前光标删除末尾 |
Ctrl+l | 清屏 |
Ctrl+c | 取消本次命令编辑 |
Ctrl+s/Ctrl+q | 锁屏/解锁 |
向上下箭头 | 回看执行过的命令 |
获得命令帮助
1.help
help之能看内部命令帮助
2.–help
查看外部命令帮助
3.man
man分九个章节默认打开第一章节(menu菜单 manual手册)
4.info
info也可以查看相关的帮助信息
5.百度
当然百度也是最简单直接的办法 遇到问题可以直接问。
目录操作
1. pwd(print work directory)
pwd
显示当前路径
2. cd
cd - 回到上一次目录
cd 去往 当前用户的家目录
cd ~ 去往 当前用户的家目录
命令 | 效果 |
---|---|
cd cd ~ | 若不指定目标位置,切换到当前用户的宿主目录(家目录) |
cd - | 到前一次目录 |
一个点号“.”开头(自己) | 表示以当前的工作目录作为起点(已点开头的是) |
两个点号“…”开头(上一级) | 表示以当前目录的上一级目录(父目录)作为起点 |
“~用户名”形式开头” | 表示以指定用户的宿主目录(家目录)作为起点 |
"."开头文件 | 表示隐藏文件 |
~ky18 (有个用户叫ky18 家目录为起点) | 表示以指定用户的宿主目录作为起点 |
此处注意绝对路径: 以根开头 相对路径: 不是以根开头 |
7大文件类型
- 普通
d 文件夹
c 字符
b 块(硬盘)
l 连接
s 套接字
p 管道
家目录(~):作用 存放当前用户的 个性化配置文件
超级管理员: /root
普通用户: /home/用户同名
根是所有目录的起点
3.ls
ls [选项] [文件或目录… ]
- -l 已长格式显示文件和目录列表 ll=ls -l
- -a 显示全部包括隐藏文件
- -A 显示全部文件或隐藏文件,但不包括 . 和…
- -d 仅列出目录本身,而不是列出目录内的文件数据
- -h 友好显示文件大小(human,人性化)
- -R 递归显示该目录及该目录的子目录下的所有内容
- –color 显示颜色
- -S 以文件容量大小排序
- -i indoe号
当 ls 命令不带任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色( 黑色数据文件:普通文件 绿色:可执行文件 黄色:块设备文件硬件设备(硬盘) 红色: 压缩包 蓝色: 文件夹 天蓝色:链接文件(快捷方式))
ls -l以长格式显示
drwxr-xr-x. 2 root root 19 8月 31 19:08 ssl
第一个字段 d 代表文件类型比如 d是目录 - 是普通文件
第2-9(rwxr-xr-x)字母表示该文件的权限
root 文件所有者
root 文件所属组
31 文件大小
31 19:08 文件的最近使用时间
ssl 文件或目录名称
ls -a显示所有文件包括隐藏文件
ls -A显示所有文件不包括 ( . …)的隐藏文件
ls -d只显示本目录
ls -lh //加单位k友好显示
ls -R递归显示
第一个字符 | 文件类型 |
---|---|
- | 普通文件,包括纯文本文件、二进制文件、各种压缩文件等。 |
d | 目录,类似 Windows 系统中的文件夹。 |
b | 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。 |
c | 字符设备文件,例如键盘、鼠标等。 |
s | 套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。 |
p | 管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。 |
l | 链接文件,类似 Windows 系统中的快捷方式。 |
4.通配符
去匹配文件名(包括文件夹)ls
*代表任意长度字符
? 代表任意单个字符
[0-9] 代表单个数字
[a-z] 没有大Z
[A-Z] 没有小a
【^zhu】 反向选择 不会出现zhu中任意一个
{1…10} 1到10
{a…z} 小写的a 到小写的z
\ 转义 代表原来的意思
通配符作用:匹配文件名
正则表达式:匹配文章里的内容
5.alias
临时修改
- alias 命令别名 = ’命令‘
- unalias 别名命令 删除别名
- \加别名命令 (显示原始命令)
永久修改
- 在/etc/.bashrc 会影响全部
- /root/.bashrc只影响当前用户( 当前用户的家目录 )root
补充:绝对路径>别名>内部>hash>外部命令(先查找别名在查找内部命令,缓存最后外部)
6.du(disk usage)
查看当前所在文件夹的总磁盘占用量了。 blok 4k du显示的是文件占磁盘大小 不是文件的实际大小-d
du [选项] [文件或目录… ]
选项 | 说明 |
---|---|
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
-h | 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 |
-s(–summarize) | 只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小 |
–max-depth=n (-d 1) | 最大显示到第n层 |
–exclude | 不计入统计 |
注意a s无法同时使用
du -a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
du -h 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
du -s 只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小
创建
创建目录mkdir (make directories)
mkdir
mkdir [选项] 目录位置及名称…
因为已经在mnt 所以直接写名称就可以
mkdir -p aaa/bbb/cccc 递归创建文件夹
-v 显示过程
touch
touch 新文件…(可为空)
每个文件有三个时间戳:
- access time 访问时间,atime,读取文件内容
- modify time 修改时间,mtime,改变文件内容(数据)
- change time 改变时间,ctime,元数据发生改变(元数据 文件大小 权限 )
硬连接与软连接文件
硬连接 同一个文件取不同的名或者叫多个名字(比如 苏轼 字子瞻 号东坡居士 苏二 谥号文忠 )不支持文件夹,创建一个连接数加一,多路径访问。
软连接 类似于windows里快捷方式,软连接,符号连接,会指向原来的文件ln(link)
ln [-s] 源文件或目录… 链接文件或目标位置
加s是软连接 符号连接
对比项 | 硬链接 | 软链接 |
---|---|---|
本质 | 本质是同一个文件 | 本质不是同一个文件 |
inode(身份证号) | 相同 | 不同 |
连接数 | 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 | 删除,新建都不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是链接数减一,但链接文件的访问不受影响 | 无法访问连接文件 |
文件类型 | 和源文件相同 | 链接文件,和源文件无关 |
文件大小 | 和源文件相同(指向硬盘上的同一个文件) | 源文件的路径的长度 |
复制
cp(copy)备份
- cp [选项]… 源文件 目标 相当改名复制
- cp [选项]… 源文件… 文件夹 多个源文件只能复制到文件夹
选项 | 说明 |
---|---|
-f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
-i | 覆盖目标同名文件或目录时提醒用户确认 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
-a | 完整保留所有的信息包括连接文件 |
-v | 可视化 |
-u | 相当于增备,差异备份 |
-b | 先备份(只保留最近) |
-a
移动 改名
mv [选项] … 源文件或目录… 目标文件或目录 单个文件
移动 或者改名
批量
rename log log.bak* //所有 log文件改成 log.bak
rename 旧字符 新字符 目标文件
删除文件
rm [选项] 要删除的文件或目录
- -f、强制
- -i、交互
- -r 递归(删除目录需要)
切记rm -rf / 这是删除根下所有文件
rm -rf /data /* 中间有空格误操作也会删除 切记不可
查找文件
find
命令的特点:
- 精确查找
- 实时查找 遍历(慢)
- 支持查找条件较多
命令格式 :find OPTION… 查找路径 查找条件 处理动作
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 |
按文件大小查找 | -size | 根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 |
按inode号 | -inum | 根据文件inode号查找 |
按权限查找 | -perm | 按文件权限查找 |
最大搜索目录深度 | -maxdepth level | 将你的文件已分级的形式查找 |
最小搜索目录深度 | -mindepth level | 同上 |
-name
-size
注意:1024M 代表 1023M - 1024M 不包括1023
1G 表示 0G -1G 不包括0G
-size 10k 表示9k 到10k 且不包括9k
-size -10k 表示9k 以内 包括9k
-size +10k 表示10k 以上 不包括 10k
-perm
显示命令
cat
选项 | 效果 |
---|---|
-n | 显示行号包括空行 |
-b | 跳过空白行编号 |
-s | 将所有的连续的多个空行替换为一个空行(压缩成一个空行) |
-A | 显示隐藏字符 |
-b
-s
-b
-A
more
more [选项] 文件名
基本操作
- 空格下一行 到文末后自动退出
- b上一行
- enter一行一行滚动
- 自动退出
- q退出
less
less [选项] 文件名
- 可以使用/ 查找 n向下 N向上查找
- Page Up 向上翻页,Page Down 向下翻页
- 其余参考more
head/tail
head -n 具体数字 文件名 (不加具体的数字,默认开头十行)
tail -n 具体数字 文件名 (不加具体的数字,默认结尾十行)
tail -f 具体数字 文件名 实时跟踪最后十行
-n
tr
基本功能转换
格式 :tr [选项]… SET1 [SET2]
SET 是一组字符串,一般都可按照字面含义理解
-d 删除
-s 压缩
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII
cut
cut 命令可以提取文本文件数据的指定列
格式 :cut [选项]… [文件]…
-d : 指明分隔符,默认tab
-f 想要获取的字段
-c 取字符
wc
wc [选项]… 目标文件…
统计列数,wc本身就是参数 word
-l:统计行数
-w:统计单词个数
-c:统计字节数
-l
-w
-c
grep
grep [选项]… 查找条件 目标文件
- -i:查找时忽略大小写
- -v:反向查找,输出与查找条件不相符的行
- -o 只显示匹配项
- -f 对比两个文件的相同行
- -c 匹配的行数
基本格式
- 要查找的字符串以双引号括起来单引号也可以
- “^……”表示以……开头,“……$”表示以……结尾
- “^$”表示空行
paste
-d 指定分隔符
合并文件
sort
-r 执行反方向(由上至下)整理
-R 随机排序
-n 执行按数字大小整理
-h 人类可读排序,如: 2K 1G
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique),合并重复项,即去重
-t 指定分隔符
-k 指定列
注意:r n t k 需要重点掌握
去重uniq
uniq [OPTION]… [FILE]…
-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行
uniq常和sort 命令一起配合使用
解压和压缩
bzip2 gzip
gzip [-9] 文件名… 提高压缩比例,但是文件较大时效率会低
bzip2 [-9] 文件名…
gzip -d .gz格式的压缩文件 d就是解压
bzip2 -d .bz2格式的压缩文件
9代表压缩比率,9最大1最小,使用以上两种压缩源文件不存在了
gzip的压缩率 要高于bzip2
归档tar
tar tape archive 磁带归档,磁带便宜磁带机很贵,慢永久保存,硬盘越来越便宜了
tar [选项] … 归档文件名 源文件或目录
tar [选项] … 归档文件名 [-C 目标目录]
- -c:创建(Create).tar 格式的包文件
- -x:解开.tar 格式的包文件
- -C:解压时指定释放的目标文件夹
- -f:表示使用归档文件(一般都要带上表示使用tar)
- -p:打包时保留文件及目录的权限
- -P:打包时保留文件及目录的绝对径
- -t:列表查看包内的文件(要和f一起使用)
- -v:输出详细信息(Verbose)
- -j:调用 bzip2 程序进行压缩或解压
- -z:调用 gzip 程序进行压缩或解压