linux系统文件结构
/ 根目录
/bin 存放必要的命令
/boot 存放内核以及启动所需的文件
/dev 存放设备文件
/etc 存放系统配置文件
/home 普通用户的宿主目录,用户数据存放在其主目录中lib 存放必要 的运行库
/mnt 存放临时的映射文件系统,通常用来挂载使用
/proc 存放存储进程和系统信息
/root 超级用户的主目录
/sbin 存放系统管理程序
/tmp 存放临时文件
/usr 存放应用程序,命令程序文件、程序库、手册和其它文档。
/var 系统默认日志存放目录录
关闭防火墙
systemctl stop firewalld.service
禁止防火墙开机启动
systemctl disable firewalld.service
关闭SELinux
nano -w /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled保存并退出:^x->y->回车
--------------
命令:ls
-a 这个选项能显示.开头的隐藏文件
-i 显示每个文件的inode号
-m 所有项目以逗号分隔,并填满整行行宽
-R 同时列出所有子目录层
-h 将列出文件的大小以人性化格式输出
--color=tty(2个-号)显示文件的时候以色彩提示
目录 可执行文件 连接文件 一般文件
蓝色 绿色 淡蓝色 白色
查看文件状态修改时间
ls -lc [文件名]
查看文件的访问时间
ls -lu [文件名]
查看文件的最后修改时间
ls -l
显示文件的详细访问时间
ls –full-time
显示本地目录下以” .”开头的文件
ls -d .*
------------
命令: date 显示系统当前时间
命令格式: date [选项]
-R 按照RFC822文档中的时间格式来实现时间
-r 文件名 显示文件的最后修改日期
-u 显示utc时间(通用时间)
使用date查看过去/将来的时间
1. 查看2045年8月15日是星期几(当前时间为2014-9-27)
date -d "+31year -1 month -12 day"
2. 显示2014年1月1日星期几
date -d “+3month +5day”或#date -d “+4month -26day”
--------------
命令: hwclock 显示硬件时钟
将系统时钟同步至硬件时钟
hwclock --systohc
将硬件时钟同步至系统时钟
hwclock --hctosys
---------------
命令: tzselect 功能:设置系统时区
1. 设置当前系统的时区
tzselect
命令: timedatectl 功能:设置系统时间及日期
语法格式:timedatectl [选项] [日期]
示例:
1. 显示各项当前时间
timedatectl
2. 显示系统所支持的时间区域
timedatectl list-timezones
3.设置当前系统的时间区域
timedatectl set-timezone Asia/Shanghai
4. 设置当前系统时间
timedatectl set-time “2014-09-0912:29:30”
5.设置NTP支持
timedatectl set-ntp true
-------------
命令: mkdir 创建目录
-p 建立多级目录
-m 在建立目录的时候给目录赋于权限值
示例: mkdir -p /name/a/b/c
--------
命令: rmdir 删除空目录
-p 删除多级空目录
示例: mkdir -p /name/a/b/c
注意:目录本身一定要是空的
------------
命令: rm 删除文件/目录
-i 在删除文件之前需要手工确认
-v 在删除文件的时候显示信息
-r 删除目录 -f 忽略提示
示例: rm -v filename
常用选项: rm -rf 目录名
-----------
命令:cp 复制命令
cp [选项] 文件名(原件) 目的文件名(复印件)
-R 复制整个目录里的内容
-p 复制完后保持目录的权限值
-v 在复制文件的时候显示进度
-f 在复制的时候如果碰到目的文件名有重复就将原先的删除
------------
命令: mv 移动文件或目录/修改文件或目录名
命令格式: mv [选项] 源文件 目的路径
-i 如果目的地有相同文件名时会出现提示
-v 在搬移文件时显示进度,在移动多文件时非常有用
-u 当移动时只有源文件比目的文件新的时候才会移动
-f 强制覆盖已有的文件
示例: mv -i 1.jpg /home/2.jpg
-------------
命令: pwd 显示当前工作路径
-----------
命令:cat 查看文本文件
命令格式: cat [选项] 文件名
-b 显示文件内容的时候显示行数
-n 显示文件内容包括空行
-s 将多个空行合并成一个空行输出
-------------
命令: more 查看文本文件命令
命令格式: more [选项] 文件名
+行数直接从给定的行数开始显示
-s 将多个空行压缩成一个空行
-p 清除屏幕后再显示
提示: 用more打开一个文件后用空格向下翻页,用b向上翻页
------------
命令: nano 功能:文本编辑器
命令格式:nano [选项] [行号] 文件名
--------------
命令: head 查看文件头部
命令格式:head [选项] 文件
-n <行数> 显示文件的最前指定的行
-c <字节数> 显示文件前N个字节数里的内容
-q 不输出文件头的内容
-v 输出文件头的内容
示例: head -n 15 test.file
-------------
命令: tail 查看文件尾部
命令格式:tail [选项] 文件
-f 循环读取
-c <字节数> 显示文件前N个字节数里的内容
-q 不输出文件头的内容
-n <行数> 指定所显示的行数
-v 输出文件头的内容
示例: tail -n 15 test.file
-------------
命令:ln 生成链接文件
命令格式:ln [选项] 源文件 链接文件
-f 删除已存在的目的文件
-i 如果碰到有重复名字的提示如何操作
-v 显示操作信息
-s 软链接选项
-------------
命令: file 功能:查看文件的类型
-------------
命令: stat 功能:显示文件或文件系统状态
命令格式:stat [选项] <文件/目录>
-f:查看指定的文件系统
stat可查看:
-
文件名 2. 文件尺寸 3. I节点号 4. 创建时间/访问时间/状态(属 主、组、权限)修改时间 5.权限 6.链接文件个数 7. 属主及属组等
---------------
多命令配合或结果导入、导出符号
“ |” 管道符号
“ >” 输出重定向
“ >>” 输出重定向
“ <” 输入重定向
多命令配合或结果的引用符号
“ ” 双引号
' ' 单引号
反引号
--------------
命令: whereis
特点: 是查找工具中速度最快的一个,但是whereis查找的范围有限, whereis 只能查找2进制程序,文档和源码。
命令: which
which命令是查找工具中速度最快命令之一,但是which查找的范围有限,但是 它可以给用户显示出命令所在的路径
命令格式:which 文件名
-----------
find -size n [c]
查找n值大小的文件,默认单位是块(1块=512字节)
1. 查找大于1500字节的文件
find ~ -size +1500c
2. 查找等于1500字节的文件
find ~ -size 1500c
3. 查找小于1500字节的文件
find ~ -size -1500c
4. 查找大于512k字节的文件
find ~ -size +512k
5. 查找等于1M字节的文件
find ~ -size 1M
6. 查找小于1G字节的文件
find ~ -size -1G
7. 查找大于10块的文件
find ~ -size +10
8. 查找等于10块的文件
find ~ -size -10
9. 查找大于10M小于20M的文件
find ./ -size +10M -size -20M
10. 查找小于10块的文件
find ~ -size -10
11. 查找文件/目录字节为0的文件(即空文件)
find / -empty
-----------
命令: grep
功能: 通过正则表达式查找文件中的关键字
参数:
-i:忽略大小写
-c:打印匹配的行数
-C:打印出匹配的上下文(上N行,下N行)的多少行
-l:列出匹配的文件名
-L:列出不匹配的文件名
-n:打印包含匹配项的行和行标
-w:仅匹配指定的单词而非关键字
-e:索引匹配字串
-r:递归查询
-v:不输出匹配的行
-A <行号>:显示所找的匹配字段,并显示下面指定的行数的信息
-B <行号>:显示所找的匹配字段,并显示上面指定的行数的信息
正则表达式表示方法:
忽略正则表达式中特殊字符的原有含义
^ 匹配正则表达式的开始行
$ 匹配正则表达式的结束行
< 从匹配正则表达式的行开始
> 到匹配正则表达式的行结束
[ ] 单个字符;如[A] 即A符合要求
[ n - m ] 范围 ;如[A-H]即包含A至H都符合要求
. 所有的单个字符
* 所有字符,长度可以为0
---------
命令: egrep
信息: grep的增强版/扩充版(即grep -E)
特点:
1.支持?匹配,即匹配0到1个正则表达式
2.支持+匹配,即匹配1到N个正则表达式
3.支持”或关系”的匹配
4.在查找范围时,可直接用{a,z},而不需要””符号
5.可以被()来包含正则表达式进行分组
6.参数与grep基本通用
示例:
1. 递归且不区分大小写对test字段查找
grep -ri “test” ./
2. 打印匹配”test”关键字有多少行
grep -c “test” grepcmd.txt
3. 打印匹配”test”关键字的上下文各1行
grep -C 1“test” grepcmd.txt
4. 打印匹配test关键的行并显示行号
grep -n “test” grepcmd.txt
5. 查找开头为”#”的行,并显示行号
grep -n ^# grepcmd.txt
6. 查找在本地目录下(含子目录)结尾为”c”的文件
grep -r c$ ./
7. 查找以”man”开头的单词
grep '<man'* grepcmd.txt
8. 查找”man”仅匹配此三个字符
grep '<man>' grepcmd.txt
9. 查找含有以”D”字符开头的行
grep -n ^[D] grepcmd.txt
10. 查找含有以”A-F”字符开头的行
grep -r “^[A-F]” ./
11. 查找含有以”A-F”字符开头,第2个字符为i的行
grep “^[A-F]i” grepcmd.txt
12. 查找含有以'nobody'字符的行及下面3行信息
grep -A 3 'nobody' /etc/passwd
13. 查找含有以'nobody'字符的行及上面3行信息
grep -B 3 'nobody' /etc/passwd
14. 查找以D或d字符为开头的行
egrep '(^D|^d)' egrepcmd.txt
15.匹配以D开头的0个或1个字符
egrep ^D? egrepcmd.txt
16.查找不包含”chuai”及”lisa”的字段
egrep -v '^(chuai|lisa)' egrepcmd.txt
----------
命令: cut
功能: 对所需字符进行截取
-d “n”:定义分界符,即点位
-f n:取第几位的字符
示例:
1. 以空格符为分界符,进行第2位截取.
cut -d “ “ -f 2 ./cutcmd.txt
2. 以空格符为分界符,进行第1,3位截取.
cut -d “ “ -f 1,3 ./cutcmd.txt
---------
命令:sed
功能:通过指定的正则表达式完成指定关键字的过滤、截取、修改等操作
特点:
1.sed属于一个流线式的非交互式的编辑器
2. sed在输入命令和文件名后,将在屏幕上输出
3.在不用重定向至文件之前,是不会改变文件现有内容以避免修改文件时出现问题
示例:
1.将install.log的第1-3行删除 $sed ‘1,3d’ install.log
2.对install.log查找以A或a开头且后面字符为pache的字串 $sed -n ‘/^[Aa]pache/p’ install.log
3.打印匹配字段的行及所有行 $sed ‘/ftp/p’ install.log
4.打印匹配字段的行 $sed -n ‘/ftp/p’ install.log
5.默认删除第3行 $sed ‘3d’ install.log
6.默认删除第3行至末尾行 $sed ‘3,$d’ install.log
7.删除含有指定字段的行 $sed ‘/data/d’ install.log 8.将data替换为date $sed –n ‘s/data/date/p’ install.log 9.将行尾noarch为结尾后面增加.chuai字符 $sed ‘s/noarch$/&.chuai/’ install.log
8.将所有行尾noarch的单词替换为chuai单词 $sed -n ‘s/noarch$/chuai/gp’ install.log
9.显示包含ra及data字段的行 $sed –n ‘/ra/,/data/p’ install.og
10.从第5行开始显示直至包含有data的行 $sed -n ‘5,/data/p’ install.log
-----------
命令:awk
功能:通过正则表达式,得到需要的行,列信息
示例:
1. 用awk 打印所有包含有data字段的行
$awk ‘/data/’ install.log
2. 查看df -h命令的第2列
$df -h | awk '{print $2}'
3. 查看df -h名ing的第2,5列
$df -h | awk '{print $2,$5}'
4. 显示install.log的第四行
$awk 'NR==4' install.log
5.打印install.log文件中包含data字段行的第二区域
$awk ‘/data/ {print $2}’ install.log
6. 列示月份及年份(为换行符)
$date | awk ‘{print “Year:” $6 “Month:” $2 }’
7. 在有/data关键字的行的第1列后面增加1个制表符,并增加RedHat,第2列后面!字符
$awk ‘/data/{print $1 “RedHat Linux”$2 “!” }’ install.log
8. 在有data关键字的行第1列前面增加1个制表符,并增加RedHat,第2列后面!字符)
$awk ‘/data/{print “RedHat Linux, “$1,$2 “!” }’ install.log
9. 在有noarch字段的行前增加记录号($0为行头前)
$awk ‘/noarch/{print NR, $0}’ install.log
10. 在有sda2字段的行前增加行的序号及显示第2列内容
$df -h | awk '/sda2/{print NR,$2}'
11. 匹配noarch字段,如果有,则显示整行
$awk ‘$2 ~ /noarch/’ install.log
12. 匹配不存在noarch字段的行,如果有,则显示整行
$awk ‘$2 !~ /noarch/’ install.log
---------------
命令:sort
功能:默认以排序ASCII方式进行排序[a-z]
参数:
-u 去除重复的行
-r 降序排序[z-a]
-n 数值排序,默认情况10比2小,主要因为sort判断第一字符的值
-k 以文本的列进行判断
-t 设定分界符
示例:
1. 对/etc/passwd文件进行升序排序
sort /etc/passwd
2. 对/etc/passwd文件进行降序排序
sort -r /etc/passwd
3. 对/etc/passwd第3列进行数值排序,分界符为:
sort -n -k 3 -t : /etc/passwd
4. 对test.txt文件中重复的行删除并升序排序
sort -u test.txt
5. 对/etc/shadow文件进行降序排序
sort -r /etc/shadow
6. 对/etc/passwd第3列进行数值排序,分界符为:
sort -n -k 3 -t : /etc/passwd
7. 对/etc/passwd的第2列进行逆序排序,并对第3列进行数值排序,优先级为第2列
sort -k 2r -k 3n -t : /etc/passwd
8. 对/etc/passwd的第3列进行数值排序,第2列进行逆序排序,优先级为第3列
sort -k 3n -k 2r -t : /etc/passwd
-----------
命令:wc
功能:统计行数、字数、字符数、文件总统计数
参数:
-l 统计行数
-c 统计字节数
-w 统计字数(单词数)
示例:
1. 统计/etc/passwd文件行数
wc -l /etc/passwd
2. 统计/etc/passwd文件的字数
wc -w /etc/passwd
3. 统计/etc/passwd文件的字节数
wc -c /etc/passwd
4. 统计/etc/passwd文件行数和字节数
wc -lc /etc/passwd
5. 统计/etc/passwd与/etc/fstab各文件的行、字、字节数
wc -lwc /etc/passwd /etc/fstab
--------------
命令:uniq
功能:检查文本中重复出现的行
-c 显示输出,并在文本行前加出现的次数,但如果重复行不连续,则不认为是重 复的行
-d 只显示重复的行
-u 只显示不重复的行
1. 对test.txt内容进行检查并显示次数
uniq -c test.txt
2. 对test.txt的重复行不显示
uniq -u test.txt
3. 忽略test.txt的第1列,对第2列进行检查
uniq +1
4. 对test.txt的显示重复行
uniq -d test.txt
5. 忽略test.txt的第1个字符, 从第2个字符开始进行检查
uniq -s 1 test.txt
6. 对每行的第2个字符以后不在做检查
uniq -w 2 -c test.txt
------------
命令:tac
功能:将行颠倒
说明:将最头行放置最底行,文本中所有的行均颠倒输出
-----------
命令:tr
功能:大小写转换
语法格式:tr 现有小写范围 转换大写范围
tr 现有大写范围 转换小写范围