目录/文件
显示/读取文件
- ls:显示文件
- -a全部文件和目录内容
- -l详细内容
- -h让人易于理解的
- -t时间
- cd: 切换文件和目录 相对路径和绝对路径
- du:显示文件和目录的大小
- cat:一次性显示文件的所有内容 命令+文件路径
- less: 分页显示文件内容
- q键停止读取命令,终止less命令
- =:显示当前文件位置(行数)
- /:搜索模式 n键跳到下一个符合的位置 N键:跟n键相反
- head:读取文件的开头
- -n 表示显示的行数
- tail:读取文件的结尾
- -f 表示实时追踪文件的更新(默认每隔一秒)
操作文件
- touch:创建空白文件 如需文件名中间有空格,用引号
- mkdir:创建目录 make+directory
- -p参数递归创建目录结构(-p one/two)
- cp;拷贝文件(目录)
- -r 目录的所有内容都会被拷贝
-
- 表示所有
- mv:移动文件、重命名文件(目录)
- rm:删除文件(目录)
- -i参数询问是否删除
- -f强制删除(不询问)
- -r递归删除目录及子目录文件
- ln:创建链接
- 对于硬链接:删除任意一方的文件,共同指向的文件内容并不会硬盘上删除
- 创建软链接需要加参数-s
-
linux有两种链接类型:硬链接和软链接 硬链接不能指向目录的链接,而软链接可以指向文件和目录
根目录下各文件介绍
- /var目录通常包括程序的数据
- syslog记录系统日志的文件
杂记
- ls -l显示的第一列是文件访问权限符
- d-目录, r-读, w-写, l-链接, x-执行
- 第一个符号为 - 表示普通文件
- 一般Linux的配置文件大多以点开头,而且多以rc结尾
- rc是大多脚本类文件的后缀,脚本通常在程序启动阶段被调用
- alsamixer:音量调节命令
- updatedb:更新数据库命令,此命令只能有root执行
- Unicode标准的utf-8编码规定:一个中文字符=3字节
- 中文的编码方式是utf-8,英文数字的则是ACSll码
- CSV文件:逗号分隔符(字符分割符) 后缀名是.csv
- /dev/null 文件时特殊文件,它总是空的。能让任何发送到/dev/null的数据作废
- ctrl + alt + F2:打开命令行终端
- ctrl + R:查找在终端使用过的命令
- uname -r:查看Linux系统内核版本
- df:查看文件系统的磁盘空间占用情况
- -Th
Linux管理
用户管理
- sudo:以管理员的身份运行命令,暂时成为root
- su - :切换到root
- sudo du:一直成为root
群组管理和文件权限管理
- groupadd [群组名]:添加群组
- usermod:修改用户账户
- -l :用户重命名(/home目录下的用户名不会被改变)
- -g 修改用户所在的群组
- -G 一次性将用户添加到多个群组
- groups:查看用户所在群组,后加用户名 不加参数任何则显示当前用户群组
- groupdel:删除群组
- chown:修改文件所有者
- chown命令也可以起修改文件的群组
chown thomes:friends one
- chown命令也可以起修改文件的群组
- chgrp:修改文件的群组
- chmod:修改访问权限
- r – 4,w – 2,x – 1
- 合并权限:4+2=6,数字6具有读和写的权限
- 640分别表示:
- 文件的所有者具有读和写的权限
- 文件所在群组的其他用户具有读的权限
- 除此之外的其他用户没有任何权限
- 最宽泛的权限:777
- 权限000,没有人能对文件进行操作,root除外
查找文件
- locate(定位):快速查找
- locate命令不会对实际的整个硬盘进行查找,而是在文件的数据库里查找记录
- 缺点:搜索结果太多且繁杂,不能找到一天之内创建的文件,除非用root更新数据库
- find:查找当前实际的文件
- find命令不会再文件放数据库中查找记录,而是 遍历你的实际硬盘
- -name:根据文件名查找 文件名需要加引号
- 当 * 置于文件名后面表示以XX开头,反之前面,则以XX结尾的
- -size:根据文件大小查找
- +表示大于
- 反之-表示小于注意-size与文件大小之间要有空格
- atime:根据文件的最近访问时间查找
- -type:根据文件类型查找
- -type d:只查找目录类型
- -type f:之查找文件类型
- -print:格式化打印
- %p:文件名
- %u:文件的所有者
数据处理
-
grep:筛选数据 [ grep+查询文本+文件 ]
- -i:忽略大小写
- -n:显示行号
- -v:只显示文本不在的行
- -r:在所有子目录和子文件中查找
- -E:正则表达式
-
sort:为文件行排序
- -o:将排序后的内容写入新文件
- -r:倒序排列
- -R:随机排序
- -n:对数字类型进行排序
-
wc:对文件进行统计 - 注意换行符
- 返回四列数据分别是:行数(newline counts)、单词数(word counts)、
字节数(bytes counts)、文件名 - -c:字节数
- -m:字符数
- -c和-m文本属于中文时不相同
- -l:行数
- -w:统计单词数
- 返回四列数据分别是:行数(newline counts)、单词数(word counts)、
-
uniq:删除文件中的重复内容
- -c:统计重复的行数
- -d:只显示重复的行
-
sort和uniq命令不会改变原文件的内容,只是把处理后的内容显示出来。可以将处理后的内容贮存到新的文件里: 命令+旧文件+新文件
-
cut:剪切文件的一部分内容
- -c:根据字符数来剪切
cut -c 1-3 name.txt //表示每行只保留第1到第3个字符
- -d:分隔符 例:
cut -d , -f 1 notes.csv
- -f:区域 多个区域之间用逗号隔开
流和输出重定向
- >:重定向到新的文件(覆盖新文件原本内容)
- >>:重定向到文件末尾(追加)
- > 和 >> 只能将标准输出重定向到文件,而将标准输出错误重定向到文件,需是2>
- stdin:标准输入 – 0
- stdout:标准输出 – 1
- stderr:标准错误输出 – 2
cat students.txt > result.txt 2> new_error.txt
- 2>&1:将标准输出和标准错误输出重定向到同一个文件
cat nop.txt > result2.txt 2>&1
输入重定向和管道
- <:从文件中读取
cat notes.csv
和cat < notes.csv
运行的结果一致,但原理却不一样cat < notes.csv
cat命令负责打印文件内容,而打开文件和将文件内容传递给cat命令的工作,则交给Shell(控制终端的程序)程序完成
- <<:从键盘中读取
sort -n << END
在键盘上输入数值,结束输入END,并将输入的数值进行排序sort -n << end > sort_num.txt 2>&1
- | :管道 连接多个命令