Linux入门(2)——系统结构与常用操作命令
1.Linux文件系统结构
FHS(Filesystem Hierarchy Standard):定义了Linux系统中的主要目录及存放的内容,多数Linux发行版都遵循FHS规则。
/ :为顶级目录,整个文件系统的起点,在 / 目录下存在多个二级目录。
/boot :Boot loader文件,如kernels;
/etc :全系统的配置文件;
/lib :/bin/和/sbin中必须的依赖库;
/lib64:64位函数库;
/mnt :临时挂载的文件系统;
/proc :进程和内核信息以文件的形式呈现的虚拟文件系统;
/run :运行时的变量数据,从本次启动到现在的系统信息;
/srv :提供的特定站点的数据。web服务器提供的数据和脚本等;
/tmp :临时文件,通常在重启后清空,并严格控制大小;
/var :各种系统运行时,内容会不断变化的文件,如日志文件等;
/bin:系统常规命令;
/sbin:系统管理命令;
/dev:设备文件;
/home :普通用户家目录集合,此目录中的子目录为普通用户家目录;
/root :超级用户家目录;
/opt :第三方软件安装位置;
/sys:关于内核设定目录;
/usr :unix system resource 多数系统资源都在此目录中;
2.Linux文件寻址
与Windows操作系统寻址方式相同,支持绝对路径寻址与相对路径寻址。
- 绝对路径:通常以/开头,完整描述文件在系统中的位置,在任何场景下都可以使用,不会考虑当前系统位置。
[root@localhost Desktop]# cd /root/Desktop/newdir/
- 相对路径:省略了用户当前所在的系统位置名称,只有在管理当前所在系统目录中子文件时才能使用系统中。不以/开有的文件名称都为相对路径,在程序操作时会自动识别当前路径的信息并关联操作目标。
[redhat@localhost Desktop]$ cd ./Desktop/newdir/
符号 | 含义 |
---|---|
~ | 默认代表当前用户家目录 |
~username | 指定的用户家目录 |
~或 . | 当前目录 |
~- | 当前目录之前所在目录 |
. . | 当前目录的上级目录 |
3.常用文件操作命令
- touch
新建文件、修改文件时间
[redhat@localhost Desktop]$ touch newfile1 newfile2
[redhat@localhost Desktop]$ touch -t 200001010101.01 newfile1 #修改时间戳
- mkdir
(make directory)新建单个目录、新建多层目录
[redhat@localhost Desktop]$ mkdir newdir
[redhat@localhost Desktop]$ mkdir -p newdir1/dir ##当上层目录不存在时 -p 可同时建立多层目录
- rm
(remove)删除文件、目录
[redhat@localhost Desktop]$ rm newfile1 #删除单个文件
[redhat@localhost Desktop]$ rm -f newfile2 #强制删除,不提示
[redhat@localhost Desktop]$ rm -r newdir/ #递归删除目录下所有内容
[redhat@localhost Desktop]$ rm -rf newdir1/#强制递归删除目录下所有内容
- vim
vim 是一个常用的文本编辑器。有命令模式与插入模式,默认进入命令模式浏览文件内容,按Insert进入插入模式编辑文本。按Esc退出插入模式,输入:wq,写入内容并退出。
当编辑文件时未进行保存直接退出vim后,下次打开时会出现错误提示。选择输入不同指令进行下一步操作。
-O只读打开文件
-E继续编辑
-R 恢复未保存内容编辑
-D 删除.swp文件进入编辑
-Q退出当前文件编辑
-A推出vim程序
vim 也支持同时打开多个文件。
[redhat@localhost Desktop]$ vim -o file1 file2 #打开两个文件,垂直分布
同时按Ctrl+W后,按↑/↓切换窗口。
[redhat@localhost Desktop]$ vim -p file1 file2 #打开两个文件,水平分布
输入:tabp或:tabn 切换左右标签
- cat, tac
显示文件的全部内容
[redhat@localhost Desktop]$ cat file #显示文件全部内容
[redhat@localhost Desktop]$ cat -n file #带行号显示文件全部内容
[redhat@localhost Desktop]$ cat -b file #带行号,忽略空行
tac命令用法与cat一致,但输出为逆序,即从下至上显示内容
- head
显示文件前部指定行内容,默认为前10行
[redhat@localhost Desktop]$ head file #显示前10行
[redhat@localhost Desktop]$ head -5 file #显示前5行
- tail
显示文件尾部指定行内容,默认为后10行
[redhat@localhost Desktop]$ tail file #显示后10行
[redhat@localhost Desktop]$ tail -5 file #显示后5行
- less
进入分页浏览
- ↑/↓逐行查看
- PgUp/PgDn逐页查看
- 输入/keyword进行搜索,n/N向下/上匹配
- v进入vim,对文件进行编辑
- q退出
- cp
copy,复制文件或者目录
[redhat@localhost Desktop]$ cp oldfile newfile #复制,建立源文件副本
[redhat@localhost Desktop]$ cp oldfile1 oldfile2 objectdir #复制多个文件到指定目录
[redhat@localhost Desktop]$ cp -r olddir newdir #递归复制源目录下所有内容
- mv
move,移动(重命名)文件或者目录
[redhat@localhost Desktop]$ mv oldfile newfile #重命名文件
[redhat@localhost Desktop]$ mv file1 file2 objectdir #移动多个文件到指定目录
[redhat@localhost Desktop]$ mv dir1 dir2 objectdir #移动多个目录到指定目录
相同设备分区中的文件移动是重命名过程,不同分区的文件移动是建立删除过程,可使用ls -i file查看文件节点号内容
- file
查看文件类型
[redhat@localhost Desktop]$ file filename
- wc
文件容量统计
[redhat@localhost Desktop]$ wc -l filename #行数
[redhat@localhost Desktop]$ wc -m filename #字符数
[redhat@localhost Desktop]$ wc -w filename #单词数
[redhat@localhost Desktop]$ wc -c filename #字节数
4.通配符
字符 | 含义 |
---|---|
* | 匹配0~任意字符 |
? | 匹配单个字符 |
[[:alpha:]] | 匹配单个字母 |
[[:lower:]] | 匹配单个小写字母 |
[[:upper:]] | 匹配单个大写字母 |
[[:digit:]] | 匹配单个数字 |
[[:alnum:]] | 匹配单个数字或字母 |
[[:punct:]] | 匹配单个符号 |
[[:space:]] | 匹配单个空格 |
[x-y] | 匹配x-y中任意单个字符,如a[1-3]b,可为a1b,a3b… |
[!x-y] | 匹配非x-y中任意单个字符,如a[!a-z]b,可为a1b,a2b… |
{string1,string2,…} | 匹配集合中的每一个元素,如string1,string2 |
5.练习
[root@localhost Desktop]# mkdir study /mnt/VERSION CLASS1 CLASS2 SINGLE /DOUBLE
[root@localhost Desktop]# touch study/WESTOS_class{1..2}_linux{1..6} /mnt/VERSION/redhat_version{1..8}
[root@localhost Desktop]# mv /mnt/VERSION/redhat_version{1,3,5,7} SINGLE/
[root@localhost Desktop]# mv /mnt/VERSION/redhat_version{2,4,6,8} /DOUBLE/
[root@localhost Desktop]# mv study/*1_* CLASS1
[root@localhost Desktop]# mv study/*2_* CLASS2
`