Linux 中常用的基础命令二
1、Linux文件分层结构
FHS:Linux有一个组织叫LSB定义的Linux发行版基础目录名称命名法则及功用规定,这种标准叫FHS文件系统层级标准。
/bin 存放可执行的二进制程序,管理员和普通用户都可以使用
/sbin 管理员才能执行的命令
/boot 存放系统引导文件:内核、ramfs文件、bootloader(grub)
/dev 设备文件存放目录
/etc 配置文件的集中存放目录
/etc/sysconfig 系统级别的应用
/etc/init.d 系统服务脚本
/home 普通用户,默认在/home下有一个与其名称同名目录,作为用户的家目录
/root 管理员的家目录
/lib 为系统启动或者根文件系统上的应用程序提供共享库文件,以及微内核提供内核模块文件
/lib64 专用于x86_64(64位系统)系统共享库的路径
/media 专用挂载位置,通常用来挂载便携式设备cdrom/usb
/mnt 专用挂载位置,挂载额外的存储设备和临时文件系统
/misc 杂项,备用目录
/opt 可选目录,通常用来安装第三方软件
/proc 所显示的文件都不是文件,伪文件系统,运行中的内核参数的映射
/sys 伪文件系统,系统级别的用于配置硬件设备相关的参数
/srv 为服务程序用到的中间数据提供存放位置
/selinux selinux相关的安全策略等信息的存储位置
/tmp 临时文件系统:默认存放30天
/usr shared所有遵循FHS协议的系统都可以使用,里面的内容都是readonly 只读;是一个非常重要的目录,类似于Windows下的Programe
运行正常功能的程序存放位置
/usr/bin 该目录存放的是系统用户使用的应用程序
/usr/sbin 该目录存放的是系统管理员使用的系统管理程序
用来存放第三方软件的程序
/usr/local/bin
/usr/local/sbin
/usr/include 头文件存放位置
/var 经常发生变化的文件
/var/cache 应用数据缓存数据目录
/var/log 日志目录及文件
/var/lock 锁文件
/var/run 运行中的进程相关的数据,通常用于存储进程的pid文件
/var/cache 应用数据缓存数据目录
/var/local 专用于为/usr/local下的应用程序存储可变数据
/var/lib 应用程序状态信息数据
/var/opt 专用为/opt下的应用程序存储可变数据
/var/spool 应用程序的数据池
/var/tmp 保存系统两次重启之间产生的临时数据
演示:
# CentOS 6 系统目录
[root@CentOS6 ~]# ll /
total 106
dr-xr-xr-x. 2 root root 4096 Dec 1 12:35 bin
dr-xr-xr-x. 5 root root 1024 Nov 6 12:10 boot
drwxr-xr-x 20 root root 3840 Feb 8 07:38 dev
drwxr-xr-x. 104 root root 12288 Feb 8 12:58 etc
drwxr-xr-x. 6 root root 4096 Nov 10 21:19 home
dr-xr-xr-x. 11 root root 4096 Nov 6 12:02 lib
dr-xr-xr-x. 9 root root 12288 Dec 1 12:35 lib64
drwx------. 2 root root 16384 Nov 6 11:53 lost+found
drwxr-xr-x. 3 root root 4096 Feb 6 16:53 media
drwxr-xr-x 2 root root 0 Feb 8 12:53 misc
drwxr-xr-x. 2 root root 4096 Sep 23 2011 mnt
drwxr-xr-x 2 root root 0 Feb 8 07:38 net
drwxr-xr-x 3 root root 4096 Nov 23 10:20 nfs
drwxr-xr-x. 3 root root 4096 Nov 6 12:08 opt
dr-xr-xr-x 113 root root 0 Feb 8 2017 proc
dr-xr-x---. 27 root root 4096 Feb 8 12:42 root
dr-xr-xr-x. 2 root root 12288 Dec 1 12:35 sbin
drwxr-xr-x. 2 root root 4096 Nov 6 11:54 selinux
drwxr-xr-x. 2 root root 4096 Sep 23 2011 srv
drwxr-xr-x 13 root root 0 Feb 8 2017 sys
drwxrwxrwt. 6 root root 4096 Feb 8 08:17 tmp
drwxr-xr-x. 14 root root 4096 Nov 6 11:54 usr
drwxr-xr-x. 23 root root 4096 Nov 6 12:08 var
# CentOS 7 系统目录
[root@centos7 ~]# ll /
总用量 32
lrwxrwxrwx. 1 root root 7 11月 6 18:30 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 11月 6 20:01 boot
drwxr-xr-x 3 root root 21 12月 9 15:46 data
drwxr-xr-x 19 root root 3240 2月 8 07:49 dev
drwxr-xr-x. 134 root root 8192 2月 8 07:49 etc
drwxr-xr-x. 7 root root 72 11月 10 22:24 home
lrwxrwxrwx. 1 root root 7 11月 6 18:30 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 11月 6 18:30 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 8月 12 2015 media
drwxr-xr-x 3 root root 0 2月 8 13:44 misc
drwxr-xr-x. 2 root root 6 8月 12 2015 mnt
drwxr-xr-x 2 root root 0 2月 8 07:49 net
drwxr-xr-x 3 root root 17 11月 23 11:44 nfs
drwxr-xr-x. 3 root root 15 11月 6 19:42 opt
dr-xr-xr-x 368 root root 0 2月 8 2017 proc
dr-xr-x---. 24 root root 4096 7月 7 2018 root
drwxr-xr-x 36 root root 1140 2月 8 09:37 run
lrwxrwxrwx. 1 root root 8 11月 6 18:30 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 8月 12 2015 srv
dr-xr-xr-x 13 root root 0 2月 8 2017 sys
drwxrwxrwt. 11 root root 4096 2月 8 09:59 tmp
drwxr-xr-x. 13 root root 4096 11月 6 18:30 usr
drwxr-xr-x. 23 root root 4096 2月 8 2017 var
Linux上应用程序的组成部分
二进制程序:/bin、/sbin、/usr/bin、/usr/sbin、/usr/local/bin、/usr/local/sbin
库文件:/lib、/lib64、/usr/lib、/usr/lib64、/usr/local/lib、/usr/local/lib64
配置文件:/etc、/etc/DIRECTORY、/usr/local/etc
帮助文件:/usr/share/man、/usr/share/doc、/usr/local/share/man、/usr/local/share/doc
Linux下的文件类型
-或f 普通文件即
d 目录文件(directory)
b 块设备文件,随机设备,没有先后顺序随机按块存取,以块为单位(block device)
c 字符设备,有时间先后顺序的一次存取一个字符,以字符为单位(charactor device)
l 符号链接或叫软连接(硬链接跟普通文件没什么区别,这里指的是软连接)
p 命名管道设备,先进先出FIFO(栈先进后出)
s 套接字文件(socket)
目录管理类命令
mkdir 创建目录
-p 先创建父目录(递归创建目录)
-v 显示创建目录的详细过程信息
-m 在创建目录时设定其权限
rmdir 删除空目录
-p 只能删除一线单的目录
Linux中同一路径下的文件名和文件夹名字不能同名
文本查看类命令
more 只支持向后翻,翻到文件尾部后自动退出
less 支持前后翻(man调用的less命令)
head 显示文件首部10行内容
-n # 显示文件首部#行内容
-c # 显示文件前#字节的内容
tail 显示文件尾部10行内容
-n # 显示文件尾部#行内容
-c # 显示文件后#字节的内容
-f 从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容
Linux文件时间戳
访问时间:access time (atime):当读取文件或者执行文件时更改,任何对inode的访问都会使此处改变,就会更新这个读取时间 (access)。例如我们使用cat去读取 /etc/man.config ,就会更新该文件atime了。
修改时间:modify time (mtime):当该文件的内容数据改变时,就会更新这个时间,“内容数据”指的是文件的内容,而不是文件的属性或权限
改变时间:change time (ctime):当该文件的元数据信息改变时,就会更新这个时间,写入文件会改变文件大小、更改所有者、权限或链接设置时随 inode的内容更改而更改的。只要stat出来的内容发生改变就会发生改变。atime、mtime的改变必然导致ctime的改变,因为时间戳信息也是元数据信息
在默认情况下,ls显示出来的是该文件的mtime
stat 文件名 可以查看文件的详细元数据信息如三个时间、inode号
ls -lc 文件名 或者是ls -l --time=ctime 列出文件的 ctime (Chang)
ls -lu 文件名 或者是ls -l --time=atime 列出文件的 atime (Access)
ls -l 文件名 列出文件的 mtime(Modify)
文件的时间戳:
修改文件,如果是通过vi打开文件修改完在保存文件三个时间都会变化,mtime会变是因为改变了文件的内容,ctime会变是因为stat中的文件大小和mtime变化,atime会变是因为打开文件访问了inode信息
如果vi只是打开文件不做任何改变退出只会改变atime因为只访问了inode信息
如果是通过命令行将内容追加到文件中,mtime会变是因为改变了文件的内容,ctime会变是因为stat中的文件大小和mtime变化,但atime不会变化,因为你没有访问inode信息
cat访问文件atime会变是因为访问了inode信息,ctime、mtime都不会变
chown、chgrp、chmod、mv都会使ctime改变,atime 、mtime都不会变
文件夹的时间戳:
atime 是在读取文件或者执行文件时更改的(我们只cd进入一个目录然后cd ..不会引起atime的改变,但ls会改变atime)
mtime 是在文件夹中有文件的新建、删除才会改变(如果只是改变文件内容不会引起mtime的改变,换句话说如果ls -f <directory>的结果发生改变,mtime就会被刷新。这里可能有人要争论了:我进入某个文件夹vi了一个文件然后退出,前后ls -f <directory>的结果没有改变但是文件夹的mtime发生改变了、这点请主意vi命令在编辑文件时会在本文件夹下产生一 个".file.swp"临时文件,该文件随着vi的退出而被删除这就导致了mtime的改变 。
ctime 基本同文件的ctime,其体现的是inode的change time。这里还要补充一点:mount -o noatime(mount -o remount,atime / 可以在线重新挂载根目录) 可以选择不记录文件的atime的改变,这意味着什么呢?当你创建了这个文件后这个文件的atime就定格了,除非你用touch或者touch -a强制刷新文件的atime。这样在可以在一定程度上提升文件系统的读写性能,特别是网站这种系统中在fstab里面加上noatime是个好主意
touch 用来修改时间戳,创建空文件;不加任何参数修改已存在文件或目录的atime、mtime、ctime为当前系统时间
-a 只修改atime,同时ctime也会修改,因为文件的元数据信息变化了;如果没指定-t参数时间会修改为系统当前时间
-m 只修改mtime,同时ctime也会修改,因为文件的元数据信息变化了;如果没指定-t参数时间会修改为系统当前时间
-c 同时修改文件的atime、mtime、ctime,若该文件不存在则不建立新的文件
-d 修改文件时间戳为指定时间戳[[CC]YY]MMDD;也可以使用 --date="年月日";默认改变atime、mtime为指定时间戳,ctime会改为当前系统时间
-t 修改文件时间戳为指定时间戳[[CC]YY]MMDDhhmm[.ss],默认改变atime、mtime为指定时间戳,ctime会改为当前系统时间
-t、-d选项可以结合-m或-a使用修改mtime或atime为指定时间;格式必须先指定-m或-a,再加-t 指定时间[[CC]YY]MMDDhhmm[.ss]
注意:只要atime或mtime发生改变,一定会导致ctime发生改变;不能通过命令选项-d或-t修改ctime为指定的时间,只可能是元数据信息发生改变导致ctime的变化且ctime只会改变为当前系统时间
stat 显示文件的元数据信息(own、group、inode、atime、mtime、ctime)
文件管理类命令
cp SRC DEST
假如SRC是一个文件:
如果目标是一个文件且目标存在:覆盖
如果目标文件不存在:创建新文件
如果目标存在,且是个目录:复制源至目标目录中,并保持原名
cp SRC ... DEST
假如SRC有多个文件:
如果目标存在,且是一个文件:复制无法进行
如果目标存在,且是一个目录:复制各文件至目标目录中,并保持原名
如果目标不存在:复制无法进行
如果SRC只有一个且是目录:-r
如果目标是一个文件且目标存在:失败
如果目标文件不存在:创建新目录
如果目标存在,且是个目录:复制源目录到目标目录中,并保持原名
cp命令的常用选项:
-r 递归复制目录及内部的所有内容
-i 交互式复制,即覆盖之前提醒用户确认
-f 强制覆盖目标文件
-d 当源为链接文件时,复制链接文件本身,而非指向的源文件
等同于--no-derefaerence --preserve=links
-p 保持原有属性(权限、属主属组、时间戳)
等同于--preserve=mode,ownership,timestamp
-a 归档文件,保留文件的所有属性信息(也可以用-dpr)
等同于-dr --preserve=all
--preserve的参数有:mode(权限)、ownership(属主属组)、timestamp(时间戳)、links(链接属性)、xattr(扩展属性)、context(安全上下文)、all(所有属性)
mv 移动、剪切、选项与cp相近;可以直接移动目录,不需要-r选项
rm 删除,删除非空目录rm -rf
注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录(模拟回收站)
mktemp命令:创建临时文件
mktemp [OPTION]... [TEMPLATE]
TEMPLATE: filename.XXX (XXX至少要出现三个)
示例:mktemp link.XXX
OPTION:
-d: 创建临时目录
示例:mktemp -d /tmp/testdir
--tmpdir=/PATH/TO/SOMEDIR:指明临时文件目录位置
示例:mktemp --tmpdir=/tmp/testdir/ test.XXXX
-u: 如果仅仅是想生成文件名,又不希望创建实际的文件或目录
示例:tmpfile=`mktemp -u`
默认不指定路径会在/tmp/目录下创建临时文件
mktemp 直接在/tmp/目录中创建一个临时文件
mktemp -d 直接在/tmp/目录中创建临时目录
install命令:用于复制文件和创建目录
install [OPTION]... [-T] SOURCE DEST
install [OPTION]... SOURCE... DIRECTORY
install [OPTION]... -t DIRECTORY SOURCE...
install [OPTION]... -d DIRECTORY...
选项:创建目录可以指定权限、属主、属组
-m MODE
-o OWNER
-g GROUP
示例:install -m 700 -d testdir
Linux 中常用的基础命令二的更多相关文章
- Linux 中常用的基础命令一
1.目录相关命令的使用 pwd(printing working directory) 显示当前工作目录 pwd命令相关的环境变量: PWD 保存了当前工作目录路径 OLDP ...
- Linux最常用的基础命令
Linux最常用的基础命令个人总结 计算机基础知识: 32bit和64bit系统的区别.系统运行机制 32bit=内存的最大寻址空间是2**32,也就是说最大只能使用4GB的内存64bit=内存的最大 ...
- Linux最常用的基础命令 下篇
Linux最常用的基础命令个人总结 shell脚本 脚本就是:写一堆指令存成一个文本,用于完成一些小任务 a="123" linux中定义一个变量 echo $a echo $b ...
- Linux最常用的基础命令 上篇
Linux最常用的基础命令个人总结 计算机基础知识 32bit和64bit系统的区别.系统运行机制 1989年python 诞生 C语言是编译型的语言,不太支持跨平台 Django 江购 32bit= ...
- linux中的一些基础命令的使用(which,whereis,locate,find,alias,file,ls,cat,echo,tar,bzip2,gzip,history,mv,cp,rm)
which whereis locate find alias file ls cat echotar bzip2 gzip history mv cp rm -------------------- ...
- Linux中常用文件传输命令及使用方法
sftp sftp即Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等敏感信息进行加密,因此可以有效的防止用户信息在传输的过程中 ...
- Nginx在开发中常用的基础命令
场景 Ubuntu Server 16.04 LTS上怎样安装下载安装Nginx并启动: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detai ...
- Linux一些常用的基础命令,总结的很好,收藏了
原文地址:https://www.cnblogs.com/yjd_hycf_space/p/7730690.html
- Linux中常用的监控性能的命令(sar、mpstat,vmstat, iostat,)详解
Linux中常用的监控性能的命令有: sar:能查看CPU的平均信息,还能查看指定CPU的信息.与mpstat相比,sar能查看CPU历史信息 mpstat:能查看所有CPU的平均信息,还能查看指定C ...
随机推荐
- 解决Chrome在隐身模式下无法播放Flash视频
在地址栏输入: chrome://flags/#prefer-html-over-flash 打开如下界面,并设置成如下所示: 然后点击左下方重启按钮: 参考: http://www.cnblogs. ...
- UVA 10187 From Dusk Till Dawn /PC 110907
不吐槽.. #include <iostream> #include <map> #include <queue> //无语的水题.节哀吧.且这道题不严谨,因为没说 ...
- java中byte类型
http://www.cnblogs.com/Robotke1/archive/2013/05/25/3099309.html ------------------------------------ ...
- iOS总结(自己定义button)
1.首先新建一个类该类继承UIButton 2.实现几个方法 1).改动字体的一些属性 -(instancetype)initWithFrame:(CGRect)frame{ self = [supe ...
- 分析AWR报告
1.AWR报告头信息 DB Name :数据库名字 DBid: 数据库id Elapsed:采样时间段 DB Time:用户操作花费的时间,不包括Oracle后台进程消耗的时间 DB Time远小于E ...
- Jsoup的简单的使用示例
利用Jsoup中的相关方法实现网页中的数据爬去,本例子爬去的网页为比较流行的programmableweb中的mashup描述内容,然后为数据库中存在的mashup添加相应的描述. package c ...
- 软件需求规范说明 (Software Requirements Specification, 简称SRS)
GB/T 9385-2008 笔记 为了形成确定和完备的规格说明, 我们需要明确 软件的顾客希望得到什么; 软件的供方理解用户想要什么; 4.2 SRS的基本性质 SRS是对在具体环境中执行确定功能的 ...
- QlikSense系列(2)——QlikSense安装和升级
继上篇对QlikSense进行总体介绍之后,想必大家想体验下产品,下面介绍安装的过程和注意点. 注:我的系统环境Windows Server 2008R2,QlikSense版本为3.1SR1 Qli ...
- 判断输入的值是否为Double
using System; using System.Collections.Generic; using System.Text; namespace TDRFactory { public cla ...
- Cupid's Arrow[HDU1756]
Cupid's Arrow Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...