在linux系统中一切都是文件。/ 在linux中为根目录,是一切文件的根目录。本文将通过linux系统的目录结构和与linux文件操作有关的相关命令(touch、mkdir、cp、mv、mv、less , more, head ,tail, rmdir)来说明linux的文件管理。
一、 Linux系统目录结构及路径。
1. linux系统目录结构
用ls / 查看目录结构
/ /home /root /dev /usr /etc /boot /lib /var /tmp /proc /bin /sbin
/ 通常称为根分区。所有的文件和目录的起始点。只有root用户对此目录拥有写权限。
/etc 配置文件 包含所有应用程序的配置文件,也包含启动、关闭某个特定程序的脚本,
例如: /etc/passwd, /etc/init.d/network等。
/boot 存放Linux系统启动时需要加载的文件。 Kernel、grub等文件都存放在此。
/var 是一个可增长的目录,包含很经常变的文件。
例如,/var/log(系统日志)、/var/lib (包文件)
/root 管理员所有数据。 root用户的家目录
/tmp 临时文件存储位置 不能存放重要的数据
/usr usr表示的是unix software source /usr/src 源代码目录
/bin 命令 此目录包含二进制可执行文件。
/sbin 系统命令 ,此目录中的命令主要供系统管理员使用,以进行系统维护。
/dev 包含设备文件。
在Linux中,一切都被看做文件。终端设备、磁盘等等都被看做文件. 如/dev/sda。
/home 普通用户所有数据存放在这个目录下
/proc这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
例如:查看咱们的内存信息,CPU信息
cat /proc/meminfo | grep Mem
cat /proc/cpuinfo
/lib 存放系统的库文件
lib***.a是静态库
lib***.so是动态库 .
静态库在编译时被加载到二进制文件中
动态库在运行时加载到进程的内存空间中
简单的说,这些库就是为了让你的程序能够正常编译运行的。
其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。
后续我会专门开辟关于如何用程序创建动态库和静态库的专题。
小结:
· 本地管理员大多数情况下将额外的软件安装在/usr/local目录下,并符号连接在/usr/local/bin下的主执行程序。
· 系统的所有设置在/etc目录下。
· 不要修改根目录(“/”)或/usr目录下的任何内容,
· 目录最好和LINUX发布时保持一致。
· 大多数工具和应用程序安装在目录:/bin, /usr/sbin, /sbin,
· 所有的文件在单一的目录树下。没有所谓的“驱动符”。
2. 绝对路径和相对路径
路径:在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径。
绝对路径:
在Linux中,绝对路径是从”/”开始的,比如/usr、/etc/passwd。如果一个路径是从/开始的,它一定是绝对路径.
pwd 判断位置
[root@xiaolyu ~]# pwd 注:判断用户当前所处的位置,也就是说他到底位于哪?
用户当前位于/root;
[root@xiaolyu ~]# cd /etc/sysconfig/network-scripts
[root@xiaolyu network-scripts]# pwd
/etc/sysconfig/network-scripts
注:我们以绝对路径方式进入/目录下;
相对路径:
相对路径是以 . 或 .. 开始的,在路径中要把.和..当做目录来看。
.表示用户当前操作所处的位置
.. 表示上级目录
举例实验: 实验1
/root
注:得出目录处于/root目录中;
[root@xiaolyu ~]# cd .
注:我们进入.
[root@xiaolyu ~]# pwd
注:判断当前用户所处的位置;
/root
注:得出在/root 目录中 ;
举例实验: 实验2
确定当前的位置是/root
[root@xiaolyu ~]# cd ..
注:我们切入/root的上级目录
[root@xiaolyu /]# pwd
注:判断当前用户所处的位置。
/
注:用户当前位于/(根目录)中;
二、 创建/查看/复制/删除 文件和文件夹
1. 创建文件和文件夹
touch
作用:常用来创建空文件
语法: touch 文件名
[root@xiaolyu ~]# touch a.txt
mkdir
作用:创建目录
语法:mkdir 目录名
[root@xiaolyu ~]# mkdir test
[root@xiaolyu ~]# mkdir -p test/a/b/c
-p 再创建时连通父目录一起创建
2. 查看文件
cat
作用:查看文件内容
语法:cat 文件名
分页查看: more 、less、head、tail
more + 文件名
例:
more /etc/passwd
按下回车刷新一行,按下空格刷新一屏
q 退出
less 查看文件名字
q 退出
使用光标键可以向上翻页
linux中more与less的区别
more:不支持后退,但几乎不需要加参数,空格键是向下翻页,Enter键是向下翻一行,在不需要后退的情况下比较方便。
less:支持前后翻滚,既可以向上翻页(pageup按键),也可以向下翻页(pagedown按键)。空格键是向下翻页,Enter键是向下翻一行。而且less可以向下查看n行。只要在:的地方输入行数n即可。
head
-n 数字 显示多少行
[root@xiaolyu ~]# head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
tail
从最后一行开始,从后往前,查看文件,默认显示最后10行
-n 显示多少行
[root@xiaolyu ~]# useradd nginx
[root@xiaolyu ~]# tail -1 /etc/passwd
nginx:x:1002:1002::/home/nginx:/bin/bash
[root@xiaolyu ~]#
-f 动态显示数据(不关闭) 常用来查看日志
cp
作用:复制文件
语法:cp 源文件 目标文件
-r 包含子目录和文件 。
[root@xiaolyu ~]# cp -r /boot/grub2/ /root/
重命名:
mv
语法:mv 源:文件或目录名 目标:文件或目录名
[root@xiaolyu ~]# mv rm.txt mk.txt
3 删除文件和文件夹
rm
作用:删除文件或目录
语法: rm -rf 文件或目录名
-r 递归删除(可以删除目录和目录里面的东西)
-f 强行删除
rmdir
作用:删除空的文件夹。(这个命令意义不大)。
语法:rmdir 空的文件夹名。
[root@xiaolyu ~]# rm x
rm: cannot remove ‘x’: Is a directory
[root@xiaolyu ~]# rmdir x
rmdir: failed to remove ‘x’: Directory not empty
[root@xiaolyu ~]# rm lvjj.txt
rm: remove regular file ‘lvjj.txt’? n
[root@xiaolyu ~]# cd x
[root@xiaolyu x]# ls
test.txt
[root@xiaolyu x]# cd ..
[root@xiaolyu ~]# rm -fr x
[root@xiaolyu ~]# ls
anaconda-ks.cfg Downloads mimz~ redhat.txt
a.out err.log mkd Templates
lvjj.txt hello Music test.txt
[root@xiaolyu ~]#