系统目录结构
几乎所有的计算机操作系统都是用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件, 而在子目录中又会进一步存放子目录和文件,以此类推形成一个树状的文件结构,由于其结构很像一棵树的分支, 所以该结构又被称为“目录树”。
Linux系统中也沿用了这种文件结构, 所有目录和文件都在 "根目录"下, 目录名为"/"。FHS(文件系统层次标准)定义了在根目录下的主要目录以及每个目录应该存放什么文件。
/etc 系统重要配置文件, 以及常用服务配置文件
/var 存放系统引导启动时产生的可变文件,文件通常动态更改的,例如: 缓存目录,日志文件
/run 系统启动后, 运行的程序产生的运行时数据, 包括进程的pid文件,锁文件等
/home 普通用户的主目录, 普通用户的家目录默认为/HOME/USERNAME
/root 超级管理员的主目录, 普通用户无权操作
/tmp 存放临时文件, 一般存放超过10天以上都会自动删除,可以更改删除临时文件的期限
/boot 存放系统引导时候需要的文件
/dev 存放设备文件
/usr 安装的软件, 共享库, 重要的子目录有
/usr/bin 用户命令目录
/usr/sbin 管理员命令目录
/usr/local 本地自定义安装的软件
/bin --> /usr/bin
/sbin --> /usr/sbin
lib -> usr/lib
lib64 -> usr/lib64
文件路径定位
路径的作用:定位文件具体位置信息
你要在那里创建什么文件?
你要将什么文件复制到什么地方?
你要删除的文件在什么地方?
1.特殊目录: (.)和(..)
在每个目录下, 都会固定存在两个特殊目录, 分别是一个点(.)和两个(..)的目录。一个点代表当的是当前目录, 两个点代表的是当前目录的上层目录。注意: 在Linux下所有以点开始的文件都是"隐藏文件", 对于这类文件, 只使用命令ls -l
是看不到的, 必须要使用ls -la
才可以看到,如下所示:
[root@xuliangwei ~]
[root@xuliangwei opt]
[root@xuliangwei opt]
. ..
2.绝对路径:
Linux系统采用了目录树的文件组织结构, 在Linux下每个目录或文件都可以从根目录处开始寻找, 比如: /usr/bin
目录。这种从根目录开始的全路径被称为"绝对路径", 绝对路径一定是以 “/” 开头的。
如何确认当前所在的目录, 可以使用pwd
命令查看:
[root@xuliangwei ~]
/root
3.相对路径
相对路径, 关键点在于当前在什么路径下。假设当前目录在/usr/local
下, 那么它的上层目录(/usr目录)可以用../
表示, 而``/usr/local的下层目录(src)则可以用
./src`表示。所谓的(.)和(..)目录实际上也是属于相对路径
//进入/opt目录
[root@xuliangwei ~]
[root@xuliangwei opt]
total 76
drwxr-xr-x. 2 root root 69632 Dec 4 11:00 .
dr-xr-xr-x. 33 root root 4096 Dec 4 10:40 ..
//进入当前目录
[root@xuliangwei opt]
//显示当前目录
[root@xuliangwei opt]
/opt
//进入当前目录的上层目录
[root@xuliangwei opt]
//进入上层目录,也就是/目录
[root@xuliangwei /]
/
cd
命令常见用法:
. 表示用户所处的当前目录
.. 表示上级目录;
~ 表示当前用户自己的家目录
cd - //切换上次所在目录
cd ~ //切换至当前用户家目录
cd //切换至当前用户家目录
cd . //.代表当前目录,一般在拷贝、移动等情况下使用
cd .. //切换至当前目录的上级目录
目录管理命令
1.目录创建命令mkdir
2.以树状显示目录结构命令tree
-L: 显示目录树的层级
# tree
# tree -L 1 /
文件管理命令
Linux
一切皆为文件, 在对Linux
进行配置时, 很大程度上就是处理文件的过程, 所以掌握文件的相关操作是非常有必要的。下面我们介绍如何对文件进行, 创建、删除、移动、重命名, 以及查看文件内容, 至于如何编辑文件, 在后面具体介绍编辑器的时候在做详细阐述。
1.文件创建命令touch
2.文件时间stat
[root@test-example ~]
File: 'test.txt'
Size: 2 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 67335626 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2018-01-21 12:12:48.949097044 +0800
Modify: 2018-01-21 12:12:35.243302963 +0800
Change: 2018-01-21 12:12:35.243302963 +0800
Birth: -
访问时间:atime,查看内容
修改时间:mtime,修改内容
改变时间:ctime,文件属性,比如权限
删除时间:dtime,文件被删除的时间
3.文件目录复制命令cp
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
# cp name /tmp/name_copy
# cp name /tmp/name
# cp -p name /tmp/name_p
# mkdir name_name
# cp -r name_name/ /tmp/name_tmp
# cp -rv /etc/hosts /etc/hostname /tmp
# cp -rv /etc/hosts /etc/hostname ./
# cp -rv /etc/hosts /etc/hosts.bak
# cp -rv /etc/{hosts,hosts.bak}
# cp -rv /etc/hosts{,-org}
3.文件目录移动命令mv
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
# mv file /tmp/
# mv file /tmp/file_test
# mv dir/ /tmp/
# touch file{1..3}
# mv file1 file2 file3 /opt/
# mkdir dir{1..3}
# mv dir1/ dir2/ dir3/ /opt
4.文件目录删除命令rm
rm [OPTION]... FILE...
-r 递归
-f 强制删除
-v 详细过程
# rm anan
# rm anan -f
# rm -r dir/
# rm -rf dir/
# mkdir /home/dir10
# touch /home/dir10/{file2,file3,.file4}
# rm -rf /home/dir10/*
# ls /home/dir10/ -a
. .. .file4
# touch file{1..10}
# touch {1..10}.pdf
# rm -rf file*
# rm -rf *.pdf
文件查看命令
cat
示例:cat /etc/passwd
示例:cat -n /etc/passwd
示例:cat >> xuliangwei.txt <<EOF
test
EOF
head
示例:head /etc/passwd
示例:head -n5 /etc/passwd
tail
示例:tail /etc/passwd
示例:tail -f /var/log/messages
more
示例:more /etc/passwd
less
示例:less /etc/passwd
文件下载命令
wget
-O
-T
-q
--spider
示例:wget http:
curl
示例:curl -o http:
yum install lrzsz
rz
sz
示例:sz filename
命令查找命令
locate
示例:locate /etc/sh
示例:locate -i /etc/sh
which
示例:which ls
whereis
示例:whereis ls
示例:whereis -b ls
字符处理命令
1.使用sort排序
很多情况下需要对无序的数据进行排序, 这时就需要用到sort
排序了。
sort [OPTION]... [FILE]...
-r:倒序
-n:按数字排序
-t:指定分隔符(默认空格)
-k:指定第几列, 指定几列几字符(指定1,1 3.1,3.3)
[root@xuliangwei ~]# cat >> sort.txt <<EOF
b:3
c:2
a:4
e:5
d:1
f:11
EOF
[root@xuliangwei ~]# sort sort.txt
a:4
b:3
c:2
d:1
e:5
f:11
[root@xuliangwei ~]# sort -t ":" -k2 sort.txt
d:1
f:11
c:2
b:3
a:4
e:5
[root@xuliangwei ~]# sort -t ":" -n -k2 p.txt
d:1
c:2
b:3
a:4
e:5
f:11
192.168.3.1 00:0F:AF:81:19:1F
192.168.3.2 00:0F:AF:85:6C:25
192.168.3.3 00:0F:AF:85:70:42
192.168.2.20 00:0F:AF:85:55:DE
192.168.2.21 00:0F:AF:85:6C:09
192.168.2.22 00:0F:AF:85:5C:41
192.168.0.151 00:0F:AF:85:6C:F6
192.168.0.152 00:0F:AF:83:1F:65
192.168.0.153 00:0F:AF:85:70:03
192.168.1.10 00:30:15:A2:3B:B6
192.168.1.11 00:30:15:A3:23:B7
192.168.1.12 00:30:15:A2:3A:A1
192.168.1.1 00:0F:AF:81:19:1F
192.168.2.2 00:0F:AF:85:6C:25
192.168.3.3 00:0F:AF:85:70:42
192.168.2.20 00:0F:AF:85:55:DE
192.168.1.21 00:0F:AF:85:6C:09
192.168.2.22 00:0F:AF:85:5C:41
192.168.0.151 00:0F:AF:85:6C:F6
192.168.1.152 00:0F:AF:83:1F:65
192.168.0.153 00:0F:AF:85:70:03
192.168.3.10 00:30:15:A2:3B:B6
192.168.1.11 00:30:15:A3:23:B7
192.168.3.12 00:30:15:A2:3A:A1
[root@student tmp]# sort -t. -k3.1,3.1nr -k4.1,4.3nr test.txt
2.使用uniq删除重复内容
如果文件中有多行完全相同的内容, 当前是希望能删除重复的行,同时还可以统计出完全相同的行出现的总次数, 那么就可以使用uniq
命令解决这个问题(但是必须配合sort
使用)。
uniq [OPTION]... [INPUT [OUTPUT]]
-c 计算重复的行
//演示uniq的用法, 首先创建一个文件:
[root@xuliangwei ~]
abc
123
abc
123
//uniq需要和sort一起使用, 先使用sort排序, 让重复内容连续在一起
[root@xuliangwei ~]
123
123
abc
abc
//使用uniq去除相邻重复的行
[root@xuliangwei ~]
123
abc
//使用-c参数, 能统计出文件中每行内容重复的次数
[root@xuliangwei ~]
2 123
2 abc
3.使用cut命令截取某一个字段
cut OPTION... [FILE]...
-d:指定分隔符
-f:数字,取第几列 –f3,6三列和6列
-c:按字符取(空格也算)
#echo “Im xuliangwei, is QQ 552408925” >xuliangwei.com
# sed 's#,# #g' xuliangwei.txt | cut -d " " -f2,6
# sed 's#,# #g' xuliangwei.txt | awk -F " " '{print $2 " " $5}'
# awk -F '[, ]+' '{print $2,$5}' xuliangwei.txt
# awk '{print $2 $5}' xuliangwei.txt | awk -F "," '{print $1" " $2}'
# awk -F "[, ]" '{print $2 " " $6}' xuliangwei.txt
此类问题是运维工作中最常见的问题。可以演变成分析日志,查看TCP各个状态连接数,查看单IP连接数排名等
[root@student tmp]# cat web.log
http:
http:
http:
http:
http:
http:
[root@student tmp]# awk -F '/' '{print $3}' web.log|sort -rn|uniq –c
3 www.xuliangwei.comxuliangwei.com
2 post.xuliangwei.comxuliangwei.com
1 mp3.xuliangwei.comxuliangwei.com
[root@student tmp]# cut -d / -f3 web.log|sort -rn|uniq –c
3 www.xuliangwei.comxuliangwei.com
2 post.xuliangwei.comxuliangwei.com
1 mp3.xuliangwei.comxuliangwei.com
4.使用wc统计
wc - print newline, word, and byte counts for each file显示文件的行、单词与字节统计信息
wc [OPTION]... [FILE]...
-l:显示文件行数
-c:显示文件字节
-w:显示文件单词
//统计fstab有多少行
[root@student ~]
15 /etc/fstab
显示/etc/services 文件行号
[root@student ~]
10774 /etc/services
//扩展方法
[root@student ~]
[root@student ~]
[root@student ~]
[root@student ~]
转载 xuliangwei.com
评论