linux下的文件类型
-:普通文件
d: 目录文件
b: 块设备
c: 字符设备
l: 符号链接文件
p: 管道文件pipe
s: 套接字文件socket
pwd命令
作用: printing working directory
打印当前工作目录
语法:pwd: pwd [-LP]
选项:
-P 显示真实物理路径-L 显示链接路径(默认)
[root@centos7 bin 00:02:52]$pwd -P/usr/bin
绝对路径和相对路径
绝对路径:以根为起点,完整的文件的位置路径
相对路径:指定相对于当前工作目录或某目录的位置
其中,相对路径的表示有:
. 当前目录.. 上级目录实例:[root@centos7 bin 00:21:21]$pwd/bin[root@centos7 bin 00:24:03]$cd ..[root@centos7 / 00:24:05]$pwd/[root@centos7 / 00:24:06]$cd .[root@centos7 / 00:24:11]$
basename命令————基名
作用:Print NAME with any leading directory components removed.
仅显示一个文件路径的最后文件名
实例:
[root@centos7 bin 00:09:59]$basename /etc/init.d/functionsfunctions
dirname命令————目录名
作用:Output each NAME with its last non-slash component and trailing slashes removed.
显示文件名前面的目录名
实例:[root@centos7 bin 00:10:40]$dirname /etc/init.d/functions /etc/init.d
cd命令
作用:Change the shell working directory.
更改当前工作目录
语法; cd: cd [-L|[-P [-e]]] [dir]
实例:
切换到上级目录: cd ..
切换到当前用户家目录: cd或cd ~
切换到用户USERNAME的家目录:cd ~USERNAME
切换到上一个工作目录: cd -
——————相关的环境变量 :
PWD:当前目录路径
OLDPWD:上一次目录路径
[root@centos7 bin 00:21:02]$echo $PWD/bin[root@centos7 bin 00:21:08]$echo $OLDPWD/
ls命令
作用:List information about the FILEs (the current directory by default).
列出关于文件的信息
语法:Usage: ls [OPTION]... [FILE]...
选项:
ls -a 列出所有文件,包含隐藏文件
ls -l 显示详细信息
ls -R 递归,适用于目录
ls -r 逆序
ls -ld 目录和符号链接信息
ls -1 文件分行显示,默认按字母顺序排序,文件中的数字优先级高于字母;
ls -S 按从大到小排序
ls -t 按mtime排序
ls -u 配合-t选项,显示并按atime从新到旧排序
ls -U 按目录存放顺序显示
ls -X 按文件后缀排序
ls -F:在不同类型的文件后面添加符号用以区分;
[root@centos7 / 00:24:59]$ls -Fbin@ data/ etc/ lib@ media/ opt/ root/ sbin@ sys/ usr/boot/ dev/ home/ lib64@ mnt/ proc/ run/ srv/ tmp/ var/目录添加/,而链接文件添加@
stat命令
作用:Display file or file system status.
显示文件的状态,包括inode、链接数、文件权限、属主和属组,以及三种时间类型:
access time:访问时间,atime,读取文件内容
modify time: 修改时间, mtime,改变文件内容(数据)
change time: 改变时间, ctime,文件属性发生改变
语法:Usage: stat [OPTION]... FILE...
实例:[root@centos7 / 00:33:31]$stat /etc/issue File: ‘/etc/issue’ Size: 23 Blocks: 8 IO Block: 4096 regular fileDevice: 802h/2050d Inode: 67200792 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Context: system_u:object_r:etc_t:s0Access: 2018-04-29 00:35:55.000000000 +0800 访问时间Modify: 2018-04-29 00:35:55.000000000 +0800 文件内容修改时间Change: 2018-07-18 17:25:36.403978146 +0800 文件属性修改时间 Birth: -
touch命令
作用:Update the access and modification times of each FILE to the current time,A FILE argument that does not exist is created empty, unless -c or -h is supplied.
创建文件或者刷新时间
语法:
touch [OPTION]... FILE...
选项:
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的时间戳
-c 如果文件不存在,则不创建,说白了,就是要求文件必须存在,用来刷新时间。
cp命令
作用:Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
复制单个文件到目标,或者复制多个文件到目录下
语法:
Usage: cp [OPTION]... [-T] SOURCE DEST
or: cp [OPTION]... SOURCE... DIRECTORY
or: cp [OPTION]... -t DIRECTORY SOURCE...
选项:
-i:覆盖前提示 –n:不覆盖,注意两者顺序
-r, -R: 递归复制目录及内部的所有内容
-a: 归档,相当于-dR --preserv=all
-d:--no-dereference --preserv=links 不复制原文件,只复制链接名
--preserv[=ATTR_LIST]
mode: 权限 ownership: 属主属组 timestamp: links xattr context all-p: 等同--preserv=mode,ownership,timestamp
-v: --verbose
-f: --force
-u:--update 只复制源比目标更新文件或目标不存在的文件
--backup=numbered 目标存在,覆盖前先备份加数字后缀
总结:
小试牛刀
1、定义别名命令baketc,每天将/etc/目录下所有文件,备份到
/app独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd, 备份过程可见alias baketc="cp -av /etc/ /data/backup`date +%F`"注意:错误用法如下alias baketc="cp -av /etc/* /data/backup`date +%F`"*表示所有文件,复制的目标必须是一个已经存在的目录。
2、创建/app/rootdir目录,并复制/root下所有文件到该目录内,
要求保留原有权限cp -a /root/ /app/rootdir
3、复制/root下的所有文件,包括隐藏文件,到/data下。
cp /root/. /data/ 一个.表示当前目录,即包括隐藏文件和非隐藏文件。
mv命令
作用:Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
重命名文件或者移动文件到目录下
语法:
Usage: mv [OPTION]... [-T] SOURCE DEST
or: mv [OPTION]... SOURCE... DIRECTORY or: mv [OPTION]... -t DIRECTORY SOURCE...选项:
-i: 交互式
-f: 强制
建议:默认对root用户定义了别名: alias mv='mv -i',\mv可以使用原命令;
普通用户默认并没有对mv定义别名,在移动和覆盖时不会提示,建议添加别名。
rm命令
作用:Remove (unlink) the FILE(s)
删除(取消链接)文件
语法:Usage: rm [OPTION]... FILE...
选项:
-i 交互式
-f 强制删除
-r 递归删除目录树
--no-preserve-root 删除/ ,默认Centos6开始禁止删除根,需要添加 --no-preserve-root才能删除。
rm -rf / 嘿嘿,试一下吧
同样,默认对root设置了关于rm的别名,如果不需要提示,可以使用\转义或者''执行原命令;
建议对普通用户设置别名,防止误操作。另外rm在删除不存在的文件时不会提示或者报错。
rename命令
作用:rename files
对文件重命名
语法:rename [options] expression replacement file...
批量更改文件名[root@centos7 data 01:19:44]$touch file{1..10}.txt[root@centos7 data 01:19:43]$lsfile10.txt file2.txt file4.txt file6.txt file8.txtfile1.txt file3.txt file5.txt file7.txt file9.txt[root@centos7 data 01:19:44]$rename ".txt" ".txt.bak" f*[root@centos7 data 01:19:59]$lsfile10.txt.bak file2.txt.bak file4.txt.bak file6.txt.bak file8.txt.bakfile1.txt.bak file3.txt.bak file5.txt.bak file7.txt.bak file9.txt.bak
tree命令——需要安装
作用:list contents of directories in a tree-like format
以树状格式列出目录的内容
选项:
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径
[root@CentOS6 xin 09:32:52]$tree -d /data/data└── xin ├── dir1 └── dir23 directories[root@CentOS6 xin 09:32:57]$tree -L 1 /data/data├── xin├── xin.log└── xin.txt1 directory, 2 files[root@CentOS6 xin 09:33:08]$tree -L 2 /data/data├── xin│?? ├── dir1│?? └── dir2├── xin.log└── xin.txt
mkdir命令
作用:Create the DIRECTORY(ies), if they do not already exist.
创建目录
语法:mkdir [OPTION]... DIRECTORY...
选项:
-p: 创建连续的多级目录
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
[root@CentOS6 xin 09:36:07]$mkdir -p dir1/dir2/dir3[root@CentOS6 xin 09:36:22]$tree dir1/dir1/└── dir2 └── dir3
rmdir命令
作用:Remove the DIRECTORY(ies), if they are empty.
删除空目录
语法:rmdir [OPTION]... DIRECTORY...
选项:
-p: 递归删除父空目录,从子目录开始往上级目录删除。
-v: 显示详细信息