1 linux简介
1.1 linux中特殊程序shell
Shell: 是一类软件的总称
shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。
Shell将人类使用的 高级语言翻译成0100101交给内核,内核再调度硬件。
linux默认shell 程序是 bash
1.2 内外部命令
linux命令分为内部和外部命令
内部命令 | 外部命令 |
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于Shell的一部分 | 属于Shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
每个外部命令对应了系统中的一个文件 | 必须知道其对应的文件位置,由Shell加载后才能执行 |
1.3 命令行格式
格式:命令字 空格 [选项] 空格 [参数]
命令字:是整条命令中最关键的一部分 唯一确定
选项: 短格式选项:使用“-”符号引导 通常 一个字母
长格式选项:使用“--”符号引导通常完整的单词
参数: 命令字的处理对象 可以是文件名、目录(路径)名或用户名等内容 个数可以是零到多个
编辑Linux命令行的辅助操作:
按键 | 作用 |
tab | 自动补齐(两次可以显示所有选项 |
上下键 | 查找之前使用过的命令 |
Ctrl+l | 清屏 |
Ctrl+c | 取消本次命令编辑 |
Ctrl+a | 光标移到最前 |
Ctrl+e | 光标移到最后 |
Ctrl+U | 清空至行首不包括当前光标处的字符 |
Ctrl+K | 清空至行尾包括当前光标处的字符 |
1.4 命令帮助
内部帮助 help
外部命令帮助 --help
man
Man手册分9章
使用“↑”、“↓”(ENTER)方向键滚动一行文本
使用Page Up和Page Down(空格)键翻页
按Q或q键退出阅读环境
按“/”键查找内容,n键向下查找,N键向上查找
2 命令
2.1 查看当前路径 pwd
2.2 切换目录 cd
命令 | 功能 |
cd cd ~ | 若不指定目标位置,切换到当前用户的宿主目录 |
cd 目标位置 | 切换到目标位置 |
cd - | 切换到上一次执行cd命令之前所在的目录 |
绝对路径:以根目录开头的路径
相对路径:不以根目录开头
.代表自己文件夹
.. 自己的上一级目录(文件夹)
2.3 显示目录内容 ls
ls [选项] [文件或目录… ]
ls 不单独使用 要配合通配符使用
通配符作用:匹配文件名
* | 代表任意长度字符 |
? | 代表任意单个字符 |
[0-9] | 代表单个数字 |
[a-z] | 没有大Z |
[A-Z] | 没有小a |
[^qwe] | 反向选择 不会出现qwe中任意一个 |
{1..10} | 1到10 |
{a..z} | 小写的a 到小写的z |
\ | 转义 代表原来的意思 |
ls常用选项
选项 | 作用 |
-a | 显示所有文件 |
-l | 长格式 |
-R | 递归显示 |
-d | 只显示当前目录 |
-t | 按照时间排序 |
-i | 显示indoe号 |
-S | 文件大小排序 |
ls -l
-rw-r--r--. 1 root root 2028 8月 31 19:32 initial-setup-ks.cfg
第一个字符代表文件的类型:
"_"表示该文件是一个普通文件
"d”表示该文件是一个文件夹
"l"表示该文件是一个软链接文件。类似于windows下的快捷方式
"c"表示字符
"b"表示块(硬盘)
"s"表示套接字
"p"表示管道
第1字符的后面9个字母表示该文件或目录的权限位:
r表是读(查看、下载)、w表示写(添加、更改、删除、上传)、x表示执行(运行文件、切换目录)
其中前三个表示文件拥有者(属主)的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。
第2字段:文件硬链接数
如果一个文件不是目录,此时这一字段表示这个文件所具有的硬链接数
如果是一个目录,则第2字段表示该目录所含子目录的个数。
如果新建一个空目录,这个目录的第二字段就是2,表示该目录下有两个子目录
第3字段:文件\目录拥有者
第4字段:文件\目录拥有者所在的组
第5字段:文件所占用的空间(默认以字节为单位).
如果是一个目录,则表示该目录的大小,而不是目录以及它下面的文件的总大小。
Linux系统中一切皆文件,因此目录也是一种文件。
第6字段:文件\目录最近访问或修改时间
第7字段:文件名
如果是一个符号链接(软链接文件),那么会有一个“->”箭头符号,后面根一个它指向的文件名
2.4 查看当前所在文件夹的总磁盘占用量 du
du [选项] [文件或目录… ]
常用选项:
选项 | 作用 |
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
-h | 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 |
-s(--summarize) | 只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小 |
--max-depth=n (-d 1) | 最大显示到第n层 |
--exclude | 不计入统计 |
注意a s无法同时使用
2.5 创建目录 mkdir
mkdir [选项] 目录位置及名称
-p | 递归创建文件夹 |
2.6 设置别名 alias
alias 命令别名 = ’命令‘
unalias 别名命令 删除别名
\加别名命令 (显示原始命令)
alias 临时修改
tips
绝对路径>别名>内部>hash>外部命令(先查找别名在查找内部命令,缓存最后外部)
2.7 创建空文件 touch
touch 文件名
1.当文件不存在时 直接新建该文件,并且该文件是空文件
2.当文件存在,会刷新该文件的时间戳
2.8 创建连接文件 ln
硬连接:同一个文件取不同的名或者叫多个名字不支持文件夹,创建一个连接数加一,多路径访问。
软连接:类似于windows里快捷方式,软连接,符号连接,会指向原来的文件ln(link)
软连接:
ln -s 源文件或目录… 链接文件或目标位置
2.9 复制 cp
cp [选项]… 源文件 目标 相当改名复制
cp [选项]... 源文件... 文件夹 多个源文件只能复制到文件夹
选项 | 说明 |
---|---|
-f | 覆盖目标同名文件或目录时不进行提醒,直接强行复制 |
-i | 覆盖目标同名文件或目录时提醒用户确定 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-r | 复制目录时必须使用,表示递归复制所有文件及子目录 |
注:复制多个文件或目录时,目标位置必须为目录,且目标目录必须已存在
-f复制时,复制在同一目录时只会提醒时同一文件,不会覆盖。
2.10 移动 改名 mv
mv [选项] … 源文件或目录… 目标文件或目录 单个文件
将指定的文件或目录转移位置
如果目标位置与源位置相同,则相当于执行重命名操作
2.11 删除 rm
rm [选项] 要删除的文件或目录
选项 | 作用 |
-f | 删除文件或目录时不进行提醒,而直接强行删除 |
-i | 删除文件或目录时提醒用户确定(y确定删除,n不删除) |
-r | 删除目录时必须使用次选项,表示递归删除整个目录数(谨慎使用 |
2.12 查找文件 find
查找路径:指定具体目标路径;默认为当前目录
查找条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件
查找类型 | 关键字 | 说明 |
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”和“?”通配符 |
按文件大小查找 | -size | 根据目标文件的大小进行查找 一般使用“+”、“-”号设置超过或小于指定大小作为查找条件 常用的容量单位包括kB(注意k是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件类型进行查找 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 块设备文件(b):成块读取数据的设备(硬件,内存,光驱) 字符设备文件(c):按单个字符读取数据的设备(键盘,鼠标) |
按inode号 | -inum | 根据文件inode号查找 |
按权限查找 | -perm | 按文件权限查找 |
补充:
1.按查找文件名字查找 -name
[root@localhost data]#find /boot/ -name 'vm*'
命令 查找范围 查找条件表达式(查找名字是以vm开头的文件)
2.按文件大小查找文件 -size k M G
[root@localhost data]#find /boot/ -size +1024k
#查找boot目录下 大于1024k 的文件
注意点:文件大小不加加减号是一定的范围,单位越精确越好
3.按文件属主查找 属主:文件的拥有者 -user
[root@localhost data]#find /home/ -user zhangsan
#找到home 目录下 属于zhangsan用户的文件
4.按文件类型查找 -type f (普通文件) d(目录) c(字符文件) b(块设备)
[root@localhost data]#find /dev/ -type b
#找到 /dev 下 的 块设备文件
5.按照 indoe号查找 -inum 要先知道indoe号
[root@localhost data]#ls -i
9243885 1.txt 9243846 bigfile 9243860 zwz.txt
[root@localhost data]#find -inum 9243885
./1.txt
6.按照目录层级查找文件 -maxdepth level -mindepth level
[root@localhost data]#find /etc/ -maxdepth 2 -mindepth 2
#只看第二层
7.天数查找文件 -mtime
[root@localhost data]#find /boot/ -mtime +7 -type f -size +1M -delete
#找到 7天以上 且文件类型为普通文件 且大于1M的文件 并且 加上处理动作 删除
2.13 查看硬件信息
查看cpu lscpu
查看内存 free
查看内核 uname -r
查看架构 arch
tip
命令执行的顺序
1 绝对路径下的执行程序
2 先看别名,如果有别名直接执行
3 再区别是内部 还是外部,内部直接执行
4 外部 首先看 hash表 表中直接执行, 表中有但是找不到直接报错
5 没有hash 回去$PATH 路径下的文件夹去找,找到执行 找不到直接报错
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin