目录
1.初始Linux
multics -> unix -> minix -> linux
- GNU:开源组织简写 自由软件许可协议条款
- OS:操作系统
- Linux操作系统内核——开源、免费
- Linux操作系统特性 —— 多用户、多任务操作系统,可以同时登录多个用户
- 发行版Linux操作系统:Linux内核 + 外部应用
- redhat、centos、debian、ubuntu、deepin、麒麟、红旗
- root——Linux下的超级管理员
- xshell:远程登录客户端(作用:远程连接到虚拟机\服务器上对虚拟机/服务器进行远程操作)
- vmware:虚拟出一个硬件环境用于安装一个操作系统
- 虚拟机:在vmware中虚拟的这个硬件环境/安装的这个操作系统
- winscp:用于自己主机和服务器/虚拟机之间的文件传输
2. Linux的基本命令操作:
-
2.1 对目录进行操作
目录 -> 文件夹,Linux下一切皆文件(需求接口的统一),Linux并不以文件后缀名区分文件类型,Linux下的文件后缀名是给用户看的。
家目录 -> 每个用户都会有自己单独的目录,每一个用户打开终端登陆后,都会默认进入自己的家目录(一般以用户名命名)
- Linux下的目录结构(交换分区、文件系统分区)——树状目录结构,文件系统中最上层的是根目录“ / ”
- /home:根目录下的home目录——总的家目录
- 总的家目录下又有各个用户自己的家目录(默认家目录用用户名命名)
- Linux下表达一个路径使用 “ / ”进行间隔
- 绝对路径——以根目录为起始查找路径的一个路径
相对路径——以当前目录为起始查找路径的一个路径
-
Linux下的目录结构和磁盘分区没有关系,他们相互独立。
- 根目录下的所有目录都有特定的含义,都存储着不同功能的文件;根目录下的子目录有独立的分区
- 挂载:将分区a挂载到根目录下——根目录的磁盘空间就是分区a
- Linux中,至少有两个磁盘分区 —— 磁盘挂载分区(挂载于根目录)、交换分区swap area(当内存不够用时,将不活跃的内存区域的数据取出,放入交换分区)
- 命令的使用结构
- 命令名称 [操作选项] [源操作对象] [目标操作对象]
- ls 查看目录下的内容
- -l 查看当前文件详细信息
- 文件类型 文件权限 链接数 所属用户 所属用户组 文件大小(字节) 最后一次修改时间
- 文件类型:- -> 普通文件 d -> 目录型文件 b ->块设备文件 c -> 字符设备文件 l -> 符号链接型文件 p -> 管道型文件 s -> 套接口型文件
- 链接数:文件计数器
- -a 查看所有文件,包含隐藏文件
- linux下以 .开头的文件是隐藏文件,默认不显示;
- -t 按时间排序
- -r 对排序进行逆序(结合-t、-S使用)
- -s 输出该文件的大小
- -S 大小排序,查找目录下最大的文件
- -l 查看当前文件详细信息
- pwd 查看当前所在路径(绝对路径)
- mkdir 创建一个目录
- -p 递归创建路径(常用于多层级目录创建,上层目录不存在则创建)
- rmdir 删除一个空目录
- -p 从内往外递归删除空目录
- man 手册命令(查看指定命令的手册)
-
1号手册,查看系统命令
-
2号手册,查看系统调用结构
-
3号手册,查看库函数
-
- cd 改变当前所在路径(进入指定目录)
- 每个目录下都会有 . 和 .. 目录
- . 当前所在路径
- .. 当前所在路径的上一层路径
- ~ 当前用户的家目录
- - 上一次所在路径
-
2.2 对文件进行操作
etc 存放系统中的配置文件
passwd 存放系统中的用户信息
Linux下文件类型并不以后缀名区分,后缀名只是便于用户分辨文件功能
- rm 删除文件(默认不删除目录)
- -r 删除文件,包含目录(递归删除)
- -f 忽略提示,强制删除
- cp 复制文件到指定位置
- -r 复制文件到指定位置,包含目录(递归复制)
- -f 忽略提示,强制拷贝
- mv 移动(剪切)文件 / 目录到指定位置
- -i 增加提示信息
- touch 刷新文件的时间属性,若文件不存在则创建
- -r 以一个文档的时间为标准刷新了另一个文件的时间
- -t 以一个指定的时间格式修改文件的时间
- -d 解析字符串替代当前时间
- -a 仅仅刷新文件最后一次访问时间
- -m 仅仅刷新文件最后一次修改时间
- stat 查看详细的文件元信息 stat hello.txt
- 时间属性:
- access:最后一次访问时间
- modify:最后一次修改时间
- change:状态改变时间 (当前系统时间)
- cat 将文件内容全部打印到终端显示
- -n 显示行号
- tac 逆序将文件内容全部打印到终端显示
- more 分页显示文件内容
- 空格 向下翻页
- 回车 向下走一行
- b 向上翻页
- q 退出
- less 分页显示文件内容(字符串匹配,比more翻页更加灵活,可按行滚动)
- f pgdown 向下翻页
- b pgup 向上翻页
- 回车/上下 按行移动
- /string 向下匹配string
- ?string 向上匹配string
- n 匹配下一个
- q 退出
- head 显示文件的前10行内容(默认前10行)
- -n 用于指定显示多少行 (head -n 1 passwd)
- tail 显示文件的末尾10n行内容(默认末尾10行)
- -n 用于指定显示多少行
- -f 动态刷新文件末尾内容
-
2.3 压缩相关操作
- dd if=/dev/zero of=./hello.txt bs=100M count=1
- zip/unzip zip格式的压缩/解压缩 zip hello.zip hello.txt
- gzip/gunzip gzip格式的压缩/解压缩 gzip hello.txt
- bzip2/bunzip2 bzip2格式的压缩/解压缩 bzip2 hello.txt
- tar 打包命令
- -c 打包
- -v 显示详细的打包 / 解包文件信息
- -f 指定包名字(-f用于指定包名,因此通常是最后一个选项,后面紧跟包名)
- -x 解包
- -z 打包/解包的同时以gzip格式压缩 / 解压缩
- -j 打包/解包的同时以bzip2格式压缩 / 解压缩
打包 tar -czvf hello.tar.gz hello.txt tar -cvf hello.tar hello.txt
解包 tar -xzvf hello.tar.gz tar -cjvf hello.tar.bz2
注意:后缀名只是为了便于用户识别,对计算机无影响;不知道压缩格式时,直接 tar -xvf *,但也仅限于gzip、bzip2
-
2.4 查找匹配操作(重点)
- grep 字符串匹配(区分大小写),在指定文件内容中匹配包含指定字符串的行
- eg: grep "aa" test.txt 匹配test.txt文件中包含有aa字符串的行
- -v 反向匹配(匹配不包含指定字符串的行)
- -i 忽略大小写的匹配
- -R 在指定目录下进行文件递归匹配,如果当前文件是一个目录型文件,则进入子目录中继续匹配
-
grep -R "root" ./ (./* 当前文件夹下的文件,*代表任意字符串)
-
- find 从指定目录下查找文件
- -name 按名称查找文件 find ./ -name "*p*" -> 查找文件名中有a的文件
- -type 按文件类型查找文件
- f 普通文本文件
- d 目录型文件
- -size 按文件大小查找文件 find ./ -size +1k
- +ns 超过n
- -ns 小于n
- s:
- c 字节
- b 块(默认512字节)
- w 两个字节
- k、M、G
- s:
- -time 按时间查找文件
- -amin/-cmin/-mmin 按分钟查找
- -atime/-ctime/-mtime 按天查找
- -n 在n分钟/天之内
- +n 在n分钟/天之前
-
2.5 时间相关命令
- cal 查看日历(默认打印当前月日历)
- -j 按一年中的第n天来查看日历
- -y 查看全年日历
- -3 查看当前月周围3个月(前一个月、本月、后一个月)
- date 查看当前系统时间、日期
- +%s 查看时间戳(1970-01-01 00:00:00到现在所经过的秒数)
- +%u 本周的第n天
- +%T 时:分:秒
- +%F 年-月-日
- +‘%Y-%m-%d %H:%M:%S’ 指定格式打印时间
- -s 设置系统时间 “年-月-日 时:分:秒”
-
2.6 其他操作命令
- su 切换用户(不切换当前路径)
- echo 打印字符串到终端显示(输入到终端)
- ifconfig 查看系统IP地址
- clear 清屏
- bc 计算器(ctrl+c退出)
- halt 关机
- shutdown 关机 (-h now 现在关机)
- reboot 重启
- rz 将windows文件传输给linux
- sz 将linux文件传输给windows
- 标准输出重定向(把原本输入到终端的内容输入到指定文件)
-
标准输入:键盘 标准输出:显示器 标准错误:显示器
>> 标准输出重定向,追加内容到文件末尾
> 标准输出重定向,清空原有内容,添加新数据
- 管道符 |:连接两个命令,将前面的命令的输出结果当做后面的命令的输入进行处理(eg:ls -l | grep bit)
-
查看一个文件/etc/passwd的第20行内容: head -n 20 /etc/passwd | tail -n 1