视频学习地址
Linux一切皆文件:
- bin(binary):该目录都是二进制文件
- Dev:该目录都是存放的外接设备,例如U盘、光盘。其中的外界设备不能直接利用,需要挂载(类似windows分配盘符)
- Etc: 主要存储一些配置文件
- Home:类似windows的Users;即除了root用户外其他的Home
- Proc(process):进程,该目录是Linux运行的进程
- root:root的Home目录
- Sbin:super binary,该目录存放一些可以被执行的二进制文件,但必须由super权限才能被执行
- Tmp:临时文件,系统运行时所产生的文件
- Usr:用户自己安装的软件,相当于windows的program file
- Var:存放的程序/系统的日志文件的目录
- Mnt:外接设备需要挂载时,就是挂载到Mnt
指令操作
关机:shutdown -h now
关闭内存:halt
1. 指令与选项
-
指令:在Linux终端(命令行)中输入的内容就是指令
-
一个指令的标准格式:Linux的通用格式
#指令 [选项] [操作对象](类似于英语中谓语动词+定语+宾语的形式)
一直指令包含多个选项、操作对象也可以是多个
2. 基础指令
2.1 ls(list)指令
路径:相对路径、绝对路径
相对路径:首先应该有一个参照物(一般是当前的工作目录)
- 相对路径写法:通常会用到“./”(当前目录下)或"…/"(上一级目录下)
绝对路径:从根目录开始,直接从“/”开始
含义:ls 列出
-
用法1:#ls
含义:列出当前工作目录下的所有文件夹和文件名称
-
用法2:#ls path
含义:列处指定路径下的所有文件/文件夹的名称-
-
用法3:#ls 选项 路径
含义:列出指定路径下文件/文件夹的名称,并以指定格式表示
-
#ls -l 路径
-
#ls -la 路径
选项解释:
-l:表示list,表示以详细列表的形式进行展示
-a:表示显示所有的文件/文件夹(包括隐藏)
-
-
用法4:#ls -lh 路径
含义:列处指定路径下所有文件/文件夹名称,以列表显示,通过可读性较高的方式显示
2.2 pwd(print working directory)指令
含义:#pwd,打印当前工作路径
2.3 cd(change directory)命令
含义:#cd,切换当前工作路径
语法:#cd 路径
案例:当前在“/”下,需要使用绝对路径切换到/usr/local
案例:当前在“/usr/local”下,切换到根“…/…/”
在Linux中有一个特殊的符号“~”,表示当前用户的家目录
切换的方式:#cd ~
2.4 mkdir(make directory)指令
含义:#mkdir,创建目录(文件夹)
- 用法1:#mkdir 路径(其实也可以表示文件夹名)
案例:当前文件夹创建,#mkdir Lunix
ls列处的结果说明:蓝色表示文件夹,黑色表示文件,绿色表示拥有所有权限
案例:指定路径下创建出文件夹,#mkdir /root/Lunix
-
用法2:#mkdir -p一次可以创建多级目录,如**#mkdir -p /root/a/aa/aaa**
-
用法3:#mkdir 路径1 路径2 路径3…,一次性创建多个目录
2.5 touch指令
含义:#touch,创建文件
用法:#touch 文件路径(路径可以是文件名也可以是路径)
案例:使用touh在当前路径下来创建一个文件,命名为Lunix.txt。创建多个文件 #touch Linux.txt Lunix2.txt
案例:在指定的目录下创建文件 #touch /usr/local/bin/Lunix.txt
2.6 cp指令
含义:#cp,复制文件/文件夹到指定位置
用法:#cp 被复制的文档路径 文档被复制到的路径
注意1:Linux在复制过程中可以重命名,不过若无需要尽量不要重命名
注意2:使用cp命令复制文件夹的时候,#cp -r …
-r:递归操作
2.7 mv指令
含义:#mv(move),移动(剪切)文档到新的位置,可以重命名
用法:#mv 需要移动文档的路径 需要移动到的路径
注意:重命名也是# mv,和移动语法一样,路径也一致
2.8 rm指令
含义:#rm(remove),移除、删除文档
用法:#rm 选项 需要移除的文档路径
选项:
- -f:force,强制
案例:删除一个文件,#rm 文件路径
如果在删除中不想频繁的输入“y/n”,在指令中加入-f
Tab键提示已有文件名
案例:删除一个文件夹,# rm -rf 文件夹(目录)路径
案例:删除多个文件,#rm -fr 文件名 文件名 文件名…
案例:要删除一个目录下有公共特性的文件,例如都以Linux开头
#rm -f Linux*
*:表示为通配符,表示任意字符
2.9 vim指令
含义:vim,是一款文本编辑器
用法:#vim 文件路径(可以存在/可以不存在)
退出文件:shift+”:“,输入“q”,按下enter即可
2.10 输出重定向
一般命令输出都输出在终端中,有时需要将一些命令结果放入文件中,此时使用输出重定向
用法:#正常执行指令 >/>> 文件路径(文件可以不存在,自动创建)
- “>”:覆盖输出,覆盖原文件的文件
- “>>”:追加输出,不覆盖原文件,在末尾追加
2.11 cat指令
用法:
-
直接打开一个文件,输出完整文件,自动退出
#cat 文件路径
-
还可以对文件进行合并
#cat 待合并文件路径1 待合并文件路径2… >或>> 合并之后的文件路径
3. 进阶指令
3.1 df指令
含义:查看磁盘空间
用法:#df -h
3.2 free指令
含义:查看内存使用情况
用法:#free -m
swap:用于临时内存,当系统真实内存不够用时可以临时使用磁盘空间
-m:以Mb为范围阅读
3.3 head指令
含义:查看一个文件的前n行,如果不设置n,默认10行
用法:#head -n 文件路径
-n:表示行数
3.4 tail指令
用法:
-
查看一个文件的后n行,如果不设置n,默认10行:#tail -n 文件路径
-
可以通过#tail指令查看一个文件的动态变化:#tail -f 文件路径(变化内容不能手动增加)
该命令一般用于查看日志
3.5 less指令
含义:查看文件,以较少的内容进行输出,按下辅助键查看更多功能
用法:#less 需要查看的文件路径
辅助键:数字+enter、space+↑/↓
3.6 wc指令
含义:统计文件内容信息(行数、单词书、字节数)
用法:#wc -lwc 需要统计的文件路径
-l(line):行数
-w(words):单词数 依照空格来判断单词数量
-c(bytes):字节数
3.7 date指令(重点)
含义:表示操作日期(读取、设置),shell
用法:
-
# date
-
输出年月日:#date +%f(#date ”+%Y-%m-%d“)
-
输出年月日时分秒:#date “+%F %T”(#date ”+%Y-%m-%d %H:%M:%S“)
" ":表示将” “内内容组成一个整体
- 获取之前/之后某个时间点时间(备份):#date -d ”-1 day“ ”+%Y-%m-%d %H:%M:%S“
符号可选:+表示之后,-表示之前
单位可选:day、month、year(单复数任选)
%F:表示完整年月日
%T:表示完整时分秒
%Y:表示四位年份
%m:表示四位月份(带前导0)
%d:表示日期(带前导0)
%H:表示消失(带前导0)
%M:表示分钟(带前导0)
%S:表示秒(带前导0)
3.8 cal指令
含义:操作日历
用法:
-
直接输出当前月份的日:#cal(#cal -1)
-
输出本月、上月、下月日历:#cal -3
-
输出某一年份的日历:#cal -y
3.9 clear/ctrl+L指令
含义:清楚终端中已经存在的命令和结果
用法:clear 或者 ctrl+L
注意:该命令不是清除了之前的信息,而是将之隐藏到最上面
3.10 管道(重点)
管道符:|
含义:管道一般用于”过滤“、”特殊“、”扩展处理“
管道不能单独使用,必须配合前面的一些指令来使用,其作用时辅助
用法:
- 通过管道插叙性能当前目录下包含”y“字母的文档名称:#ls /|grep y
针对上述示例:
- 以管道作为分界线,前面的命令有个输出,作为后面命令的输入,最后再输出。
- grep指令:主要用于过滤,和任意有输出的指令都可以搭配
-
通过管道实现#less 的效果:#cat 路径|less
-
扩展处理:统计目录下的文档数目
#ls /|wc -l