一、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目录的信息
四、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、说明
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
十一、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的内容
l 文件的访问权限;
l 文件的属主和属组;
l inode编号;
l 文件的大小;
l 文件的时间戳(ctime/atime/mtime);
l 文件真正内容的所存放数据块指向;
l 等等其他相关属性。
文件的inode内容可以使用“stat”命令查看:如下图
3、inode的大小
inode的数量和大小一般在文件系统格式化时已经固定了。每个inode节点大小一般是128字节或256字节,每个文件都仅会占用一个inode,因此文件系统能创建文件数量跟inode数量有关。date block的大小通常分为1k、2k、4k三种,因此一个文件数据大小要是小于数据块,那么就会造成磁盘的浪费。
使用命令“df -i”可以查看文件系统的inode使用情况:如下图
4、inode号码与directory
每个文件都有一个inode号码,组成了inode表,操作系统读取文件是需要找到其inode号,并分析inode所记录的权限与用户是否符合,只有符合了才会实际读取date block里的内容。
directory也是一种文件,其内容包括两部分:directory下文件(子目录)的文件名和该文件名对应的inode号码。假如根的字母目录A下有一个文件B,那么读取B文件内容的系统操作如下,系统从inode表中找到目录A的inode号(假如1000),打开A目录文件,并读取文件B的inode号(假如20000),然后回到inode表找到与文件B对应的inode号(20000),再通过找到的inode号(20000)来读取其所指向的date block内容。
使用命令“ls -i”可以查看文件的inode号,如下图
5、inode的结构
我们知道inode的大小只有128byte或256byte,而inode的记录一个date block号就要占用4个byte,如果一个400MB的文件,数据块大小为4KB,那么至少有10万条block号码的记录,inode哪有这么大的空间记录信息?因此系统会将inode记录block号码的区域定义为12个直接块指针,一个间接块指针,一个双重间接块指针,一个三重间接块指针记录区。如下图
十四、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创建的文件为一个独立的新文件,因此会占用掉inode与block,即软连接是一个独立的文件。
十五、作业
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 "," " "
5、file1文件的内容为:”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