1、Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示;
1)alias:命令别名;
# alias ;获取所有可用别名的定义;
# alias NAME=‘COMMAND’:定义别名;
~]# alias hello='ls'
~]# hello /tmp/
19-52-46 1abc a_c b_c
# unalias NAME ;撤销别名;
~]# unalias hello
2)which:shows the full path of (shell) commands
which [options] programname […]
~]# which ls
alias ls='ls –color=auto'
/usr/bin/ls
不显示命令别名:
~]# \which ls
/usr/bin/ls
~]# which ls –skip-alias
/usr/bin/ls
3)whereis :locate the binary, source, and manual page files for a command
whereis [options] name…
-b Search only for binaries.
仅搜索二进制程序路径;
-m Search only for manuals.
仅搜索使用手册文件路径;
4)history:命令历史;
(1)定制history的功能,可通过环境变量实现:
HISTSZIE:shell进程可保留的命令历史的条数:
[root@localhost ~]# echo $HISTSIZE
1000
HISTFILE:持久保存命令历史的文件; .bash_history
[root@localhost ~]# echo $HISTFILE
/root/.bash_history
HISTFILESIZE:命令历史文件的大小;
[root@localhost ~]# echo $HISTFILESIZE
1000
(2)命令用法:
history [-c] [-d 偏移量] [n]
或
history -anrw [文件名]
或
history -ps 参数 [参数…]
-c 删除所有条目从而清空历史列表。
-d offset偏移量 从指定位置删除历史列表。
-w 将当前历史写入到历史文件中,并追加到历史列表中
-r 从文件读取命令历史至历史列表中
-w 把历史列表中的命令追加至历史文件中
# history NUMBER :显示最近的NUMBER条命令
(3)调用命令历史列表中的命令:
!NUM :再一次执行历史列表中的第NUM条命令;
!! :再一次执行上一条命令;
!STRING:再一次执行命令历史列表中最近一个以STRING开头的命令;
注意:命令的重复执行有时候需要依赖于幂等性:(可成功执行)
调用上一条命令的最后一个参数:
a)快捷键:ESC键+.
b)字符串:!$
(4)控制命令历史记录的方式;
环境变量:HISTCONTORL
[root@localhost ~]# echo $HISTCONTROL
ignoredups
ignoredups:忽略重复的命令;
ignorespace:忽略以空白字符开头的命令;
ignoreboth:以上两者同时生效;
5)文件查看类命令:
(1)more命令:
more FILE
特点:翻屏至文件尾部后自动退出;
(2)less命令:
less FILE
man调用的就是less命令
(3)head命令:
查看文件的前n行;默认10行;
head [options] FILE
-n [NUM]
-[NUM]
(4)tail命令:
查看文件的后n行;默认10行;
tail [options] FILE
-n [NUM]
-[NUM]
-f:查看文件尾部内容结束后不退出,跟随显示新增内容;
(5)stat命令:
stat – display file or file system status
stat FILE…
6)touch :change file timestamps
touch [OPTION]… FILE…
-c:指定的文件路径不存在时,不予创建;
-a:改变访问时间,access time
-m:改变更改时间,modify time
-t:STAMP
[[CC]YY]MMDDhhmm[.ss]
touch FILE 创建空文件
7)cp:copy
单源复制:cp [OPTION]… [-T] SOURCE DEST
多源复制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
(1)单源复制:cp [OPTION]… [-T] SOURCE DEST
如果DEST不存在,则事先创建此文件,并复制源文件的数据流至DEST中;
如果DEST存在:
如果DEST是非目录文件:则覆盖目标文件;
如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;
(2)多源复制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
如果DEST不存在:错误;
如果DEST存在:
如果DEST是非目录文件,错误;
如果DEST是目录文件,分别复制每个文件至目标目录中,并保持原名;
(3)常用选项:
-i:交互式复制,即覆盖之前提醒用户确认;
-f:强行覆盖目标文件;
-r,-R:递归复制目录;复制目录及目录中文件;
-d:复制符号链接文件本身,而非其指向的源文件;
-a: -dR –preserve=all,archive,用于实现归档;
–preserv=
mode:权限
owership:属主和属组
timestamps:时间戳
context:安全标签
xattr:扩展属性
links:符号链接
all:上述所有属性
8)mv:move
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用选项:
-i:交互式;
-f:force
9)rm:remove
rm [OPTION]… FILE…
常用选项:
-i:交互式;
-f:force
-r:递归删除目录,recursive
删除目录:rm -rf /PATH/TO/DIR
危险操作:rm -rf /*
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示;
1)命令执行的状态结果:
bash通过状态返回值来输出此结果:
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;
[root@localhost etc]# ls dd
ls: 无法访问dd: 没有那个文件或目录
[root@localhost etc]# echo $?
2
[root@localhost etc]# lss
-bash: lss: 未找到命令
[root@localhost etc]# echo $?
127
命令正常执行时,有的还会有命令返回值:
根据命令及其功能不同,结果各不相同;
2)引用命令的执行结果:
$(COMMAND)
或
`COMMAND`
[root@localhost tmp]# mkdir $(date +%H-%M-%S)
[root@localhost tmp]# ll
总用量 4
drwxr-xr-x. 2 root root 6 2月 8 19:52 19-52-46
[root@localhost tmp]# mkdir $(date +%H-%M-%S)
[root@localhost tmp]# ll
总用量 4
drwxr-xr-x. 2 root root 6 2月 8 19:52 19-52-46
drwxr-xr-x. 2 root root 6 2月 8 19:52 19-52-54
3)命令行展开:
~ :自动展开为用户的家目录,或指定的用户的家目录;
{};可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
1、创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b 目录;
3、使用命令行展开功能来完成以下练习;
1)创建/tmp目录下:a_c,a_d,b_c,b_d
2)创建/tmp/mylinux目录;
4、文件的元数据信息有哪些,分表表示什么含义,如何查看?如何修改文件的时间戳信息。
1)任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元
数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode…)等等。在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。
2)stat:display file or file system status
stat FILE…
3)时间戳:
access time(最近访问)
modify time(最近更改)
change time(最近改动)
4)touch:change file timestamps
touch [OPTION]… FILE…
-c:指定的文件路径不存在时,不予创建;
-a:改变访问时间,access time
-m:改变更改时间,modify time
-t:STAMP
[[CC]YY]MMDDhhmm[.ss]
(1)更改访问时间(access time):
(2)更改更改时间(modify time)
(3)使用[[CC]YY]MMDDhhmm[.ss]格式更改成确切的时间:
(4)也可以使用-d,改变日期;
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
1)定义命令别名:
2)重定向:
(1)> :覆盖输出
>>:追加输出
(2)错误输出流重定向:2> ; 2>>
(3)合并正常和错误输出流:
1)&> ; &>>
(4)合并输出:
(5)命令的引用:
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一个数字(可以有其他字符)的文件或目录。
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录。
9、在/tmp目录下创建以tfile开头,后跟当前日子和时间的文件。
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
12、复制/etc目录中所有以1或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
原创文章,作者:徐 琦,如若转载,请注明出处:http://www.178linux.com/68085
评论列表(1条)
非常的详细和认真,加油,再接再励。