Linux初识二
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux初识二相关的知识,希望对你有一定的参考价值。
1. Linux上常用的文件管理命令及使用
- (1) CP命令:复制文件或文件夹
语法格式
常用选项cp [OPTION]... [-T] SOURCE DEST // 单源复制 cp [OPTION]... SOURCE... DIRECTORY //多源复制
注意-i,--interactive:交互式复制,如果要复制的目标文件存在,在覆盖之前提醒用户确认; -f,--force:强制覆盖目标文件; -r,-R,--recursive:递归复制,复制目录中的子目录; -d:复制符号连接本身,而不是其指向的源文件; -a,-dR --preserve=all:archive,用于实现归档; --preserve=[ARRT_LIST]:复制文件时保留源文件的一些属性 如:mode,ownership, timestamps,context,links,xattr,all
?? 在复制文件时,如果目标是文件,若文件存在则提示用户是否覆盖目标,若目标不存在则创建一个与源文件同名的文件,并将内容复制进去;如果目标是目录,若目标目录不存在则会提示错误,若目标目录存在,则在目标目录下先创建一个与源文件同名的文件,并将文件内容复制进去。
示例[root@localhost ~]# cp /etc/fstab /tmp/fstab.bak //单源复制 [root@localhost ~]# cp /etc/fstab /etc/passwd /tmp/test/ //多源复制
- (2) mv命令:移动或重命名文件
语法格式
常用选项mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE...
示例-f,--force:强制移动,在覆盖时不提示; -i,--interactive:覆盖时提示;
[root@localhost ~]# mv fstab fstab.bak //重命名 [root@localhost ~]# mv fstab.bak ./test/ //移动
- (3) rm命令:删除文件或目录
语法格式
常用选项rm [OPTION]... FILE...
示例-f,--force:强制删除,不管文件存不存在都不提示; -i,每删除一个文件都询问是否删除; -r,-R,--recursive:递归删除,删除目录及子目录;
[root@localhost ~]# rm -r ./test/ //删除目录
2. bash工作特性
- (1) 命令执行状态返回值
??shell程序会将上一次运行的命令是否成功以及函数的返回值保存在$?这个特殊的变量中,我们可以通过查看$?的值来确认上一次的命令是否执行成功。执行成功则返回0,失败则返回1~255之间的一个数。
<br/>
注意:命令的执行状态结果与命令的执行结果是两个不同的概念,比如说,ls命令,当我们执行它时,它的状态结果可能是1,而它的执行结果则是列出当前目录中的文件。
示例
??另外,我们还可以引用命令的执行结果,使用$(command)或 `(command)` ,如当我们要根据当前时间来创建出一个目录时:[root@localhost tmp]# ls init.d mylinux scripts [root@localhost tmp]# echo $? 0 [root@localhost tmp]# lss -bash: lss: command not found [root@localhost tmp]# echo $? 2
[[email protected] ~]# mkdir $(date +H%-%M-%s)
-
(2) 命令行展开
??bash中可以使用某些特殊的字符来表示命令中的参数字符串。~ :用户的家目录; ~USERNAME:指定用户USERNAME的家目录; {} :可以指定一个以逗号分隔的路径列表。
示例
[root@localhost ~]# cd ~ //切换至当前用户的家目录 [root@localhost ~]# cd ~Syuan //切换至Syuan的家目录 [root@localhost ~]# rm /tmp/{a,b} //删除tmp目录下的a和b文件
应用
Ⅰ 在/tmp目录下创建 a_c,a_d,b_c,b_d文件;
[root@localhost ~]# touch /tmp/{a,b}_{c,d}
Ⅱ 创建/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
[root@localhost ~]# 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}} [root@localhost ~]# tree /tmp/mylinux
3. 文件的元数据信息
??文件的数据可以分为两类,一种是元数据(matedata),用于记录文件的属性信息,如:大小、类型、权限、属主属组、时间戳等。另一种就是数据(data),记录文件的内容。在linux系统上,我们可以通过stat命令来查看文件或文件系统的状态。
示例
[[email protected] ~]# stat functions
File: ‘functions’
Size: 13948 Blocks: 32 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 202424773 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-11-24 17:48:04.752152528 +0800
Modify: 2016-11-24 17:47:23.900148636 +0800
Change: 2016-11-24 17:47:23.900148636 +0800
Birth: -
??我们也可以使用命令来改变文件的一些元数据信息,如权限、属主属组、时间戳等。下面介绍一下改变文件时间戳的命令touch。
touch 命令:修改文件的时间戳,当文件不存在时会创建一个空文件。
语法格式
touch [OPTION]... FILE...
常用选项
-a:仅修改访问时间;
-c:文件不存在是不创建;
-m:仅修改修改时间;
-t STAMP:指定时间而不是使用当前的时间,格式[[CC]YY]MMDDhhmm[.ss]
示例
[[email protected] ~]# ll functions
-rw-r--r--. 1 root root 13948 Nov 24 17:47 functions
[[email protected] ~]# touch functions
[[email protected] ~]# ll functions
-rw-r--r--. 1 root root 13948 Dec 11 05:27 functions
4. 命令的别名
??在linux系统上我们可以给命令的常用选项定义一个别名,使用别名就相当于使用这个命令的特定选项。这对于这个命令特别常用选项很长或者很多时,通过别名来使用就非常方便。在linux系统上通过alias命令来定义别名,它是shell的内嵌命令。
alias命令:定义或显示别名
语法格式
alias [name[=value] ... ]
alias不带参数时显示系统上定义的所有别名。
示例
[root@localhost ~]# alias clear=‘clr‘
注意:使用alias命令所定义的别名只对当前shell进程有效,当系统重启后所定义的别名变不起作用了,若要使定义的别名永久有效,则可以编辑~/.bashrc文件。另外,撤销别名的定义可以使用unalias命令。
以上是关于Linux初识二的主要内容,如果未能解决你的问题,请参考以下文章