几个常用命令、inode及第二周作业

一、cd命令

1、功能

用来进行不同目录间的切换,属于内部命令。

2、语法

cd  [-L|-P]  [dir]

-L : 如果要切换到的目录是一个符号链接,就直接切换到符号链接名表示的目录(默认)。

-P : 如果要切换到的目录是一个符号链接,直接接切换到符号链接指向的目标目录。

3、用法说明

cd cd ~ :进入当前用户的主目录(“~ ”表示主目录)。

cd – : 进入此目录之前所在的目录。

cd .. :返回上级目录(“..”表示上级目录,“.”表示当前目录)

4、补充

相关的环境变量

$PWD:保存了当前目录路径  $OLDPWD:保存了上一次所在的目录路径

二、ls命令

1、功能

列出当前目录(文件)或指定目录(文件)的信息,是一个别名。

2、语法

ls  [OPTION]…  [FILE]…

-a:显示所有文件,包括隐藏文件(以“.”开头的文件 )

-A:显示所有文件,包括隐藏文件但“ . .. ”两个文件除外

-l:以长格式显示文件信息(包括属性和权限等)

-h:以便于理解的数据大小单位显示(k\m\g\t…

-t:以文件的最后修改时间(ctime)排序显示

-F:显示文件类型(/ :表示目录 ;* :表示可以执行文件 ;= :表示socket文件 |:表示FIFO文件)

-d:仅列出目录本身,而不是列出目录内的文件数据(要列出目录下的内容可以在目录后加 * 号)

-i:列出文件的inode

-r:将文件由小到大排列输出

-R:连同子目录的内容一起列出,即递归显示

-m:以逗号分隔文件

-1(数字1):将文件显示成竖列(一行只输出一个文件)

3、示例

显示主目录下的所有内容,包括属性权限等

[root@localhost ~]# ls -al ~

total 232

dr-xr-x—. 25 root root  4096 Jul 29 08:23 .

-rw-r–r–.  1 root root   100 Sep 23  2004 .cshrc

drwxr-xr-x.  2 root root  4096 Jul 20 17:51 .abrt

drwxr-xr-x.  2 root root  4096 Jul 20 17:51 Desktop

以逗号分隔文件

[root@localhost yum]# ls -m

pluginconf.d, protected.d, vars, version-groups.conf

三、stat命令

1、功能

用于显示文件的状态信息

2、语法

stat  [OPTION]…  FILE…

-L:显示硬链接的数据

-f:显示文件系统状态而非文件状态

-t:以简洁的方式显示信息

3、示例

显示CentOS 7 的/bin目录的信息

blob.png 

四、touch命令

1、功能

用于改变文件的时间戳和创建空白文件

2、语法

 touch [OPTION]… FILE…

-a:仅修改访问时间(atime

-c:仅修改文件的时间,若文件不存在不创建任何文件

-m:仅修改变动时间mtime

-d:用指定的时间代替当前时间

-t:用指定时间[[CC]YY]MMDDhhmm[.ss]的格式代替当前时间

3、示例

创建空白文件test.txt

[root@localhost ~]# touch test.txt

test.txt文件改为3天前

[root@localhost ~]# touch -d 3 day ago test.txt  

五、cp命令

1、功能

复制文件和目录

2、语法

 cp [OPTION]… [-T] SOURCE DEST

 cp [OPTION]… SOURCE… DIRECTORY

 cp [OPTION]… -t DIRECTORY SOURCE…

-a:用于备份,相当于 -dR –preserve=all

-d:若原文件为链接文件,则复制链接文件的属性而非文件本身

-f:若文件已经存在但无法打开,则删除后再尝试创建并复制

-i:覆盖已有文件之前先询问用户

-l:对源文件创建硬链接,而非复制文件

-p:保留源文件的属性,等同于–preserve=mode,ownership,timestamps

-r,-R:递归复制

-s:复制成为符号链接(symbolic link

-v:显示复制的详细信息

-u:源文件比目标文件新才会执行复制操作

3、说明

blob.png 

4、示例

root身份将主目录下的.bashrc文件复制到/tmp下,并重命名为bashrc

cp /root/.bashrc /tmp/bashrc

备份/var/log/wtmp文件到主目录下,并保持其所有属性不变

cp /var/log/wtmp ~

六、mv命令

1、功能

移动或重命名文件,当文件在同目录下使用mv命令时即为重命名文件

2、语法

 mv [OPTION]… [-T] SOURCE DEST

 mv [OPTION]… SOURCE… DIRECTORY

 mv [OPTION]… -t DIRECTORY SOURCE…

-i:若文件已存在,询问是否覆盖

-f:若文件已存在,不询问,直接强制覆盖

-u:文件存在,且源文件(source)比较新,才会更新

3、示例

将文件test.txt命名为text

[root@localhost ~]# mv test.txt text

将文件text移动到/etc目录下

[root@localhost ~]# mv text /etc

七、rm命令

1、功能

删除文件或目录

2、语法

rm [OPTION]… FILE…

-f:强制删除

-i:操作前询问是否删除

-r:递归删除

3、示例

强制删除/test目录

rm -rf /test

八、file命令

1、功能

查看文件的文件类型

2、语法

file [options] <filename>…

-b:列出文件辨识结果,不显示文件名称

-c:详细显示指令执行过程,便于排错或分析程序执行

-f:列出文件中文件名的文件类型

-F:使用指定的分隔符号输出文件名,默认分隔符为“:”

-L:显示软连接所指向文件的类型

-z:尝试解读压缩文件的内容

-v:显示版本信息

3、示例

[root@localhost ~]# file /bin

/bin: directory

[root@localhost ~]# file -b /bin

directory

九、tree命令

1、功能

以树状图结构列出目录的内容,包括子目录的内容

2、语法

tree [options] <filename>…

-d:只显示目录

-L:指定显示的层级数目

-P:只显示符合指定样式的文件和目录名称

-s:列出文件和目录大小

十、 mkdir命令

1、功能

创建新目录

2、语法

 mkdir [OPTION]… DIRECTORY…

-p:连同父目录一起创建,递归创建

-m:创建目录的同时设置目录的权限

-v:显示详细信息

3、示例

在主目录下创建目录test/test1/test2,并设定权限位700

blob.png 

十一、rmdir命令

1、功能

删除空目录

2、语法

rmdir [OPTION]… DIRECTORY…

-p:连同空的父目录一起删除

-v:显示命令执行的详细过程

3、示例

删除目录test/test1/test2

[root@localhost ~]# rmdir -p test/test1/test2/

十二、alias命令

1.功能

创建命令的别名,可以简化工作中常用命令的输入。用户必须使用单引号将原来的命令引起来,防止特殊字符导致错误。可以用unalias命令删除别名

2、语法

alias [-p] [name[=value] … ]

-p:打印已经设置的命令别名(默认)

3、示例

创建一个命令别名

alias lm=ls -al | more(输入lm则会分页显示)

删除别名lm

unalias lm

4、补充

(a)在命令行中定义的别名,仅对当前shell有效,如要永久生效,需要定义在配置文件中:~/.bashrc (此文件定义的只对当前用户有效);/etc/bashrc(对所有用户有效)。编辑的配置不会立即生效需要shell重新读配置文件: . ~/.bashrc

(b)别名同原命令同名,若要执行原命令,可使用以下3种方法:“\COMMAND” ;COMMAND ;/PATH/COMMAND(绝对路径)

十三、索引节点inode

1、什么是inode

操作系统(Operating System)的文件数据除了文件的实际内容外,还包含了很多的文件属性。通常文件系统会把这些实际的内容存放在date block中,而文件属性存放在inode(索引节点)中。inode就是一个记录文件属性以及文件实际数据存放在那几个block的容器。

2、inode的内容

文件的访问权限;

文件的属主和属组;

inode编号;

文件的大小;

文件的时间戳(ctime/atime/mtime);

文件真正内容的所存放数据块指向;

等等其他相关属性。

文件的inode内容可以使用“stat”命令查看:如下图

blob.png 

3、inode的大小

inode的数量和大小一般在文件系统格式化时已经固定了。每个inode节点大小一般是128字节或256字节,每个文件都仅会占用一个inode,因此文件系统能创建文件数量跟inode数量有关。date block的大小通常分为1k2k4k三种,因此一个文件数据大小要是小于数据块,那么就会造成磁盘的浪费。

使用命令“df -i”可以查看文件系统的inode使用情况:如下图

blob.png 

4、inode号码与directory

每个文件都有一个inode号码,组成了inode表,操作系统读取文件是需要找到其inode号,并分析inode所记录的权限与用户是否符合,只有符合了才会实际读取date block里的内容。

directory也是一种文件,其内容包括两部分:directory下文件(子目录)的文件名和该文件名对应的inode号码。假如根的字母目录A下有一个文件B,那么读取B文件内容的系统操作如下,系统从inode表中找到目录Ainode号(假如1000),打开A目录文件,并读取文件Binode号(假如20000),然后回到inode表找到与文件B对应的inode号(20000),再通过找到的inode号(20000)来读取其所指向的date block内容。

使用命令“ls -i”可以查看文件的inode号,如下图

blob.png 

5、inode的结构

我们知道inode的大小只有128byte256byte,而inode的记录一个date block号就要占用4byte,如果一个400MB的文件,数据块大小为4KB,那么至少有10万条block号码的记录,inode哪有这么大的空间记录信息?因此系统会将inode记录block号码的区域定义为12个直接块指针,一个间接块指针,一个双重间接块指针,一个三重间接块指针记录区。如下图

blob.png 

十四、ln命令

1、功能

用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。

2、语法

ln [OPTION]… TARGET LINK_NAME

-s:创建软连接(符号链接)

-f:强行建立文件或目录的链接

3、示例

/root/install.log文件创建硬链接

[root@localhost ~]# ln /root/install.log /etc

/root目录创建软连接

[root@localhost ~]# ln -s /root /etc/root1

4、硬链接特性

硬链接不能跨文件系统;

目录不能创建硬链接;

硬链接会影响文件的链接数(ls -l 查看);

源文件删除了,其硬链接不受影响;

源文件和硬链接文件的inode号相同,hard link只是在某个目录下新建一条文件名链接到某inode号码的关联记录而已。

5、软连接特性

软连接可以跨文件系统;

目录可以创建软连接;

软连接不影响文件链接数

源文件删除了,软链就会失效;

symbolic link创建的文件为一个独立的新文件,因此会占用掉inodeblock,即软连接是一个独立的文件。

十五、作业

1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

        tr '[a-z]' '[A-Z]' < /etc/issue > /tmp/issue.out

2、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中

        w | tr '[a-z]' '[A-Z]' > /tmp/who.out


3、一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:

Hello, I am 用户名,the system version is here,pleasehelp me to check it ,thanks!

操作系统版本信息

    echo -e "Hello, I am `echo $USER`,the system version is here,pleasehelp me to check it ,thanks! \n`cat     /etc/centos-release`" | mail -s "help" root


4、将/root/下文件列表,显示成一行,并文件名之间用空格隔开

        ls -m | tr "," " "  


5file1文件的内容为:”1 2 3 4 5 6 7 8 9 10” 计算出所有数字的总和

        echo "1 2 3 4 5 6 7 8 9 10" > file

        echo $(tr ' ' '+' <file) | bc


6、删除Windows文本文件中的'^M'字符

  先上传一个Windows文本Windows.txt

        cat Windows.txt | tr -d "\r" > new_file

7、处理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的数字和空格

        echo xt.,l 1 jr#!$mn2 c*/fe3 uz4 | tr -c -d '[:digit:][:space:]'


8、将PATH变量每个目录显示在独立的一行

        echo $PATH | tr ':' '\n'

9、删除指定文件的空行

        grep -v '^$' file > file.new

 

10、将文件中每个单词(字母)显示在独立的一行,并无空行

    单词

            [root@localhost ~]# cat touch.txt

            hello linux ni hao linux pao

            [root@localhost ~]# cat touch.txt | tr " " "\n"

    字母

    [root@localhost ~]# cat touch.txt | tr -d ' ' | grep -oP "."

 

原创文章,作者:pao,如若转载,请注明出处:http://www.178linux.com/26971

(0)
上一篇 2016-08-02 10:51
下一篇 2016-08-02 10:52

相关推荐

  • ​mysql备份之lvm

    mysql备份之lvm 新建一个lvm磁盘,这里我建的lv为mydatalv,挂载到了/data下 [root@localhost ~]# lvs   LV       VG     Attr&nbs…

    Linux干货 2016-07-19
  • linux基础练习

    马哥教育23期网络班+第6周课堂练习 Linux 基础练习 一、linux基础练习题 1、复制/etc/rc.d/rc.sysinit 文件至/tmp 目录,将/tmp/rc.sysinit 文件中的以至少一个空白字符开头的行的行首加#; 2、复制/boot/grub/grub.conf 至/tmp目录中 删除/tmp/grub.conf 文件中的行首的空白…

    Linux干货 2016-11-01
  • N26-第一周作业

    1、计算机主要由硬件部分和软件部分组成。     硬件部分:         (1)、CPU:包括运算器、控制器、寄存器、缓存。CPU的核心部件是运算器和控制器,它的功能主要是解释计算机指令以及处理计算机软件中的数据。         (2…

    Linux干货 2016-12-27
  • TCP连接的状态详解以及故障排查

    我们通过了解TCP各个状态,可以排除和定位网络或系统故障时大有帮助。(总结网络上的内容) 1、TCP状态 linux查看tcp的状态命令: 1)、netstat -nat  查看TCP各个状态的数量 2)、lsof  -i:port  可以检测到打开套接字的状况 3)、 &nbs…

    Linux干货 2015-04-03
  • GNU awk

    GNU awk:      文本处理三剑客:grep,sed,awk            grep,egrep,fgrep:文本过滤工具;pattern     &nb…

    Linux干货 2017-05-22