1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
(1)目录与路径
相对路径与绝对路径
绝对路径:路径的写法【一定由根目录 / 写起】
/usr/share/doc 这个目录。
相对路径:路径的写法【不是由 / 写起】
由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: 【cd ../man】这就是相对路径的写法。相对路径意指相对于当前的工作目录
(2) cat命令
cat是linux的基本文本输出命令,通常用于查看文件内容。
语法
cat [OPTION]... [FILE]...
参数
-n 或 --number:由1开始对所有输出的行数编号。
-b 或 --number-nonblank:和-n相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用^和M-符号,除了LFD和TAB之外。
-E或--show-ends:在每行结束处显示$。
-T或--show-tabs:将TAB字符显示为^|。
-e:等价于-vE。
-A,--show-all:等价于-vET。
-t:等价于"-vT"选项。
cat主要功能
1、一次显示文件的所有内容 cat filename
2、从磁盘创建一个新文件cat >filename(只能创建新文件不能编辑已有文件)
3、将几个文件合并为一个文件cat file1 file2 > file
实例
(3) cd (切换目录)
示例:
(4) pwd(显示当前所在的目录)
参数:
-P :显示出确实的路径,而非使用链接 (link) 路径。(P是大写)
示例:
(5)mkdir (建立新目录)
[root@yangxu ~]# mkdir [-mp] 目录名称
参数:
-m :配置文件目录的权限!我们可以自己设定自己想要的权限,而不需要使用umask定义的默认权限
-p :帮助你直接将所需要的目录递归建立起来!
范例:
(6) rmdir (删除"空"目录)
rmdir [-p] 目录名称
-p :连同上层『空的』目录也一起删除
注:不过要注意的是,这个 rmdir 仅能【删除空的目录】!
(7) ls (查看文件和目录)
ls [-aAdfFhilRS] 目录名称
ls [–color={none,auto,always}] 目录名称
ls [–full-time] 目录名称
参数:
-a :全部的文件,连同隐藏文件( 开头为 . 的目录) 一起列出来~
-A :全部的文件,连同隐藏文件,但不包括 . 与 .. 这两个目录,一起列出来~
-d :仅列出目录本身,而不是列出目录内的文件数据
-f :直接列出结果,而不进行排序 (ls 预设会以文件名排序!)
-F :根据文件、目录等信息,给予附加数据结构,例如:
*:代表可执行文件; /:代表目录; =:代表 socket 档案; |:代表 FIFO 文件;
-h :列出文件的打小(例如GB、KB等等)
-i :列出 inode 位置,而非列出文件属性;
-l :长数据串行出,包含文件的属性等等数据;
-n :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在账号管理提到!)
-r :将排序结果反向输出,例如:原本文件名由小到大,反向则为由大到小;
-R :连同子目录内容一起列出来;
-S :以文件容量大小排序!
-t :依时间排序
–color=never :不要依据文件特性给予颜色显示;
–color=always :显示颜色
–color=auto :让系统自行依据设定来判断是否给予颜色
–full-time :以完整时间模式 (包含年、月、日、时、分) 输出
–time={atime,ctime} :输出 access 时间或 改变权限属性时间 (ctime)
举例:
(8) cp (复制命令)
cp [-adfilprsu] 源文件(source) 目的文件(destination)
cp [options] source1 source2 source3 …. directory
参数:
-a :相当于 -pdr 的意思;
-d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身;
-f :为强制 (force) 的意思,若有重复或其他疑问时,不会询问使用者,而强制复制;
-i :若目的文件(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l :进行硬式连结 (hard link) 的连结文件建立,而非复制文件本身;
-p :连同文件的属性一起复制过去,而非使用默认属性;
-r :递归持续复制,用于目录的复制行为;
-s :复制成为符号链接文件 (symbolic link),亦即『快捷方式』文件;
-u :若 destination 比 source 旧才更新 destination
举例:
原有pam目录不存在,加上-r参数,复制源目录,目标目录同时创建并复制进去
(9) rm (删除文件或目录)
rm [-fir] 文件或目录
参数:
-f :就是 force 的意思,强制移除;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除!最常用在目录的删除了
举例
(10) mv (移动文件与目录、文件重命名)
mv [-fiu] source destination
mv [options] source1 source2 source3 …. directory
参数:
-f :force 强制的意思,强制直接移动而不询问;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新 (update)
举例:
(11) tac (反向显示)
举例
(12) nl (显示时添加行号)
nl [-bnw] 文件
参数:
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号;
-b t :如果有空行,空的那一行不要列出行号;
-n :列出行号表示的方法,主要有三种:
-n ln :行号在屏幕的最左方显示;
-n rn :行号在自己字段的最右方显示,且不加 0 ;
-n rz :行号在自己字段的最右方显示,且加 0 ;
-w :行号字段的占用的位数。
举例
(13) head (取出前几行)
head [-n number] 文件
参数:
-n :后面接数字,代表显示几行的意思
举例
(14) tail (取出后面几行)
tail [-n number] 文件
参数:
-n :后面接数字,代表显示几行的意思
举例:
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
1. 命令执行状态返回值
作为演示,我们键入一条命令 source /etc/profile,回车。
键入的命令到底有没有执行成功呢?我们输入 echo $? 来查看该命令执行状态的返回值。返回值为 0,表示成功执行。
我们再键入一条命令:source /etc,回车,然后再用 echo $? 查看。返回值为 1,表示该命令出错。
我们最后键入 mann ls,回车,然后用 echo $? 查看。返回值为 127,不为 0,同样表示该命令出错。
2.命令行命令展开:
~:展开为用户的主目录
~USERNAME:展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
/tmp{a,b} - /tmp/a. /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
mkdir -p {a,b}_{c,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
mkdir -pv /tmp/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}}
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
1)文件的元数据信息及查看
文件的数据分两种:一种元数据,既属性数据;一种就是数据本身;可使用stat命令查看文件的元数据:
可以使用stat命令查看元数据;
举例:
其中:
file:文件名;
size:文件大小
block:文件占了多少个数据块
IO Block:文件所占数据块的块大小
Device:硬件,既说明该文件在硬盘的那个柱面
Inode:节点号
links:链接
Access(第一个):权限
Uid:该文件所属的属主
Gid:该文件所属的属组
context:安全上下文
Access(第二个):文件上一次的访问时间
Modify:文件上一次修改的时间
Change:文件上一次属性更改的时间
2)修改文件的时间戳信息:
可以使用touch命令更改文件的时间戳:
touch [-acdmt] 文件
选项与参数:
-a :仅修订 access time;
-c :仅修改文件的时间,若该文件不存在则不创建新文件;
-d :后面可以接欲修订的日期而不用目前的日期,也可以使用 –date="日期或时间"
-m : 仅修改 mtime ;
-t : 后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
举例:
查看目前时间点
然后我们使用touch命令看下效果;
3个时间点都已经改变;
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
定义别名:alias
语法:# alias name='command line'
alias的作用仅在该次登入的操作,即输入一次alias后,这个修改只在当前的Shell生效。如果重新开启一个Shell,或者重新登录,则这些alias将无法使用。
alias永久化的方法:
<1>.若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc
<2>.若要让每一位用户都生效别名,则把别名加在/etc/bashrc最后面,然后# source /etc/bashrc
示例:
添加别名
重新再打开个shell,可以看见之前创立的别名已经没有;
可以编辑.bashrc文件,在里面添加别名,这个添加后对当前用户有效;切换用户后,就无效;
在文件末尾添加别名,对全局用户有效;
删除别名: