1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
1)linux的发行版介绍
slackware:SlackwareLinux是由PatrickVolkerding开发的GNU/Linux发行版,一直坚持KISS原则。
suse:在欧洲比较流行的linux发行版本
sles:suse企业版
opensuse:suse桌面免费发行版本
debian:服务器版,消耗资源少,稳定。
ubuntu
mint
redhat:成立于1992年
rhel:redhatenterprise linux,用于企业商用,为了保证服务器稳定,每18个月发行一个新版本
centos:开源版本,和RHEL几乎一样,兼容rhel的格式,已被redhat收购。
fedora:linux免费桌面版,得到redhat官方支持,用于测试新软件,每6个月发行一个新版本
Archlinux
Gentoo
LFS:Linux From scratch
Androld:kernel+busyBox+java虚拟机,主要用于移动终端
2)不同发行版之间的联系
都是在开源的linux内核代码进行再次开发而形成不同的发行版,而且必须支持GNU中包含的自由软件协定,GNU包含的自由软件协定包含GPLv2、GPLv3、LGPL。各发行版其中SLES是suse的企业版本,opensuse是suse的免费桌面版,ubuntu和mint都是基于dibian的桌面版,RHEL为redhat面向企业商用的服务器版,fedora属于redhat的桌面版本,由redhat赞助fedora社群免费维护,centos主要面向企业服务器,由开源社区提供免费技术支持,后来被redhat收购,目前仍然免费。
3)各发行版之间的区别
包管理系统不同,SLES、Fedora、openSUSE、centos、RHEL采用rpm包管理系统,包文件以rpm为扩展名;Ubuntu系列,Debian系列采用DPKG包管理系统。
2、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
linux系统命令的使用格式
COMMAND[OPTIONS...] [ARGUMENTS...]
OPTIONS:用于启用或关闭命令的某个功能,支持长选项(例如--long、--human--readable)和短选项(例如-a、-l),多个短选项还可以合并(例如-a -l可以合并为-al)
argument:命令的作用对象,向命令提供的数据。
2)ifconfig命令说明
命令介绍:ifconfig命令主要用于显示与配置网络接口;
参数:
-a:显示所有接口状态
示例:
[root@localhost~]#ifconfig-a
eno16777736:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500
inet192.168.138.128netmask255.255.255.0broadcast192.168.138.255
inet6fe80::20c:29ff:fe54:7f72prefixlen64scopeid0x20<link>
ether00:0c:29:54:7f:72txqueuelen1000(Ethernet)
RXpackets3867bytes371830(363.1KiB)
RXerrors0dropped0overruns0frame0
TXpackets1439bytes214471(209.4KiB)
TXerrors0dropped0overruns0carrier0collisions0
lo:flags=73<UP,LOOPBACK,RUNNING>mtu65536
inet127.0.0.1netmask255.0.0.0
inet6::1prefixlen128scopeid0x10<host>
looptxqueuelen0(LocalLoopback)
RXpackets56bytes4796(4.6KiB)
RXerrors0dropped0overruns0frame0
TXpackets56bytes4796(4.6KiB)
TXerrors0dropped0overruns0carrier0collisions0
virbr0:flags=4099<UP,MULTICAST>mtu1500
inet192.168.122.1netmask255.255.255.0broadcast192.168.122.255
ether00:00:00:00:00:00txqueuelen0(Ethernet)
RXpackets0bytes0(0.0B)
RXerrors0dropped0overruns0frame0
TXpackets0bytes0(0.0B)
TXerrors0dropped0overruns0carrier0collisions0
virbr0-nic:flags=4099<UP,MULTICAST>mtu1500
ether52:54:00:ff:68:92txqueuelen500(Ethernet)
RXpackets0bytes0(0.0B)
RXerrors0dropped0overruns0frame0
TXpackets0bytes0(0.0B)
TXerrors0dropped0overruns0carrier0collisions0
-s:通过短格式显示当前所有网络接口的状态
示例:
[root@localhost~]#ifconfig-s
IfaceMTURX-OKRX-ERRRX-DRPRX-OVRTX-OKTX-ERRTX-DRPTX-OVRFlg
eno16777150039110001451000BMRU
lo655365600056000LRU
virbr0150000000000BMU
virbr0-n150000000000BMU
示例:
[root@localhost~]#ifconfig-v
eno16777736:flags=4163<UP,MULTICAST>mtu1500
inet192.168.138.128netmask255.255.255.0broadcast192.168.138.255
inet6fe80::20c:29ff:fe54:7f72prefixlen64scopeid0x20<link>
ether00:0c:29:54:7f:72txqueuelen1000(Ethernet)
RXpackets4203bytes402414(392.9KiB)
RXerrors0dropped0overruns0frame0
TXpackets1519bytes237445(231.8KiB)
TXerrors0dropped0overruns0carrier0collisions0
lo:flags=73<UP,sans-serif;color:#555555;"> interface(接口):在命令后指定特定接口名称可单独显示此接口的当前状态信息
示例:
[root@localhost~]#ifconfiglo
lo:flags=73<UP,RUNNING>mtu65536
inet127.0.0.1netmask255.0.0.0
inet6::1prefixlen128scopeid0x10<host>
looptxqueuelen0(LocalLoopback)
RXpackets56bytes4796(4.6KiB)
RXerrors0dropped0overruns0frame0
TXpackets56bytes4796(4.6KiB)
TXerrors0dropped0overruns0carrier0collisions0
down:关闭指定的网络接口
示例:
[root@localhostDesktop]#ifconfigeno16777736down
[root@localhostDesktop]#ifconfigeno16777736
eno16777736:flags=4098<BROADCAST,MULTICAST>mtu1500
ether00:0c:29:54:7f:72txqueuelen1000(Ethernet)
RXpackets5603bytes541048(528.3KiB)
RXerrors0dropped0overruns0frame0
TXpackets2017bytes333258(325.4KiB)
TXerrors0dropped0overruns0carrier0collisions0
up:启动指定的网络接口
示例:
[root@localhostDesktop]#ifconfigeno16777736up
[root@localhostDesktop]#ifconfigeno16777736
eno16777736:flags=4163<UP,MULTICAST>mtu1500
inet192.168.138.128netmask255.255.255.0broadcast192.168.138.255
inet6fe80::20c:29ff:fe54:7f72prefixlen64scopeid0x20<link>
ether00:0c:29:54:7f:72txqueuelen1000(Ethernet)
RXpackets5617bytes542752(530.0KiB)
RXerrors0dropped0overruns0frame0
TXpackets2048bytes337901(329.9KiB)
TXerrors0dropped0overruns0carrier0collisions0
arp:开启关闭指定网卡的arp协议
ifconfiginterface -arp:关闭arp协议,此时使用ssh无法连接linux主机
ifconfiginterface arp:开启arp协议,此时ssh连接linux主机正常
promisc:开启关闭指定网卡的混杂模式,混杂模式主要用于网络诊断
ifconfiginterface -promisc:关闭指定网卡的混杂模式
ifconfiginterface promisc:开启指定网卡的混杂模式
allmulti:开启关闭指定网卡的组播模式
ifconfiginterface -multicast:关闭指定网卡组播
ifconfiginterface multicast:开启指定网卡组播
mtu n:设置指定网卡的最大传输速率
示例:
[root@localhost~]#ifconfigeno16777736mtu800
[root@localhost~]#ifconfigeno16777736
eno16777736:flags=4419<UP,PROMISC,MULTICAST>mtu800
inet192.168.138.128netmask255.255.255.0broadcast192.168.138.255
ether00:0c:29:54:7f:72txqueuelen1000(Ethernet)
RXpackets6460bytes622692(608.0KiB)
RXerrors0dropped0overruns0frame0
TXpackets2561bytes414568(404.8KiB)
TXerrors0dropped0overruns0carrier0collisions0
dstaddr:设置指定网络接口点对点连接,重启失效。
示例:
ifconfigeno16777736dstaddr192.168.38.0
netmask:设置指定网卡的子网掩码
add addr/prefixlen:设置指定网卡IPv6的IP地址
deladdr/prefixlen:删除指定网卡的 tunnel aa.bb.cc.dd:建立IPv6与IPv4间的隧道通信协议
irq addr:设置网卡的中断号
[-]pointopoint [addr]:与指定地址的网络设备建立直接连线,此模式具有保密功能,不能通过SSH远程连接使用此命令。
示例:
ifconfig eno16777736-pointopoint192.168.138.1
address:为指定网卡设置临时IP地址,重启后失效。
3)echo命令说明
echo为回显命令
示例:
[root@localhost ~]# echo"How areyou"
How are you
示例:
[root@localhost ~]# echo -n"How areyou"
How are you[root@localhost ~]#
-e:允许使用转义符;
\n:换行
\t:制表符
示例:
[root@localhost~]#echo-e"Hi\nboy\nHi\tgirl"
Hi
boy
Higirl
echo"$VAR_NAME":变量会替换,双引号表弱引用
echo'$VAR_NAME':变量不会替换,强引用
示例:
[root@localhost~]#echo"$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost~]#echo'$PATH'
$PATH
4)tty命令说明
用途:查看当前的终端设备
示例:
[root@localhost~]#tty
/dev/pts/0
[root@localhost~]#tty--version
tty(GNUcoreutils)8.22
5)startx
用途:用于在服务器或终端商启动X会话
强制启动X会话
startx-w
为X终端启动X会话,并注销用户的telnet会话
startx;kill-9$$
6)export命令说明
用途:用于为变量赋值,单独使用时可打印当前系统所有环境变量。
[root@localhost~]#exporta=b
[root@localhost~]#echo$a
b
7)pwd命令说明
用途:用于显示当前目录
示例:
[root@localhostetc]#pwd
/etc
8)history命令说明
用途:用来管理命令的历史记录,当前命令记录保存在内存中,当登出系统时会追加到用户家目录的隐藏文件.bash_history中。
环境变量:
HISTSIZE:记录的命令行数
HISTFILE:命令历史文件
HISTFILESIZE:命令历史文件最大记录命令数
示例:
[root@localhost~]#echo$HISTSIZE
1000
[root@localhost~]#echo$HISTFILE
/root/.bash_history
[root@localhost~]#echo$HISTFILESIZE
1000
命令参数:
-a:追加本地登录新执行的命令历史列表到命令历史文件中,例:history-a
-d offset:通过命令编号删除命令历史中指定命令,例:history-d 30
-c:清空命令历史,例:history-c
调用历史中的命令:
!#:调用命令历史中第#号命令,例:!30
!string:调用命令历史中最近一个以string开头的命令,例:!h
!!:重复运行上一条命令,例如:!!
调用前一条命令的参数
!$:调用上一条命令的参数
[root@localhostetc]#cd/root
[root@localhost~]#ls-l!$
ls-l/root
total15480
-rw-------.1rootroot1441Nov2804:59anaconda-ks.cfg
-rw-------.1rootroot5304320Nov2721:37core.13122
-rw-------.1rootroot5210112Dec113:54core.7223
-rw-------.1rootroot5328896Dec114:00core.7730
drwxr-xr-x.2rootroot22Dec114:05Desktop
drwxr-xr-x.2rootroot6Nov2820:58Documents
drwxr-xr-x.2rootroot6Nov2820:58Downloads
-rw-------.1rootroot1489Nov2721:11initial-setup-ks.cfg
drwxr-xr-x.2rootroot6Nov2820:58Music
drwxr-xr-x.2rootroot6Nov2820:58Pictures
drwxr-xr-x.2rootroot6Nov2820:58Public
drwxr-xr-x.2rootroot6Nov2820:58Templates
drwxr-xr-x.2rootroot6Nov2820:58Videos
ESC,.:功能同上,先输入命令,然后按ESC后在按.号可以直接调用前一条命令的参数。
HISTCONTROL:history的环境变量
ignoredups:忽略重复且连续的命令,例如连续输入多次‘ls-l’,则history仅记录一条
ignorespace:忽略以空格开始的命令,例如输入命令‘ls-l’,history将不记录此命令
ignoreboth:ignoredups和ignorespace将同时生效。
HISTCONTROL环境变量配置方法:
[root@localhost~]#echo$HISTCONTROL
ignoredups
[root@localhost~]#exportHISTCONTROL='ignoreboth'
[root@localhost~]#echo$HISTCONTROL
ignoreboth
9)shutdown命令说明
用途:用于操作系统退出、注销、关机、重启等操作,还可以指定关机时间。
命令格式:shutdown [option]... TIME[MASSAGE]
参数解析:
-r:立即重启,例:shutdown-r
-h:立即关机,例:shutdown-h
-c:取消关机操作,例:shutdown-c
TIME使用解析:
now:立刻执行,例:shutdownnow
+m:相对于现在多少分钟后关机,例:shutdown+m
hh:mm:绝对时间,具体关机时间shutdown10:30
10)poweroff命令说明
用途:关机。
-f:不调用shutdown,强制关机
-p:关机且切断电源
11)reboot命令说明
用途:重启命令
-f:强制重启,例:reboot-f
12)hwclock命令说明
用途:显示和设置硬件、系统时钟同步
格式:hwclock[-ARGUMENT]
-s:将系统时钟同步为硬件时钟
-w:将硬件时钟同部为系统时钟
13)date命令说明
用途:显示和设置时间
格式:
显示:date[OPTION]... [+FORMAT]
参数:
%D:按照年/月/日的方式显示时间
%F:按照年-月-日的方式显示时间
%T:按照时-分-秒的方式显示时间
示例:
[root@localhost~]#date+%F-%D-%T
2016-12-01-12/01/16-21:00:04
设置:date[MMDDhhmm[[CC]YY][.ss]]
MM:月分
DD:几号
hh:小时
mm:分钟
YY:两位年份
CCYY:四位年份
.ss:秒钟
示例:
[root@localhost~]#date120121002016.40
ThuDec121:00:40CST2016
3、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
命令的路径与帮助文档查询方式:
whereis:查询命令所有帮助文档章节存放路径
[root@localhost~]#whichcd
/usr/bin/cd
[root@localhost~]#whereiscd
cd:/usr/bin/cd/usr/share/man/man1/cd.1.gz/usr/share/man/man1p/cd.1p.gz
内部命令查看帮助的方法
help COMMAND
[root@localhost~]#helpcd
cd:cd[-L|[-P[-e]]][dir]
Changetheshellworkingdirectory.
ChangethecurrentdirectorytoDIR.ThedefaultDIRisthevalueofthe
HOMEshellvariable.
ThevariableCDPATHdefinesthesearchpathforthedirectorycontaining
DIR.AlternativedirectorynamesinCDPATHareseparatedbyacolon(:).
Anulldirectorynameisthesameasthecurrentdirectory.IfDIRbegins
withaslash(/),thenCDPATHisnotused.
Ifthedirectoryisnotfound,andtheshelloption`cdable_vars'isset,
thewordisassumedtobeavariablename.Ifthatvariablehasavalue,
itsvalueisusedforDIR.
Options:
-Lforcesymboliclinkstobefollowed
-Pusethephysicaldirectorystructurewithoutfollowingsymbolic
links
-eifthe-Poptionissupplied,andthecurrentworkingdirectory
cannotbedeterminedsuccessfully,exitwithanon-zerostatus
Thedefaultistofollowsymboliclinks,asif`-L'werespecified.
ExitStatus:
Returns0ifthedirectoryischanged,andif$PWDissetsuccessfullywhen
-Pisused;non-zerootherwise.
外部命令查看帮助的方法
COMMAND --help;COMMAND -h
[root@localhost~]#ls--help
Usage:ls[OPTION]...[FILE]...
ListinformationabouttheFILEs(thecurrentdirectorybydefault).
Sortentriesalphabeticallyifnoneof-cftuvSUXnor--sortisspecified.
Mandatoryargumentstolongoptionsaremandatoryforshortoptionstoo.
-a,--alldonotignoreentriesstartingwith.
-A,--almost-alldonotlistimplied.and..
--authorwith-l,printtheauthorofeachfile
[root@localhost~]#copy-h
bash:copy:commandnotfound...
[root@localhost~]#useradd-h
Usage:useradd[options]LOGIN
useradd-D
useradd-D[options]
使用手册(manual);manCOMMAND
[root@localhosttest]#manls
LS(1)UserCommandsLS(1)
NAME
ls-listdirectorycontents
SYNOPSIS
ls[OPTION]...[FILE]...
DESCRIPTION.......
信息页infoCOMMAND
[root@localhosttest]#clear
[root@localhosttest]#infotree
File:*manpages*,Node:tree,Up:(dir)
程序自身的帮助文档:README,INSTALL,Changelog
发行版的官方文档
man的章节划分
man1:用户命令
man2:系统调用
man3: C库调用
man5:配置文件格式
man6:游戏
man7:杂项
man8:管理类的命令
man手册存放在/usr/share/man中,有些命令不止在一个章节,具体存在的章节可以通过whatis进行查看。
4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
Linux上的文件管理命令主要有:cp、mv、rm
2)复制命令:cp
cp使用命令格式:
cp [OPTION]... [-T] SOURCEDEST
cp [OPTION]... SOURCE...DIRECTORY
cp [OPTION]... -t DIRECTORYSOURCE...
cp src(源)DEST(目标)
src是文件
DEST是文件
DEST不存在:cp命令会在在目标中创建一个DEST的文件,并将src文件的内容填充至DEST
示例:
[root@localhosttest]#ls
file1
[root@localhosttest]#cpfile1/root/test/file2
[root@localhosttest]#ls
file1file2
DEST存在:cp命令会将src中的内容填充到DEST文件中,俗称覆盖,建议加‘-i’参数
示例:
-rw-r--r--.1rootroot16Dec414:48file1
-rw-r--r--.1rootroot16Dec414:50file2
[root@localhosttest]#cpfile1file2
cp:overwrite‘file2’?y
cpsrc...DEST
src为多个文件
DEST必须存在,且为目录
cp -r src DEST
src是目录
如果DEST不存在:则会创建DEST目录,然后将制定文件复制到DEST目录中
示例:
[root@localhosttest]#ll
total0
drwxr-xr-x.2rootroot6Dec415:00d1
[root@localhosttest]#cp-rd1d2
[root@localhosttest]#ll
total0
drwxr-xr-x.2rootroot6Dec415:00d1
drwxr-xr-x.2rootroot6Dec415:01d2
DEST是目录且已存在:则会将src复制到DEST目录下
示例:
[root@localhosttest]#ll
total0
drwxr-xr-x.2rootroot6Dec415:00d1
drwxr-xr-x.2rootroot6Dec415:01d2
[root@localhosttest]#cp-rd1d2
[root@localhosttest]#lld2
total0
drwxr-xr-x.2rootroot6Dec415:03d1
如果DEST是文件:则会报错
示例:
[root@localhosttest]#ll
total0
drwxr-xr-x.2rootroot6Dec415:00d1
-rw-r--r--.1rootroot0Dec415:05d2
[root@localhosttest]#cp-rd1d2
cp:cannotoverwritenon-directory‘d2’withdirectory‘d1’
cp常用选型:
-r,-R:递归复制目录及内部的所有内容;
-a:归档,相当于-dR--preserv=all:复制时保留源文件和目录的所有属性
-d:--no-dereference--preserv=links:复制时保留源文件的链接
--preserv[=ATTR_LIST]
mode:权限
ownership:属主属组
timestamp:时间戳
links:链接
xattr:扩展属性
context:连接上下文
all:以上所有属性
-p: --preserv=mode,ownership,timestamp:保留文件权限、属主属组、时间戳属性
-v: --verbose:显示过程
-f: --force:强制覆盖。
2)移动命令mv
命令使用格式:
mv [OPTION]... [-T] SOURCEDEST
mv [OPTION]... SOURCE...DIRECTORY
mv [OPTION]... -t DIRECTORYSOURCE...
常用选项:
-f:强制覆盖
3)删除命令 rm [OPTION]... FILE...
-i:交互式
-f:强制删除
5、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
1)命令执行状态返回值
说明:bash使用一个特殊的环境变量$?保存最近一条命令的执行状态结果,如果执行成功则$?返回值为0,如果执行失败$?则返回值1-255其中的任何一个数字。
示例:
[root@localhost~]#la
bash:la:commandnotfound...
[root@localhost~]#echo$?
127
[root@localhost~]#ls
anaconda-ks.cfgcore.7730DownloadsPicturesVideos
core.13122Desktopinitial-setup-ks.cfgPublic
core.7223DocumentsMusicTemplates
[root@localhost~]#echo$?
0
2)命令行展开
bash可以已bash可以解释的符号来代替命令中的某些参数
~:表示当前用的家目录
示例:
[root@localhost~]#cd/
[root@localhost/]#cd~
~USERNAME:表示进入某个用户的家目录
示例:
[root@localhost~]#cd~zhangsan
[root@localhostzhangsan]#
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
示例:
[root@localhost1]#mkdir-v{a,b}_{c,d}
mkdir:createddirectory‘a_c’
mkdir:createddirectory‘a_d’
mkdir:createddirectory‘b_c’
mkdir:createddirectory‘b_d’
6、请使用命令行展开功能来完成以下练习:
1)、创建/tmp目录下的:a_c,a_d,b_c,b_d
[root@localhosttmp]#mkdir-v/tmp/{a,d}
mkdir:createddirectory‘/tmp/a_c’
mkdir:createddirectory‘/tmp/a_d’
mkdir:createddirectory‘/tmp/b_c’
mkdir:createddirectory‘/tmp/b_d’
2)、创建/tmp/mylinux目录下的:
mylinux/
├──bin
├──boot
│ └── grub
├──dev
├──etc
│ ├── rc.d
│ │ └── init.d
│ └── sysconfig
│ └── network-scripts
├──lib
│ └── modules
├──lib64
├──proc
├──sbin
├──sys
├──tmp
├──usr
│ └── local
│ ├── bin
│ └── sbin
└──var
├──lock
├──log
└──run
[root@localhosttmp]#mkdir-vp/tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconnfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/{local/{bin,sbin}},var,lock,log,run}
mkdir:createddirectory‘/tmp/mylinux’
mkdir:createddirectory‘/tmp/mylinux/bin’
mkdir:createddirectory‘/tmp/mylinux/boot’
mkdir:createddirectory‘/tmp/mylinux/boot/grub’
mkdir:createddirectory‘/tmp/mylinux/dev’
mkdir:createddirectory‘/tmp/mylinux/etc’
mkdir:createddirectory‘/tmp/mylinux/etc/rc.d’
mkdir:createddirectory‘/tmp/mylinux/etc/rc.d/init.d’
mkdir:createddirectory‘/tmp/mylinux/etc/sysconnfig’
mkdir:createddirectory‘/tmp/mylinux/etc/sysconnfig/network-scripts’
mkdir:createddirectory‘/tmp/mylinux/lib’
mkdir:createddirectory‘/tmp/mylinux/lib/modules’
mkdir:createddirectory‘/tmp/mylinux/lib64’
mkdir:createddirectory‘/tmp/mylinux/proc’
mkdir:createddirectory‘/tmp/mylinux/sbin’
mkdir:createddirectory‘/tmp/mylinux/sys’
mkdir:createddirectory‘/tmp/mylinux/tmp’
mkdir:createddirectory‘/tmp/mylinux/usr’
mkdir:createddirectory‘/tmp/mylinux/usr/{local’
mkdir:createddirectory‘/tmp/mylinux/usr/{local/bin}’
mkdir:createddirectory‘/tmp/mylinux/usr/{local/sbin}’
mkdir:createddirectory‘/tmp/mylinux/var’
mkdir:createddirectory‘/tmp/mylinux/lock’
mkdir:createddirectory‘/tmp/mylinux/log’
mkdir:createddirectory‘/tmp/mylinux/run’
[root@localhostmylinux]#tree
.
|--bin
|--boot
|`--grub
|--dev
|--etc
||--rc.d
||`--init.d
|`--sysconnfig
|`--network-scripts
|--lib
|`--modules
|--lib64
|--lock
|--log
|--proc
|--run
|--sbin
|--sys
|--tmp
|--usr
|`--{local
||--bin}
|`--sbin}
`--var
7、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
1)文件的元数据信息
atime:accesstime文件访问时间
ctime: change time元数据atime、mtime改变时间,这个数值是不能自行修改
2)元数据查看命令stat
[root@localhost~]#stat1
File:‘1’
Size:0Blocks:0IOBlock:4096regularemptyfile
Device:fd00h/64768dInode:207178860Links:1
Access:(0644/-rw-r--r--)Uid:(0/root)Gid:(0/root)
Context:unconfined_u:object_r:admin_home_t:s0
Access:2016-12-0319:47:31.927239446+0800
Modify:2016-12-0319:47:31.927239446+0800
Change:2016-12-0319:47:31.927239446+0800
Birth:-
touch FILENAME:同时修改mtime、ctime三个时间戳
示例:
[root@localhost~]#stat1
File:‘1’
Size:0Blocks:0IOBlock:4096regularemptyfile
Device:fd00h/64768dInode:207178860Links:1
Access:(0644/-rw-r--r--)Uid:(0/root)Gid:(0/root)
Context:unconfined_u:object_r:admin_home_t:s0
Access:2016-12-0319:50:20.315781438+0800
Modify:2016-12-0319:50:20.315781438+0800
Change:2016-12-0319:50:20.315781438+0800
Birth:-
[root@localhost~]#touch1
[root@localhost~]#stat1
File:‘1’
Size:0Blocks:0IOBlock:4096regularemptyfile
Device:fd00h/64768dInode:207178860Links:1
Access:(0644/-rw-r--r--)Uid:(0/root)Gid:(0/root)
Context:unconfined_u:object_r:admin_home_t:s0
Access:2016-12-0319:50:45.119450475+0800
Modify:2016-12-0319:50:45.119450475+0800
Change:2016-12-0319:50:45.119450475+0800
Birth:-
touch -aFILENAME:修改文件访问时间为当前时间
示例:
[root@localhost~]#touch-a1
[root@localhost~]#stat1
File:‘1’
Size:0Blocks:0IOBlock:4096regularemptyfile
Device:fd00h/64768dInode:207178860Links:1
Access:(0644/-rw-r--r--)Uid:(0/root)Gid:(0/root)
Context:unconfined_u:object_r:admin_home_t:s0
Access:2016-12-0319:53:15.623510063+0800
Modify:2016-12-0319:50:45.119450475+0800
Change:2016-12-0319:53:15.623510063+0800
Birth:-
touch -m FILENAME:修改文件文件修改时间为当前时间
示例:
[root@localhost~]#touch-m1
[root@localhost~]#stat1
File:‘1’
Size:0Blocks:0IOBlock:4096regularemptyfile
Device:fd00h/64768dInode:207178860Links:1
Access:(0644/-rw-r--r--)Uid:(0/root)Gid:(0/root)
Context:unconfined_u:object_r:admin_home_t:s0
Access:2016-12-0319:53:15.623510063+0800
Modify:2016-12-0319:54:32.904594588+0800
Change:2016-12-0319:54:32.904594588+0800
Birth:-
touch {-a,-m}-t[[CC]YY]MMDDhhmm[.ss]:修改文件访问时间或文件修改时间为指定之间
示例:
[root@localhost~]#touch-a-t201505041130.301
[root@localhost~]#stat1
File:‘1’
Size:0Blocks:0IOBlock:4096regularemptyfile
Device:fd00h/64768dInode:207178860Links:1
Access:(0644/-rw-r--r--)Uid:(0/root)Gid:(0/root)
Context:unconfined_u:object_r:admin_home_t:s0
Access:2015-05-0411:30:30.000000000+0800
Modify:2016-12-0319:54:32.904594588+0800
Change:2016-12-0319:57:19.990101432+0800
Birth:-
8、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
[root@localhost~]#ls-d/var/l*[0-9]*[[:lower:]]
9、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
[root@localhost~]#ls-d/etc/[0-9]*[^0-9]
10、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
[root@localhost~]#ls-d/etc/[^a-z]*[^a-z]*
11、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-09-20-09-32-22。
[root@localhost~]#touch/tmp/tfile-`date+"%Y-%m-%d-%H-%M-%S"`
[root@localhost~]#ll/tmp/tfil*
-rw-r--r--.1rootroot0Dec420:42/tmp/tfile-2016-12-04-20-42-59
12、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
[root@localhosttmp]#cp /tmp/mytest2;cp-avr/etc/*.d/tmp/mytest2
13、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
[root@localhosttmp]#cp /tmp/mytest3;cp-avr/etc/[lmn]*.conf/tmp/mytest3
‘/etc/ld.so.conf’->‘/tmp/mytest3/ld.so.conf’‘/etc/libaudit.conf’->‘/tmp/mytest3/libaudit.conf’‘/etc/libuser.conf’->‘/tmp/mytest3/libuser.conf’‘/etc/locale.conf’->‘/tmp/mytest3/locale.conf’‘/etc/logrotate.conf’->‘/tmp/mytest3/logrotate.conf’‘/etc/man_db.conf’->‘/tmp/mytest3/man_db.conf’‘/etc/mke2fs.conf’->‘/tmp/mytest3/mke2fs.conf’‘/etc/mtools.conf’->‘/tmp/mytest3/mtools.conf’‘/etc/nfsmount.conf’->‘/tmp/mytest3/nfsmount.conf’‘/etc/nsswitch.conf’->‘/tmp/mytest3/nsswitch.conf’‘/etc/numad.conf’->‘/tmp/mytest3/numad.conf’