文件系统目录结构
- Linux下的文件类型 
- 普通文件 
 d 目录文件directory
 b 块设备block
 c 字符设备character
 l 符号链接文件link
 p 管道文件pipe
 s 套接字文件socket- 文件操作命令- pwd 显示当前工作目录
- pwd -P显示真实物理路径
- 
绝对路径和相对路径绝对路径:以/开始 
 相对路径:基名basename
 目录名dirname- [root@localhost /bin]$ basename /etc/sysconfig/network
- network
- [root@localhost /bin]$ dirname /etc/sysconfig/network
- /etc/sysconfig
 cd 更改目录- [root@localhost /bin]$ cd ~ (回到home目录)
- [root@localhost ~]$ cd - (切换至以前的上一个工作目录)
- /bin
- [root@localhost /bin]$ cd .. (切换至父目录)
- [root@localhost /]$ cd /bin
- [root@localhost /bin]$ pwd
- /bin
- [root@localhost /bin]$ cd -P /bin (切换至物理路径,而非链接路径)
- [root@localhost /usr/bin]$ pwd
- /usr/bin
- [root@localhost /usr/bin]$ cd (切换至当前用户主目录)
- [root@localhost ~]$
 相关环境变量 - [root@CentOS /etc]$ echo $PWD (当前目录路径)
- /etc
- [root@CentOS /etc]$ echo $OLDPWD (上一次目录路径)
- /root
 ls 列出目录内容ls 【options】【files_or_dirs】
 ls 查看不同后缀文件时的颜色由/etc/DIR_COLORS和@LS_COLORS变量定义
- -a 包含隐藏文件 
- -l 显示额外的信息 (别名alias ‘ll=ls -l’)
- -R 目录递归 -r 倒序排列
- -ld 目录和符号链接信息
- -1 文件分行显示
- -S 按从大到小排序
- -t 按mtime排序
- -u 配合-t选项,显示并按atime从新到旧排序
- -U 按目录存放顺序显示
- -X 按文件后缀排序 - [root@CentOS /etc]$ ls -Slr (按从大到小倒序排列)
- total 1364
- -rw-------. 1 root root 0 May 8 16:59 crypttab
- -rw-------. 1 root root 0 Aug 9 2019 cron.deny
- -rw-r--r--. 1 root root 1 Oct 31 2018 at.deny
- drwxr-xr-x. 2 root root 6 Apr 11 2018 xinetd.d
- drwxr-xr-x. 2 root root 6 Jun 10 2014 cron.monthly
- lrwxrwxrwx. 1 root root 10 May 8 17:00 rc2.d -> rc.d/rc2.d
- lrwxrwxrwx. 1 root root 10 May 8 17:00 rc0.d -> rc.d/rc0.d
- lrwxrwxrwx. 1 root root 11 May 8 17:00 init.d -> rc.d/init.d
- -rw-r--r--. 1 root root 11 May 8 17:09 hostname
- lrwxrwxrwx. 1 root root 13 May 8 17:01 rc.local -> rc.d/rc.local
- lrwxrwxrwx. 1 root root 14 May 8 16:59 system-release -> centos-release
- -rw-r--r--. 1 root root 16 May 8 17:09 adjtime
 - stat 查看文件状态- [root@CentOS ~]$ stat zyysgdmn
- File: ‘zyysgdmn’
- Size: 88 Blocks: 8 IO Block: 4096 regular file
- Device: fd00h/64768d Inode: 203034404 Links: 1
- Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
- Context: unconfined_u:object_r:admin_home_t:s0
- Access: 2021-07-19 13:22:48.830023994 +0800 (文件被读时间atime)
- Modify: 2021-06-23 16:08:18.839938392 +0800 (内容修改时间mtime,默认)
- Change: 2021-06-23 16:08:18.839938392 +0800 (属性发生更改时间ctime)
- Birth: -
 - [root@CentOS ~]$ chown zhuyuany zyysgdmn (修改文件所有者,相当于修改了文件属性)
