目录
一、Linux
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
1. shell
1.shell是Linux系统中运行的一种特殊程序
2.在用户和内核之间充当“翻译官”
3.用户登陆Linux系统时,自动加载一个shell程序
4.Bash是Linux系统中默认使用的shell程序(/bin/bash)
2.Linux命令的分类
内部命令 | 外部命令 |
---|---|
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in) 指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于shell的一部分 | 属于shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由Shel加载后才能执行 |
缓存命令>内部命令>外部命令
3.Linux的哲学思想(优点、优势)
1.一切都是一个文件。(包括硬件)
2.系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)
3.当遇到复杂任务,通过不同功能用途的程序组合起来完成。
4.避免令人困惑的用户界面就是没有复杂的图形界面。
5.连配置文件都存储在文本中,方便增删改查。
6.不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。
二、Linux通用命令行格式
[root@localhost ~]# 命令 [选项] [参数]
命令 [选项] [参数]
命令格式中的 [ ] 代表可选项,也就是有些命令可以不写选项或参数,也能执行。那么,我们就用 Linux 中最常见的 ls 命令来解释一下命令的格式。如果按照命令的分类,那么 ls 命令应该属于目录操作命令。
[root@localhost ~]# ls
anaconda-ks.cfg install.log install.log.syslog
1.命令字
是整条命令中最关键的一部分
唯一确定一条命令
2.选项
短格式选项:使用”-”符号引导通常 一个字母
长格式选项:使用”–”符号引导通常完整的单词
3.参数
命令字的处理对象
可以是文件名、目录(路径)名或用户名等内容
个数可以是零到多个
;可以隔开命令,执行多个命令
三、Linux快捷键
快捷键 | 功能 |
---|---|
Tab建 | 自动补齐(两次可以显示所有选项) |
\ | 强制换行 |
Ctrl+a | 光标移到最前 |
Ctrl+a/end键 | 光标移到最后 |
Ctrl+u | 清空至行首 |
Ctrl+k | 清空至行尾 |
Ctrl+w | 当从前光标处删除到开头 |
Ctrl+d | 删除光标定位处 |
Ctrl+l | 清屏 |
Ctrl+c | 取消本次命令编辑 |
Ctrl+s/Ctrl+q | 锁屏/解锁 |
上下箭头 | 回看执行过的命令 |
四、获得命令帮助的方法
1.内部命令help
查看shell内部命令的帮助信息
2.命令的“–help”选项
适用于大多数Linux外部命令
3.使用man命令阅读手册页
使用“↑”、“↓”方向键滚动一行文本
使用Page Up和Page Down键翻页
按Q或q键退出阅读环境
按“\”键查找内容
五、通配符
符号 | 作用 |
---|---|
? | 匹配一个字符 |
* | 匹配所有非隐藏的字符无论多长多短,但不匹配"."开头的文件,即隐藏文件 |
{1…10} | 1到10 |
{a…z} | abc…z |
{A…Z} | ABC …Z |
[123] | 取其中之一有就显示没有也无所谓 |
[0-9] | 匹配数字范围 |
\ | 转义符,表示原来的意思 |
[[:lower:]] | 小写字母表示a-z |
[[:upper:]] | 大写字母表示A-Z |
[[^zhou]] | 匹配列表中的所有字符以外的字符 |
[[:digit:]] | 任意数字,相当于0-9 |
通配符只能匹配文件夹,不能匹配文件里的内容
六、命令解释
Ls (查看当前目录清单)
ls 命令是 linux 下最常用的命令,ls 命令就是 list 的缩写,表示查看当前目录清单
选项 | 解释 |
---|---|
-l | 长格式显示 |
-a | 显示所有(包括隐藏文件) |
-A | 显示所有(不包括隐藏文件) |
-d | 只显示指定目录 |
-h | 友好显示 |
-R | 递归,将当前目录下所有子目录文件显示出来 |
–color | 显示颜色 |
不同颜色字体所对应的文件:
黑色——普通文件
绿色——可执行文件
红色——压缩包文件
蓝色——文件夹
天蓝色——连接文件
alias (设置别名)
通过别名机制简化常用的、比较长的命令:
alias 命令别名=命令
示例:设置myls为ls -alh的别名:alias myls=‘ls -alh’
unalias (删除别名)
du (统计目录及文件空间占用情况)
选项 | 解释 |
---|---|
-a | 统计磁盘占用时包括所有的文件,而不仅仅只统计目录 |
-h | 以更人性化方式显示出统计结果(默认是KB,但单位不显示) |
-s | 只统计所占用空间的大小,而不是统计每个子目录,文件大小 |
–max-depth=n | 最大显示n层 |
-a 和 -s 不能同时使用
mkdir (创建新目录)
-p 递归创建目录
touch (创建新文件)
添加:创建文件的三种方法(都可为空)
- touch 1.txt
- vim 2.txt
- echo " " > 3.txt
ln (创建链接文件)
ln [-s] 源文件或目录 目标文件或目标位置
(加-s为软连接,不加为硬链接)
- 为文件或目录建立链接文件,类似于Windows系统的快捷方式
- 软链接(符号链接)
- 硬链接(无法将硬链接指向目录)
对比项 | 硬链接 | 软链接 |
---|---|---|
本质 | 本质同是一个文件 | 本质不是一个文件 |
inode | 相同 | 不同 |
连接数 | 创建新链接,链接数会增加,删除则会减少 | 删除新建不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是链接数减1,但链接的访问不受影响 | 无法访问链接文件 |
文件类型 | 和源文件相同 | 链接文件,和源文件无关 |
文件大小 | 和源文件相同 | 源文件的路径的长度 |
cp (复制文件或目录)
cp [选项] 源文件或目录 目标文件或目标位置
选项 | 注释 |
---|---|
-f | 覆盖时不提醒,直接强制复制 |
-i | 默认的,覆盖时提醒用户确认(-i 的优先级要高于 -f ) |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-a | 同 -p ,不过比p功能更强大,可以复制软连接 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
rm (删除文件或目录)
选项 | 注释 |
---|---|
-f | 强制 |
-i | 交互 |
–r | 递归(删除目录需要) |
mv (移动文件或改名)
mv [选项] 源文件或目录 目标文件或目标位置
rename (批量改名)
rename [选项] 旧名字 新名字 源文件名
which (查找命令/文件存放目录)
which 命令/程序名
find(精确查找文件或目录)
默认采用递归方式,根据目标的名称、类型、大小等不同属性进行今昔查找
例:find /etc -name passwd
选项 | 注释 |
---|---|
-name | 根据目标文件名称进行查找,可以使用通配符 |
-size | 根据目录文件大小进行查找,一般使用“+”“-”,常用单位 kB、MB、GB |
-user | 跟据文件是否属于目标用户进行查找 |
-type | 根据文件的类型进行查找 |
-nourse | 查找无属主的文件夹 |
- -a (and,表示同时成立,需要同时满足两个要求)
- -o (or,表示或,两个要求满足一个即可)