ekwong.cn

尔康的博客

0%

LinuxStudy

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这个程序;

读取前面几行,默认读取前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
2
3
4
# 定义一个变量
EKWONG_DIR=/home/ekwong
# 升级为全局变量
export EKWONG_DIR
路径

路径PATH是环境变量中重要的一个,一般存放着用户输入的命令文件

查看当前配置的路径:

1
echo $PATH

添加新的路径到当前定义的路径

1
PATH=$PATH:/you/path