Linux 基础
Linux 文件管理
文件的时间
- mtime 即 modification time 当文件的数据内容发生变动时,就会升级这个时间;
- ctime 即 status time 当文件的状态改变时,会升级这个时间,例如权限或属性更改了,就会升级这个时间;
- atime 即 access time 当文件内容被取用时,就会升级这个时间。例如使用 cat 指令读取文件内容,就会升级atime;
常见的Linux指令
系统工作命令
echo
用于输出字符串或者变量提取后的值,用法为
1 | echo [字符或变量] |
date
用于显示时间或日期,用法为
1 | date [选项] [指定格式] |
reboot
重启系统,默认需要root权限才能执行
poweroff
关闭系统,默认需要root权限才能执行
wget
用于下载网络文件,用法为:
1 | wget [参数] 下载地址 |
参数可以是以下几个
- -b 后台下载模式
- -P下载到指定目录
- -t 最大尝试次数
- -c 断点续传
- -p 下载页面内所有的资源,包括图片、视频等
- -r 递归下载
ps
查看系统的进程状态,用法为
1 | ps [参数] |
参数可以是:
- -a 显示所有进程(包括其他用户的进程)
- -u 用户以及其它详细信息
- -x 显示没有控制终端的进程
top
用于监视进程活动与系统负载等信息,
- 第一行:系统时间、运行时间、登录终端数、系统负载(一分钟、五分钟、十五分钟内的平均值)
- 第二行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数
- 第三行:用户占用资源百分比、系统内核占用资源百分比等
- 第四行:物理内存总量、可用内存量,内存使用量、缓存内存量
- 第五行:虚拟内存总量、虚拟内存可用量、虚拟内存使用量、可用内存量
kill
终止指定的PID的服务进程,用法为
1 | kill [参数][进程PID] |
系统状态命令
ifconfig
获取网卡配置和网络状态等信息
uname -a
查看系统内核与系统版本等信息
free
查看系统内存使用情况,一般可以用参数 -h -m 或 -g
who
查看当前登入主机终端信息
文件与目录
cp
copy 复制文件,除了复制之外,还可以创建链接、对比两个文件新旧和复制整个目录等。
用法
1 | cp 源路径 目标路径 |
复制数据的前提是,操作者必须拥有文件的read权限;
可选参数是 -a 或者 -p。带上可选参数后,可以把文件的权限也复制过来。
rm
remove 用于删除文件或目录,如果删除的是目录,带上 -rf
1 | rm -rf 目录名称 |
mv
move 移动文件或目录,或者命名。
1 | mv 源路径 目标路径 |
若是命名,直接把目标路径名字改成新的名字就好了。
tar
对文件进行打包压缩或解压,用法:
1 | tar [选项][文件] |
常用打包指令:
1 | tar -cvf 生成的压缩包名.tar.gz 需要打包的目录 |
常用解压指令:
1 | tar -xvf 压缩包名称.tar.gz |
文件内容查阅
cat
concatenate (中文意思:连续) 从第一行开始到最后一行显示文件内容,如果加上 -n 或 -b ,则在每一行前面加上行号。
tac
与cat相反 从最后一行开始到第一行显示文件内容;
more
从第一页开始,一页一页翻动 (无法往前翻,只能往后翻),提示语会在最下面一行,可以输入以下命令进行操作:
- 空白键(space) 代表向下翻页;
- 回车键(Enter) 代表向下翻一行;
- /字符串 代表在这个显示的内容当中,向下搜寻输入的字符串关键字;
- :f 立刻显示文件名和当前显示的行数;
- q 代表立刻离开 more,不再显示该文件的内容;
- b 代表往回翻页;
less
从第一页开始,一页一页地翻动,支持向前上翻页和向上搜索,带行号打开,请用
1 | less -N 目标文件 |
- 空白键(space) 向下翻一页;
- [PageDown]键 向下翻一页;
- [PageUp]键 向上翻一页;
- /字符串 向下搜索字符串;
- ?字符串 向上搜索字符串;
- n 重复前一个搜索操作;
- N 反向重复上一个搜索操作;
- q 离开less这个程序;
head
读取前面几行,默认读取前10行,可以带上 -n 数字,读取文件的前数字行,例如
1 | head -n 8 文件名 |
代表读取文件的前8行
tail
读取文件的后几行,默认读取后10行,例如
1 | tail -n 8 文件名 |
代表读取文件的后8行。
可以带上 -f 参数,会一直等待新的数据加入,并且把新的数据也显示在屏幕上,可以按下 [ctrl]+c 离开;
1 | tail -f 文件名 |
touch
常用于创建一个空的文件或修改文件时间;
tr
替换文件中的字符,用法为
1 | tr [原始字符][目标字符] |
wc
统计文件的行数、字数或字节数,用法为
1 | wc [参数] 文件名 |
参数 -l 表示只显示行数
参数 -w 显示单词数
参数 -c 显示字节数
stat
查看文件的具体存储信息和时间
文件查找
whereis
通过Linux的数据库快速查找某个文件;
locate
通过Linux的数据库,模糊查找含有关键词的文件,例如:
1 | locate keyword |
可以通过updatedb命令手动升级Linux的记录文件数据库,记录文件的数据库会在每次Linux启动时更新。
find
在硬盘上根据条件搜索相关文件,可以是时间条件,可以是文件权限条件,查找速度可能不快,指令较复杂,这里不展开。
grep
在文本中执行关键词搜索,并显示匹配的结果,用法为:
1 | grep [选项]文件名 |
常用参数:
- -b 将可执行文件当作文本文件来搜索
- -c 仅显示找到的行数
- -i 忽略大小写
- -n 显示行号
- -v 反向选择(仅列出没有关键词的行)
- -E ‘字符串’ 搜索包含字符串内容的行
重定向、管道和环境变量
重定向
在Linux系统中,输入重定向是指把文件导入命令中,输出重定向是指把原本要输出到屏幕的数据信息写入指定文件中
输入重定向
符号 | 作用 |
---|---|
命令 < 文件 | 将文件作为命令的标准输入 |
命令 << 分界符 | 从标准输入中读入,知道遇见分界符才停止 |
命令 <文件1> 文件2 | 将文件1作为命令的标准输入并将标准输出到文件2 |
输出重定向
符号 | 命令 |
---|---|
命令 > 文件 | 将标准输出重定向到一个文件中(清空原有文件的数据) |
命令 2> 文件 | 将错误输出重定向到一个文件中(清空原有文件的数据) |
命令 >> 文件 | 将标准输出重定向到一个文件中(追加到原有内容的后面) |
命令 2>> 文件 | 将错误输出重定向到一个文件中(追加到原有内容的后面) |
命令 &>> 文件 | 将标准输出和错误输出共同写入到文件中(追加到原有内容的后面) |
管道
管道命令符,即 | 符号,意思为把前一个命令原本要输出到屏幕的数据,当作后一个命令的标准输入。
常用的转义字符
在写shell脚本时,最常用是以下四个转义字符:
- 反斜杠 \ 使反斜杠后面的一个变量变为单纯的字符串
- 单引号 ‘’ 转义其中所有的变量为单纯的字符串
- 双引号 “” 保留其中的变量属性,不进行转义处理
- 反引号`` 把其中的命令执行后返回结果
环境变量
可以使用 env 命令查看所有的环境变量
可以使用 export 命令将普通变量升级为全局变量,例如
1 | 定义一个变量 |
路径
路径PATH是环境变量中重要的一个,一般存放着用户输入的命令文件
查看当前配置的路径:
1 | echo $PATH |
添加新的路径到当前定义的路径
1 | PATH=$PATH:/you/path |