linux的系统结构
1.linux是一个倒树结构
2.linux中所有的东西都是文件
- 这些文件都在系统顶级目录“/” /就是根目录 /目录以下为二级目录这些目录都是系统装机时系统自动建立的
- 二级目录的作用:
文件的寻址:
绝对路径 & 相对路径
绝对路径:
文件在系统的真实位置,文件名字以“/”开头
相对路径:
文件相对与当前所在位置的一个名字的简写,这个名字不会以/开头,而且名字会自动添加pwd显示的值
其实绝对路径与相对路径的不同处,只在于描述目录路径时,所采用的参考点不同。由于对所有文件而言,根目录这个参考点对所有文件都是一样的,因此,运用以根目录为参考点的路径描述方式才会被称之为绝对路径。
- 以下为建立路径所使用的几个特殊符号,及其所代表的意义:
./ //当前目录。
../ //代表上一层目录。
/ //根目录。
- 现在我要从/home/kiosk下到/home/kiosk/Desktop 目录下:
**其中,第一个即为相对路径,但是在生产环境中,往往必须要求准确,所以配置等都要标明绝对路径
*方便后文命令的讲解,这里介绍一下一般正则表达式的概念
(后面学习三剑客命令还会有特殊的正则表达式的详细讲解)
- 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
- 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
- 可以通过正则表达式,从字符串中获取我们想要的特定部分。 正则表达式的特点是:
- 灵活性、逻辑性和功能性非常的强;
- 可以迅速地用极简单的方式达到字符串的复杂控制。
- 对于刚接触的人来说,比较晦涩难懂。 由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft
Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。
* ##匹配0到任意字符
? ###匹配单个字符
[[:alpha:]] ###匹配单个字母
[[:lower:]] ###匹配单个小写字母
[[:upper:]] ###匹配单个大写字母
[[:digit:]] ###匹配单个数字
[[:alnum:]] ###匹配单个数字或字母
[[:punct:]] ###匹配单个符号
[[:space:]] ###匹配单个空格
{}表示不存在的或者存在的
{1..9} ###1-9
{a..f} ###a-f
{1,3,5} ###135
{a,c,e} ###a c e
{1..3}{a..c} ###1a 2a 3a 2a 2b 2c 3a 3b 3c
[]表示存在的
[a-C] ###aA bB cC
[a-c] ###aA或者bB或者c
[1-3] ###1或者2或者3
[145] ###1或者4或者5
[^abc]|[!abc] ###除了a并且除了b并且除了c
~ ###当前用户家目录
~username ###指定的用户家目录
~+ ###当前目录
~- ###当前目录之前所在目录
. ###当前目录
.. ###当前目录的上一级
文件管理的简单命令
1.touch 建立文件或 *修改文件时间戳
- 修改文件时间戳:通常文件与服务器之间的连接需要时间相同,这时,因为时间不同,使用touch命令更改文件的时间戳,达到类似骗过系统完成连接。
格式: touch 【选项】… 【文件】…
参数:
##用一条命令建立 12 个文件 WESTOS_classX_linuxY(X 的数值范围为 1-2 , Y 的数值范围为 1-6)
[root@server77 study]# touch WESTOS_class{1..2}_linux{1..6} //建立12个文件
[root@server77 study]# ls //查看当前目录的文件
WESTOS_class1_linux1 WESTOS_class1_linux5 WESTOS_class2_linux3
WESTOS_class1_linux2 WESTOS_class1_linux6 WESTOS_class2_linux4
WESTOS_class1_linux3 WESTOS_class2_linux1 WESTOS_class2_linux5
WESTOS_class1_linux4 WESTOS_class2_linux2 WESTOS_class2_linux6
//改变文件的时间戳
root@localhost test]# ll //查看目录下各文件属性
-rw-r--r-- 1 root root 0 10-28 16:01 lognew.log
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
[root@localhost test]# touch -r log.log log2012.log //改变时间戳
[root@localhost test]# ll
-rw-r--r-- 1 root root 0 10-28 16:01 lognew.log //可以看到,文件的时间属性已经被改变
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
2.mkdir 建立目录
用法: mkdir directory ##创建目录
重要参数: -p ##上级目录不存在自动建立
mkdir -p a/b/c/d //直接创建目录a及其子目录b,b子目录c,c子目录d
3.rm 删除目录或文件
rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
rm也是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
用法: rm 【参数】 【对象】…
一般rm直接加对象会出现提示:
重要参数:
-f ##强行删除不提示,单独用只能删除文件
-r ##递归删除目录
rmdir //删除空目录 用法与rm类似
//rm命令一般是有别名的,命令行输入alias查看
alias rm='rm -i --color=auto' // -i : 忽略大小写
tips(重要!!!):
** 通过作者向大牛的请教,发现rm命令是一个非常考验经验的命令。 一般情况下,新手在使用rm 时都会直接加参数fr,这个在linux其实是非常不好的习惯。也有不少所谓大牛栽倒在这个习惯上,一定少用!!!
** 生产环境中非常正确的方法是 : 用mv代替rm,把文件移动到/tmp或类似trash目录下,等/tmp满时一次性删除,减少出错。或隔一段时间,发现这个文件已的消失没有影响,再批量删除这段时间之前的文件。
1. 和xargs搭配用法:
find -type f -mtime + 15 | xargs rm -f //删除15天前的 ***删除目录下的文件用这个好
find -type d -mtime +30 | xargs rm -f //删除目录30天以前的 **慎用
2.使用find 的 -exec
find /logs -type f -mtime +5 -exec rm {} \ //在/logs目录中查找更改时间在5日前的文件并删除
4.cd 切换工作目录
cd directory ##切换工作目录到指定目录
cd - ##切换工作目录到之前所在目录
cd ~ ##切换到自己的家目录
cd ~usernmae ##切换到指定用户家目录
cd .. ##进入到当前目录的上级目录
5.ls 列出目录或文件信息
ls ##如果后面没有目标那么默认目标为当前目录
ls direcory|filename ##列出文件或目录内容
ls -d direcotry ##列出目录本身
ls -l filename|dorectory ##列出文件或目录里面内容的属性
ls -ld directory ##列出目录本身属性
ls -a ##显示目录中的所有内容,包括以"."开头的隐藏文件
ls -R ##第归显示目录中的内容
6.cp 文件复制
功能:将源文件复制至目标文件,或将多个源文件复制至目标目录。
- cp是新建文件的过程,即拷贝 —> 新建 ,复制的文件权限相当于重新建立时的权限
cp file file1 file2 ... directory ###把file file1 file2 复制到 directory中
cp file test ###建立test文件模板为file
cp -r directory direcotry1 ###复制目录
##cp是一个创建过程权限是基本的创建过程,加参数 -p :不改变权限复制
- 另外一些用法
// 参数 -f, --force 如果目标文件无法打开则将其移除并重试
[root@foundation77 ~]# \cp -f /mnt/test.txt /tmp //无提示
[root@foundation77 ~]# /bin/cp -f /mnt/test.txt /tmp/ //无提示
[root@foundation77 ~]# cp -f /mnt/test.txt /tmp/ //有提示
cp: overwrite ‘/tmp/test.txt’?
[root@foundation77 ~]# cp /mnt/test.txt /tmp/ //有提示
cp: overwrite ‘/tmp/test.txt’?
[root@foundation77 ~]#
//cp命令一般是有别名的,命令行输入alias查看
alias cp='cp -i --color=auto' // -i : 忽略大小写
7.mv 移动或重命名
- 相同磁盘的mv是重命名,不同磁盘的mv是复制删除过程
- mv复制删除过程(实际是在指底层是如何工作的) :在不同分区时,复制仍然不会带着权限
mv file file1 direcotry ##移动file file1到directory中
mv 存在文件 不存在文件 ##重命名文件
mv westos/linux . ##把westos中的linux移动到当前目录 .代表当前目录
//mv命令一般也是有别名的,命令行输入alias查看
alias mv='mv -i --color=auto' // -i : 忽略大小写