- [root@CentOS ~]$ cat zyysgdmn
- [root@CentOS ~]$ nano zyysgdmn
- [root@CentOS ~]$ stat zyysgdmn
- File: ‘zyysgdmn’
- Size: 91 Blocks: 8 IO Block: 4096 regular file
- Device: fd00h/64768d Inode: 203034404 Links: 1
- Access: (0644/-rw-r--r--) Uid: ( 1000/zhuyuany) Gid: ( 0/ root)
- Context: unconfined_u:object_r:admin_home_t:s0
- Access: 2021-07-21 23:33:51.122592703 +0800
- Modify: 2021-07-21 23:35:18.615594250 +0800
- Change: 2021-07-21 23:35:18.615594250 +0800
- Birth: -
 - file 确定文件内容- -b 列出文件辨识结果时,不显示文件名称 
 -f filelist 列出文件filelist中文件名的文件类型
 -F 使用指定分隔符号替换输出文件名后默认的”:”分隔符
 -L 查看对应软链接对应文件的文件类型
 —help 显示命令在线帮助- [root@CentOS ~]$ file zyy (判断文件类型,Linu文件不挑后缀)
- zyy: UTF-8 Unicode text
- [root@CentOS ~]$ rz -E (windows和Linux中的回车和换行不一样)
- rz waiting to receive.
- [root@CentOS ~]$ file zyy-win.txt
- zyy-win.txt: ISO-8859 text, with CRLF line terminators
- [root@CentOS ~]$ hexdump -C zyy (每个字节显示为16进制和相应的ASCII字符)
- 00000000 7a 68 75 79 75 61 6e 79 75 61 6e 20 69 73 20 76 |zhuyuanyuan is v|
- 00000010 65 72 79 20 62 65 61 75 74 69 66 75 6c 0a e5 bd |ery beautiful...|
- 00000020 bc e5 a5 b3 e3 81 af e9 9d 9e e5 b8 b8 e3 81 ab |................|
- 00000030 e7 be 8e e3 81 97 e3 81 84 e3 81 a7 e3 81 99 0a |................|
- 00000040 e6 9c b1 e5 9b ad e5 9b ad e9 9d 9e e5 b8 b8 e6 |................|
- 00000050 bc 82 e4 ba ae 0a 0a |.......|
- 00000057
- [root@CentOS ~]$ hexdump -C zyy-win.txt
- 00000000 7a 68 75 79 75 61 6e 79 75 61 6e 20 69 73 20 76 |zhuyuanyuan is v|
- 00000010 65 72 79 20 62 65 61 75 74 69 66 75 6c 0d 0a b1 |ery beautiful...|
- 00000020 cb c5 ae a4 cf b7 c7 b3 a3 a4 cb c3 c0 a4 b7 a4 |................|
- 00000030 a4 a4 c7 a4 b9 0d 0a d6 ec d4 b0 d4 b0 b7 c7 b3 |................|
- 00000040 a3 c6 af c1 c1 |.....|
- 00000045
- [root@CentOS ~]$ sz zyy (将Linux中的文件拖到windows中可能会乱码无法查看)
- [root@CentOS ~]$ cat zyy-win.txt (将windows中的文件拖到linux中也同样可能会乱码无法查看)
- zhuyuanyuan is very beautiful
- ±̅®¤Ϸdz£¤̃$·¤¤¤Ǥ¹
- ·dz£Ư
- [root@CentOS ~]$ iconv -f gb2312 zyy-win.txt -o zyy-win(转换编码格式:#将windows7上文本默认的编码ANSI(GB2312)转换成UTF-8)
- [root@CentOS ~]$ cat zyy-win
- zhuyuanyuan is very beautiful
- 彼女は非常に美しいです
- 朱园园非常漂亮
- [root@CentOS ~]$ iconv -f utf8 -t gb2312 zyy -o windows2.txt(将UTF-8转换成windows10上文本默认的编码ANSI(GB2312))
- [root@CentOS ~]$ sz windows2.txt
 
- 安装转换工具 - dnf -y install dos2unix
将Windows的文本格式转换成的Linux文本格式:dos2unix win.txt
#将Linux的文本格式转换成Windows的文本格式:unix2dos win.txt
- 转换文件字符集编码
显示支持字符集编码列表:iconv -l
#windows7上文本默认的编码ANSI(GB2312)
文件通配符


(在Linux系统中预定义的字符类:man 7 glob)
[root@localhost ~]$ ls file[[:lower:]]
filea filec filee fileg filei filek filem fileo fileq files fileu filew filey
fileb filed filef fileh filej filel filen filep filer filet filev filex filez
[root@localhost ~]$ ls file[[:upper:]]
fileA fileC fileE fileG fileI fileK fileM fileO fileQ fileS fileU fileW fileY
fileB fileD fileF fileH fileJ fileL fileN fileP fileR fileT fileV fileX fileZ
[root@localhost ~]$ rm -f file*
touch 创建空文件和刷新时间
- 刷新时间
-a     仅改变 atime和ctime
-m     仅改变 mtime和ctime
-t     [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
-c     如果文件不存在,则不予创建
- 创建文件

cp 复制文件和目录
格式:cp [OPTION]... [-T] SOURCE DESTcp [OPTION]... SOURCE... DIRECTORYcp [OPTION]... -t DIRECTORY SOURCE...
-i     如果目标已存在,覆盖前提示是否覆盖
-n   不覆盖,注意两者顺序
-r, -R     递归复制目录及内部的所有内容
-a     归档,相当于-dR —preserv=all,常用于备份功能(-av 备份过程)
-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 只复制源比目标更新文件或目标不存在的文件
-b     目标存在,覆盖前先备份,默认形式为 filename~,只保留最近的一个备份
—backup=numbered     目标存在,覆盖前先备份加数字后缀,形式为filename.~#~,可以保留多个版
练习 
1、将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYYmm-dd,备份过程可见 cp -av /etc/ /data/backupdate +%F`<br />2、创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限<br />cp -a /root /data/rootdir`
mv 移动和重命名文件(格式同cp)
- mv source_file``(文件)`` dest_file``(文件)将源文件名 source_file 改为目标文件名 dest_file
- mv source_file``(文件)`` dest_directory``(目录)将文件 source_file 移动到目标目录 dest_directory 中
- mv source_directory``(目录)`` dest_directory``(目录)目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;不存在则 source_directory 改名为目录名 dest_directory
-i     交互式 (覆盖提醒,系统自带别名alias mv=’mv -i’)
-f     强制 (如果指定移动的源目录或文件与目标的目录或文件同名,不询问直接覆盖)
-b    当目标文件或目录存在时,覆盖前先备份
-n    不要覆盖任何已存在的文件或目录
-u    当源文件比目标文件新或者目标文件不存在时,才执行移动操作
*mv只能一次处理一个文件改名,而利用 rename 可以批量修改文件名
rename [options] ``<expression> <replacement>`` <file>... 
rm 删除文件
rm [OPTION]... FILE...
-i     交互式 (删除前提示,系统自带别名alias rm=’rm -i’)
-f     强制删除,无提示 
-r 或-R    递归 (删文件夹)
—no-preserve-root     强制删除/
- 回车前一定要仔细检查!慎重使用,建议使用mv作为别名代替 rm:
alias rm='DIR=/data/backupdate +%F%T;mkdir $DIR;mv -t $DIR'
- 删除特殊文件(例:将名为 “/data/-f” 的文件删除) - [root@centos8 data]#rm -f -f #此方式错误
- [root@centos8 data]#rm -- -f
- [root@centos8 data]#rm ./-f (绝对路径)
- [root@centos8 data]#rm /data/-f
 
- rm虽然删除了文件,但是被删除的文件仍然可能被恢复,在安全要求较高的场景下,可以使用 - shred安全删除文件
目录操作tree、mkdir、rmdir
- 显示目录树 tree
-d: 只显示目录 
-L level:指定显示的层级数目 
-P pattern: 只显示由指定wild-card pattern匹配到的路径
- 创建目录 mkdir
-p: 存在于不报错,且可递归自动创建所需的各目录 
-v: 显示详细信息 
-m MODE: 创建目录时直接指定权限(没有-m来强制配置属性系统会使用默认属性)
- 删除空目录rmdir
-p 递归删除父空目录 
-v 显示详细信息
#rmdir只能删除空目录,如果想删除非空目录,可以使用rm -r 命令,递归删除目录树
 
 
