目录
一、环境说明
云:腾讯云
发行版本:CentOS 7.6
软件:Xshell
安装
- 需在
root
下安装tree
,若第1行不成功则输入第2行后再次输入第1行
yum install -y tree
yum install -y epel -release
- 安装手册
yum install -y man-pages
二、基础概念
2.1 指令的本质
语法:which [指令]
功能:查看特定指令的系统路径
推导:指令 -> 有系统路径 --> 只有文件/目录才有系统路径 --> 指令一定不是目录 --> 指令是文件 --> 指令可以执行 --> 指令是程序
总结:
指令的本质:程序
【拓展】
- 设置别名(关机失效)
(说明:将cd..
起另一个名字叫back
)
2.2 路径的认识
- 路径可以分为两个部分:从哪里来+是谁
从哪里来可以分为:
① 绝对路径 :从根目录开始(唯一性)
② 相对路径:从当前目录开始(不唯一)
2.3 目录的认识
与Windows类似,Linux有如下特点:
- 目录结构:多叉树
根目录:/
叶子结点:目录/文件
【拓展】
- 工作目录
whoami
指令可以查看当前是哪种用户,如果是root
则显示/root
;如果是普通用户则显示/home/xxx
2.4 echo指令的认识
- 功能:输出字符串,显示到标准输出
- 用法:
# 1.
echo "hello"
屏幕上打印:hello
# 2. 输出重定向(若文件不存在自动创建)
# 重定向解释:本来应显示到显示器重定向写入文件
echo "hello" > text.txt
# 3. 追加重定向
echo "hello" >> text.txt
三、ls指令
-
语法:
ls [选项] [目录或文件]
-
功能:
① 对于目录,该命令列出该目录下的所有子目录与文件
② 对于文件,将列出文件名以及其他信息。 -
常用选项
①-l
:列出文件的详细信息。
②-a
:列出目录下的所有文件,包括以.
开头的隐含文件。
③ -d
:将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
Tip:
④ -R
:列出所有子目录下的文件。
⑤ -i
:在文件名前输出文件的 i 节点的索引信息。
⑥ -s
:在文件名前输出该文件的大小。
⑦ -k
:以 k 字节的形式表示文件的大小。
⑧ -t
:以时间排序。
)
【补充】
ll
:ll
其实是ls -l
的别称
四、pwd指令
- 语法:
pwd
- 功能:显示用户当前所在的目录
五、cd指令
- 语法:
cd 目录名
- 功能:改变工作目录。将当前工作目录改变到指定的目录下。
- 举例:
①cd ..
: 返回上级目录cd .
:当前目录
②cd /home/linux/
: 绝对路径
③cd ../day02/
: 相对路径
④cd ~
:当前用户对应工作目录
⑤cd -
:返回最近访问目录
六、touch指令
- 语法:
touch [选项]... 文件...
- 功能:
① 新建一个不存在的文件
② 更改文档或目录的日期时间,包括存取时间和更改时间(默认全改) - 常用选项:
①-a
/--time=atime
/--time=access
/--time=use
只更改存取时间
②-m
/--time=mtime
/--time=modify
只更改变动时间
③-t
/-d
使用指定的日期时间,而非现在的时间
④-c
/--no-create
不建立任何文档
⑤-f
此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
⑥-r
把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同
【补充】
stat
可以查看文件时间,文件时间有三种:① access ② modify ③ change
七、mkdir指令
- 语法:
mkdir [选项] dirname...
- 功能:在当前目录下创建一个名为 “dirname”的目录
- 常用选项:
①-p,
/--parents
建立一条
八、rmdir指令和rm指令
- 语法:
rmdir [-p][dirName]
- 适用对象:具有当前目录操作权限的所有使用者
- 功能:删除空目录
- 常用选项:
①-p
当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
- 语法:
rm [-f-i-r-v][dirName/dir]
- 适用对象:所有使用者
- 功能:删除文件或目录
- 常用选项:
①-f
强制删除
②-i
删除前逐一询问确认
③-r
删除目录及其下所有文件
九、cp指令
- 语法:
cp [选项] 源文件或目录 目标文件或目录
- 功能: 复制文件或目录
- 注意:同时指定两个以及两个以上文件复制到目标目录,若目标目录存在则可以复制,若不存在则报错。
- 常用选项:
①-f
|--force
强行复制文件或目录, 不论目的文件或目录是否已经存在
②-i
|--interactive
覆盖文件之前先询问用户
③-r
递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
④-R
|--recursive
递归处理,将指定目录下的文件及子目录一并处理
十、mv指令
- 语法:
mv [选项] 源文件或目录 目标文件或目录
- 功能:
① 剪切
② 重命名 - 常用选项:
①-f
:若目标文件已经存在,不会询问而直接覆盖
②-i
:若目标文件已经存在,询问是否覆盖
十一、查看文件内容
1.cat指令
- 语法:
cat [选项][文件]
- 功能: 查看目标文件的内容
- 常用选项:
①-b
对非空输出行编号
②-n
对输出的所有行编号
③-s
不输出多行空行
【拓展】
tac
逆序文本输出- 只有一个
cat
为标准输入,默认从键盘读取内容
2.more指令
- 语法:
more [选项][文件]
- 功能:more命令,功能类似 cat ,分p查看
- 常用选项:
①-n
对输出的所有行编号
3.less指令
- 语法:
less [参数] 文件
- 功能:less可以随意向前向后浏览文件,而more只能向前移动,而且less在查看之前不会加载整个文件。
- 常用选项:
①-i
忽略搜索时的大小写
②-N
显示每行的行号
③/
字符串:向下搜索“字符串”的功能
④?
字符串:向上搜索“字符串”的功能
⑤n
:重复前一个搜索(与 / 或 ? 有关)
⑥N
:反向重复前一个搜索(与 / 或 ? 有关)
总结:
查看小文件用cat
查看大文件(① 日志 ② 别人的代码)用more
或less
4.head指令
- 语法:
head [参数]... [文件]...
- 功能:head默认打印开头10行
- 常用选项:
①-num
显示的行数
5.tail指令
- 语法:
tail[必要参数][选择参数][文件]
- 功能:打印文件尾部内容
- 常用选项:
①-num
显示行数
②-f
循环读取
6.查看中间指定行数
以[100,120]行的内容为例
方法一:重定向 (参考echo
)
① 前120行内容存入临时文件temp.txt中
② 取text.txt文件后20行内容
head -120 file.txt > temp.txt
tail -20 temp.txt
方法二:管道 |
head -120 file.txt | tail -20
十二、时间
1.data指令
- 语法:
date [OPTION]... [+FORMAT]
- 常用形式:
①%Y
年%m
月%d
日%H
时%M
分%S
秒
%F
= =%Y-%m-%d
|%X
= =%H:%M:%S
② 设置时间
date -s //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″ //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″ //这样可以设置全部时间
③ 时间戳
data +%s
,时间 --> 时间戳
data -d@1508749502
,时间戳 --> 时间
2.cal指令
- 语法:
cal [参数][月份][年份]
- 功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
- 常用选项:
①-3
显示系统前一个月,当前月,下一个月的月历
①-j
显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
①-y
显示当前年份的日历
十三、查找
1.find指令
- 语法:
find pathname -options
- 功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
- 常用选项:
①-name
按照文件名查找文件。
2.grep指令
- 语法:
grep [选项] 搜寻字符串 文件
- 功能: 在文件中搜索字符串,将找到的行打印出来
- 常用选项:
①-i
:忽略大小写的不同,所以大小写视为相同
②-n
:顺便输出行号
③-v
:反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
【拓展】
- 支持正则表达式
#eg
grep 'hello 99[0-5]' file.txt # 找hello 990 ~ hello 995
grep '^x' file.txt # 找以x开头
十四、压缩
1.zip/unzip指令
- 语法:
zip 压缩文件.zip 目录或文件
- 功能: 将目录或文件压缩成zip格式
- 注意:直接zip目录,只能得到目录本身
- 常用选项:
①-r
递归处理,将指定目录下的所有文件和子目录一并处理
②-d
指定路径
# eg
unzip test.zip -d .
2.tar指令
- 语法:
tar [-cxtzjvf] 文件与目录 .... 参数
- 常用选项:
-c
:建立一个压缩文件的参数
-x
:解开一个压缩文件的参数指令
-t
:查看 tarfile 里面的文件
-z
:是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j
:是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v
:压缩的过程中显示文件
-f
:使用档名 ( f 之后要立即接档名)
-C
:解压到指定目录
#一对常用
tar czf text.tgz text-C . # 压缩
tar xzvf tesy.tgz # 解压
十五、其他
1.bc指令
- 功能 :bc命令可以很方便的进行浮点运算
#eg
echo "1+2+3" | bc
2.uname指令
- 语法:
uname [选项]
- 功能: uname用来获取电脑和操作系统的相关信息。
- 补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
- 常用选项:
-a
|–all
详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
3.history指令
- 功能: 打印输入的历史指令
4.shutdown指令
- 语法:
shutdown [选项]
- 常见选项:
-h
: 将系统的服务停掉后,立即关机。
-r
: 在将系统的服务停掉之后就重新启动
-t sec
: -t 后面加秒数,亦即『过几秒后关机』的意思
5.man指令
- 语法:
man [选项] 命令
- 功能:访问Linux手册页的命令
- 常用选项:
①num
只在第num
章节找
②-k
根据关键字搜索联机帮助
③-a
将所有章节的都显示出来(按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕)
【说明】手册分为8章
- 是普通的命令
- 是系统调用
- 是库函数
- 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
- 是给游戏留的,由各个游戏自己定义
- 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
- 是系统管理用的命令,这些命令只能由root使用,如ifconfig