从零开始的Linux学习Ⅱ
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始的Linux学习Ⅱ相关的知识,希望对你有一定的参考价值。
Linux上的文件管理类命令
常用的文件管理工具有:cp , mv , rm
- cp命令——copy:
NAME
cp - copy files and directories
复制 文件 和 目录
SYNOPSIS
单源复制 cp [OPTION]... [-T] SOURCE DEST
多源复制 cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
常用OPTION:
-i:交互式复制,即覆盖之前提醒用户确认;
-f:强制覆盖目标文件;
-r, -R:递归复制目录;
-d:复制符号链接文件本身,而非其指向的源文件;
-v:显示过程
-a:-dR --preserve=all, archive,用于实现归档;
--preserv=
mode:权限
ownership:属主和属组
timestamps: 时间戳
context:安全标签
xattr:扩展属性
links:符号链接
all:上述所有属性
cp SRC...DEST
复制 源 目标
情况一:
(1)如果DEST不存在:新建DEST,并将SRC中的内容填充至DEST中;
如果目标存在:如果DEST是文件:将SRC中的内容覆盖至DEST中;(可以使用-i来提醒用户是否覆盖)
(2)如果DEST是目录文件:在DEST下新建与源文件同名的文件并将SRC中的内容填充至新文件中;
情况二:如果SRC是目录则必须使用-r选项
(1)如果DEST存在,则其必须是目录,否则报错:现在DEST目录下创建与SRC同名的目录,并将SRC中的所有内容复制到DEST中
(2)如果DEST不存在,则先创建DEST目录,并将SRC中的所有内容复制到DEST目录中
2.mv命令:move:
NAME
mv - move (rename) files
移动 (重命名)文件
SYNOPSIS
单源移动 mv [OPTION]... [-T] SOURCE DEST
多源移动 mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE..
常用OPTION:
-i:交互式
-f:force 强制
- rm命令:
NAME
rm - remove files or directories
SYNOPSIS
rm [OPTION]… FILE…
常用OPTION:
-r, -R, –recursive:递归删除目录及其内容;
-f,force:强制删除,不提示确认;
-i,–interactive:交互式,提示确认;
因为删除命令是很危险的操作,请不要随便使用删除命令!
如需删除可以先创建一个模拟回收站备份文件后,等确认没用后再进行删除;
极度危险
bash的工作特性
bash的基础特性:命令的执行状态结果
命令执行的状态结果:
bash通过状态返回值来输出此结果:
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;
命令正常执行时,有的还回有命令返回值:
根据命令及其功能不同,结果各不相同;
引用命令的执行结果:
$(COMMAND)
或`COMMAND`
bash的基于特性:引用
强引用:‘‘
弱引用:""
命令引用:``
bash基础特性:快捷键
Ctrl+a:跳转至命令行行首
Ctrl+e:跳转至命令行行尾
Ctrl+u:删除行首至光标所在处之间的所有字符;
Ctrl+k:删除光标所在处至行尾的所有字符;
Ctrl+l:清屏,相当于clear
- 命令行展开
~:自动展开为用户的家目录,或指定的用户的家目录:
{ }:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径:
例如:/tmp/{a,b} 相当于 /tmp/a /tmp/b
文件的元数据信息
文件的数据分为两类:一类为数据,即文件的实际内容;另一类为元数据,用来描述文件的特征。
元数据内容:
1.文件名
2.文件大小
3.文件所在数据块
4.数据块的大小
5.文件类型
6.文件所在的Inode
7.硬链接次数
8.权限
9.属主id
10.属组id
11.最近一次访问时间戳
12.最近一次更改文件内容的时间戳
13.最近一次更改文件元数据的时间戳
- 查看文件的元数据——stat命令
NAME
stat - display file or file system status
SYNOPSIS
stat [OPTION]... FILE...
OPTION
-f 输出文件系统的状态,而非文件的状态
-t 显示简要格式的文件元数据信息
- 修改文件的时间戳
可以使用touch命令更改文件的时间戳:
NAME
touch - change file timestamps
SYNOPSIS
touch [OPTION]... FILE...
常用OPTION:
-a change only the access time
仅修改 access time;
-c, --no-create
do not create any files
仅修改文件的时间,若该文件不存在则不创建新文件
-d, --date=STRING
parse STRING and use it instead of current time
后面可以接欲修订的日期而不用目前的日期,也可以使用 –date=”日期或时间”
-m change only the modification time
仅修改 modification time ;
-t STAMP
use [[CC]YY]MMDDhhmm[.ss] instead of current time
后面可以接欲修订的时间而不用目前的时间,格式为[[CC]YY]MMDDhhmm[.ss]
命令的别名
定义别名命令——alias
使用alias命令就可以在命令中引用另一个命令的执行结果
语法:# alias name=’command line’
alias的作用仅在该次登入的操作,即输入一次alias后,这个修改只在当前的Shell生效。如果重新开启一个Shell,或者重新登录,则这些alias将无法使用。
在Centos7中系统默认包含的有
alias永久化的方法:
(1)若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。
然后# source ~/.bashrc
(2)若要让每一位用户都生效别名,则把别名加在/etc/bashrc最后面,
然后# source /etc/bashrc
练习:
请使用命令展开行功能来完成以下练习:
(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
mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys}
![](http://i2.51cto.com/images/blog/201810/07/1040103d5be01f587ebdd158fe127c5e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201810/07/9656f0b88119dfb267c11ebef9751b6e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
(3)、显示/var目录下所有以1开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
ls -d /var/l?[[:lower:]]
![](http://i2.51cto.com/images/blog/201810/07/50ae8af220becf818e06c9f318d61825.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
(4)、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
ls -d /etc/[0-9]*[^0-9]
(5)、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
ls -d /etc/[^a-z][a-z]*
(6)、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如: tfile-2016-05-27-09-32-22。
touch /tmp/tflie-$(date +\%F-\%H-\%M-\%S)
(7)、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
cp -r /etc/p*[^0-9] /tmp/mytest1/
(8)、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
cp -r /etc/*.d /tmp/mytest2/
(9)、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
cp -r /etc/[lmn]*.conf /tmp/mytest3/
以上是关于从零开始的Linux学习Ⅱ的主要内容,如果未能解决你的问题,请参考以下文章