linux文件管理命令:
ls
全名list(列表)查看当前所有文件
-a:显示所有文件
-l:列出文件详细信息
-t:按时间进行文件的排序
-s:在每个文件后面打印出文件的大小
pwd
显示当前目录
cd为切换目录
cd.. 切换到上一层目录
touch
创建一个空文件夹
-d:使用指定日期时间
-r:把指定的文档或目录的日期时间设成参考文档或目录的日期时间相同
-t:指定时间,并不是现在的时间
--help 寻求帮助
mkdir
创建新目录
-p 递归创建目录
rmdir
删除目录
chomd
修改权限
-rw-------(600)只有所属者有读写权限
-rw-r--r--(644)只有所属者有读写权限,而所属组用户和其他用户只有读权限
-rwx------(700)只有所属者有读、写、执行权限
-rw-rw-rw-(666)所有用户都有文件读写权限
-rwxrwxrwx(777)所有用户都有读、写、执行权限
chgrp:改变文件所属组
chown:改变文件所属者
chmod:改变文件属性
mv
移动文件与目录
cp
copy 复制文件或目录
参数:
-a 或 --archive 此参数的效果和同时指定"-dpR"参数相同
-b 或 --backup 删除、覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录。假如没有加上这个参数,在复制过程中若遇到符号链接,则会直接复制源文件或目录
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-l 或 --link 对源文件建立硬链接,而非复制文件
-p 或 --preserve 保留源文件或目录的属性,包括所有者、所属组、权限与时间
-P 或 --parents 保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经丰在
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理
-s 或 --symbolic-link 对源文件建立符号链接,而非复制文件
-S <备份字尾字符串> 或 --suffix=<备份字尾字符串> 用"-b"参数备份目的文件后,备份文件的字尾会被加上一个备份字符串。默认的备份字尾符串是符号"~"
-u 或 --update 使用这项参数之后,只会在源文件的修改时间(Modification Time)较目的文件更新时,或是名称相互对应的目的文件并不存在,才复制文件
-v 或--verbose 显示执行过程
-V <备份方式> 或 --version-control=<备份方式> 指定当备份文件时,备份文件名的命名方式,有以下3种:
1.numbered或t, 将使用备份编号,会在字尾加上1字符串,其数字编号依次递增
2.simple或never 将使用简单备份,默认的备份字尾字符串是~, 也可通过-S来指定
3.existing或nil将使用当前方式,程序会先检查是否存在着备份编号,若有则采用备份编号,若无则采用简单备份
-x 或 --one-file-system 复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件
find
查找某文件
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
-print 将查找到的文件输出到标准输出
-exec command {} ; —–将查到的文件执行command操作,{} 和 ;之间有空格
-ok 和-exec相同,只不过在操作前要询用户
因为find命令会根据我们给的option,也就是寻找条件从我们给出的目录开始对其中文件及其下子目录中的文件进行递归搜索,所以我觉的这个地方说是“起始目录”是非常好的。
grep
全称:
Global Regular Expression Print 表示全局正则表达式版本,使用权限为所有用户
主要参数
-c:只输出匹配行的计数
-I:不区分大小写(只适用于单字符)
-h:查询多文件是只输出包含匹配字符的文件名
-n:显示匹配行及行号
-s:不显示不存在或无匹配文本的错误信息
-v:显示不包含匹配文本的所有行
bash的工作特性:
全称为Bourne-Again Shell。它是一个命令处理器,属于shell的一种,通常运行于文本窗口中,并能执行用户直接输入的命令。
在我们每次输入命令之后,系统都会把命令执行的状态结果保存在一个变量中,我们称这个变量是特殊变量,用$?来表示
获取方式 echo $?
程序执行的有两类结果:程序的返回值和程序的执行状态结果
环境变量:
HISTSIZE:命令历史记录的条数
HISTFILE:~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
调用历史命令的方式:
!#:重复执行第#条指令
!!:执行上一条命令
!string 调用最近以string开头的命令
!$:调用上一条命令的最后一个参数
ESC,.:调用上一条命令的最后一个参数
快捷键
ctrl+L:清屏,相当于clear
ctrl+i:跳转值命令首部
ctrl+e:跳转至命令尾部
ctrl+c:取消命令执行
ctrl+U:删除命令首至光标所在处的内容
ctrl+K:删除光标所在处至命令行尾部的所有内容
创建/tmp目录下的:a_c, a_d, b_c, b_d
[root@foundation0 tmp]#mkdir /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@foundation0 mylinux]# mkdir -p /tmp/mylinux/[bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/moules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var,lock,log,run}
文件的元数据信息:
文件的大小,文件的所有者,文件的权限
access time:访问时间,atime
modify time:修改时间,mtime
change time:改变时间,ctime
使用stat命令查询文件的元数据信息
修改文件的时间戳信息
touch命令
参数
-a:更改访问时间
-c:-no-create 不创建任何文件
-m :修改时间
定义一个命令的别名,在命令中引用另一个命令执行结果
alias:通过alias命令实现:shell的内嵌命令
alias jin=‘VALUE’:定义别名为jin,相当于执行value
对当前用户有效:~/.bashrc
对所有用户有效:/etc/bashrc
bash进程重新读取配置文件:source /path/to/config_file 或 ./ path/to/config_file
撤销别名:unalias [-a] name [name...]
显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
[root@foundation0 tmp]# touch /var/like123321like
[root@foundation0 tmp]# ls -d /var/l[[:digit:]][[:lower:]]
/var/like123321like
或者
[root@foundation0 tmp]# ls -d /var/l[0-9][a-z]
/var/like123321like
显示/etc目录下 以任意一个数字开头 且以非数字结尾的文件或目录:
[root@foundation0 tmp]# touch /etc/{1..3}.txt
[root@foundation0 tmp]# mkdir /etc/{4..5}note
[root@foundation0 tmp]# ls -d /etc/[0-9][^0-9]
/etc/1.txt /etc/2.txt /etc/3.txt /etc/4note /etc/5note
显示/etc目录下,以非字母开头 后面跟了一个字母以及其他任意长度任意字符的文件或目录:
[root@foundation0 tmp]# ls -ld /etc/[[1]][[:alpha:]]
drwxr-xr-x. 2 root root 6 Sep 25 00:19 /etc/4note
drwxr-xr-x. 2 root root 6 Sep 25 00:19 /etc/5note
或者
[root@foundation0 tmp]# ls -dl /etc/[^a-z][a-z]*
drwxr-xr-x. 2 root root 6 Sep 25 00:19 /etc/4note
drwxr-xr-x. 2 root root 6 Sep 25 00:19 /etc/5note
[root@foundation0 tmp]# mkdir /etc/4NOTE #新创建一个第二个字符是大写字母的目录
[root@foundation0 tmp]# ls -dl /etc/[^a-z][a-z]* #不管是[a-z]还是[A-Z],结果并不区分大小写
drwxr-xr-x. 2 root root 6 Sep 25 00:19 /etc/4note
drwxr-xr-x. 2 root root 6 Sep 25 00:37 /etc/4NOTE
drwxr-xr-x. 2 root root 6 Sep 25 00:19 /etc/5note
在/tmp 目录下创建以tfile 开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22:
[root@foundation0 tmp]# touch tfile-date +%Y-%m-%d-%H-%M-%S
[root@foundation0 tmp]# ls tfile*
tfile-2016-09-25-00-53-04
复制/etc 目录下所有以p 开头 以非数字结尾的文件或目录到/tmp/mytest1目录中:
[root@foundation0 tmp]# mkdir mytest1 #复制多个文件到目录时,该目录必须已经存在。
[root@foundation0 tmp]# cp -r /etc/p[^0-9] mytest1/
[root@foundation0 tmp]# ls !$
ls mytest1/
pam.d passwd- pki pm postfix prelink.conf.d profile protocols purple
passwd pinforc plymouth popt.d ppp printcap profile.d pulse python
复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中:
[root@foundation0 tmp]# mkdir mytest2
[root@foundation0 tmp]# cp -r /etc/.d mytest2
复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
[root@foundation0 tmp]# cp -an /etc/[lmn]*.conf /tmp/test3
[root@foundation0 tmp]# tree /tmp/mytest3