熟悉Linux的大家都知道,在Linux中,一切皆文件,可能在有些人的理解中,Linux跟我们的Windows差不多,是都具有图形操作界面的一种操作系统,但是更深入的来说,Linux更偏向于用命令操作文件从而达到操作系统的目的,那么文件对于Linux来说就是非常关键的了,今天就来同大家分享一下我在Linux的学习过程中,文件跟目录的一些相关如下:
首先,要学会Linux就要明白它的文件系统是个什么东西,在这里我给大家简单的用一张图片来说明一下:
其中“/”为Linux文件系统的头层,我们称它为“根”。
文件跟目录是相关的,我们简单的了解一下目录相关的操作,再详细介绍关于Linux文件
Linux中,常规的目录操作需要我们知道这么几点:
关于文件相对于目录的路径我们大致将其分为绝对路径和相对路径,绝对路径就是指不考虑你当前的位置,从“/”到达目标文件需要经过的文件系统目录树的所有分支 1 /home/hello/docs/share 例如这个路径,就是绝对路径;那么相对路径呢,它恰恰是另一种情况
1 [root@localhost ~]# cd /etc/httpd 2 [root@localhost httpd]# cd ./conf 3 [root@localhost zhangsan]# ls -dl ../hello 4 drwx------ 2 hello hello 4096 09-14 21:50 ../hello
以上这三个路径就是相对路径了。
关于Linux的命令提示符我顺便说一下: [ 登录用户@主机名 工作目录 ];
以及Linux命令行的通用格式: 命令字 [选项] [参数];
其中各个选项及参数的含义:选项:用于调节命令的具体功能
以 “-”引导短格式选项(单个字符),例如“-l”
以“--”引导长格式选项(多个字符),例如“--all”
多个短格式选项可以写在一起,只用一个“-”引导,例如“-al”
参数:命令操作的对象,如文件、目录名等
那么,Linux命令是用来干什么的呢?
Linux命令
用于实现某一类功能的指令或程序
命令的执行依赖于解释器程序(例如:/bin/bash)
Linux命令的分类
内部命令:属于Shell解释器的一部分
外部命令:独立于Shell解释器之外的程序文件
命令行编辑的几个辅助操作
Tab键:自动补齐
快捷键 Ctrl+C:终止当前进程
快捷键 Ctrl+D: 输入结束
快捷键 Ctrl+Z : 挂起程序
快捷键 Ctrl+L:清屏,相当于clear命令
快捷键 Ctrl+K:删除从光标到行末所有字符
快捷键 Ctrl+U:删除从光标处到行首的字符
快捷键 Ctrl+S:锁屏
快捷键 Ctrl+Q:解锁
快捷键Ctrl+A 快速将光标移动到命令行首
快捷键Ctrl+E 快速将光标移动到命令行尾
快捷键Ctrl+R 查找历史命令
快捷键history 查看历史命令
那么接下来就说一下关于目录的一些常规操作:
pwd命令
用途:查看工作目录(Print Working Directory)
cd命令
用途:切换工作目录(Change Directory)
格式:cd [目录位置]
特殊目录
. 当前目录
.. 上一级目录
~ 用户主目录
- 上个工作目录
ls命令
用途:列表(List)显示目录内容
格式:ls [选项]... [目录或文件名]
mkdir命令
用途:创建新的目录(Make Directory)
格式:mkdir [-p] [/路径/]目录名
rmdir命令
用途:删除空的目录(Remove Directory)
mkdir命令
用途:创建新的目录(Make Directory)
格式:mkdir [-p] [/路径/]目录名
rmdir命令
用途:删除空的目录(Remove Directory)
1 [root@localhost ~]# mkdir -p mydir/level1/level2 2 [root@localhost ~]# ls -R mydir 3 mydir: 4 level1 5 mydir/level1: 6 level2 7 mydir/level1/level2:
du命令
用途:统计目录及文件的空间占用情况(estimate file space usage)
格式:du [选项]... [目录或文件名]
常用命令选项
-a:统计时包括所有的文件,而不仅仅只统计目录
-h:以更易读的字节单位(K、M等)显示信息
-s:只统计每个参数所占用空间总的大小
[root@localhost ~]# du -sh /etc/httpd/ 184K /etc/httpd/
touch命令
用途:新建空文件,或更新文件时间标记
格式:touch 文件名…
1 [root@localhost ~]# touch file1.txt file2.doc 2 [root@localhost ~]# touch -ad 10:35 file1.txt 3 [root@localhost ~]# touch -md 11:25 file2.doc 4 [root@localhost ~]# touch -r file2.doc file1.txt
cp命令
用途:复制(Copy)文件或目录
格式:cp [选项]... 源文件或目录… 目标文件或目录
-r:递归复制整个目录树
-a: 复制时保留链接、文件属性,并递归地复制目录
mv命令
用途:移动(Move)文件或目录
—— 若如果目标位置与源位置相同,则相当于改名
格式:mv [选项]... 源文件或目录… 目标文件或目录
file命令
用途:查看文件类型
格式: file 文件名…
1 [root@localhost ~]# file /bin/ls 2 /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for …… 3 [root@localhost ~]# file /etc/passwd 4 /etc/passwd: ASCII text 5 [root@localhost ~]# file /dev/cdrom 6 /dev/cdrom: symbolic link to `hdc'
rm命令
用途:删除(Remove)文件或目录
格式:rm [选项]... 文件或目录
-f:强行删除文件或目录,不进行提醒
-r:递归删除整个目录树
注意:rm -rf 不要轻易使用,它会强行删除文件或者目录
at命令
用途:显示出文件的全部内容
格式:cat -n 文件名
tac命令
用途:从最后一行倒着显示出文件的全部内容
1 [root@localhost ~]# cat /etc/aaa 2 11111111111111111111 3 222222222222222222 4 [root@localhost ~]# tac /etc/aaa 5 222222222222222222 6 11111111111111111111
more命令
用途:全屏方式分页显示文件内容
交互操作方法:
按Enter键向下逐行滚动
按空格键向下翻一屏、按b键向上翻一屏
按q键退出
less命令
用途:与more命令相同,但扩展功能更多
交互操作方法:
与more命令基本类似,但个别操作会有些出入
【page down】【page up】上翻下翻页
head命令
用途:查看文件开头的一部分内容(默认为10行)
格式:head -n 文件名
tail命令
用途:查看文件结尾的少部分内容(默认为10行)
格式:tail -n 文件名 tail -f 文件名
1 [root@localhost ~]# tail -2 /var/log/messages 2 Sep 8 15:49:29 localhost scim-bridge: Cleanup, done. Exitting... 3 Sep 8 15:49:29 localhost Cleanup, done. Exitting...
tail命令高级用法
格式:tail -n 数字 文件名
数字:数字前有 +(加号),从文件开头指定的单元 数开始输出;数字前有 -(减号),从文件末尾指定的单元 数开始输出;没有 +或 -,从文件末尾指定的单元 数开始输出。
例如:
tail -n +3 /etc/passwd 从第三行开始显示
tail -n -3 /etc/passwd 显示最后三行
head -n -3 /etc/passwd 不显示最后三行
head -n +3 /etc/passwd 显示前三行
which命令
用途:查找可执行文件并显示所在的位置
—— 搜索范围由 PATH 环境变量指定
格式:which 命令或程序名
1 [root@localhost ~]# which mkdir 2 /bin/mkdir 3 [root@localhost ~]# echo $PATH 4 /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 5 [root@localhost ~]# which cd 6 /usr/bin/which: no cd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
whereis命令
用途:查找文件的路径、该文件的帮助文件路径,原理和which类似
格式:whereis 命令或程序名
1 [root@localhost ~]# whereis which 2 which: /usr/bin/which /usr/share/man/man1/which.1.gz 3 [root@localhost ~]# touch sxkj 4 [root@localhost ~]# whereis sxkj 5 sxkj: 6 [root@localhost ~]# mv sxkj /usr/bin 7 [root@localhost ~]# whereis sxkj 8 sxkj: /usr/bin/sxkj
find命令
用途:用于查找文件或目录
格式:find [查找范围] [查找条件] [动作]
常用查找条件
-name:按文件名称查找
-size: 按文件大小查找
-user: 按文件属主查找
-type: 按文件类型查找
-perm :按文件权限查找
-mtime :按文件更改时间查找
-newer:按比某个文件更新的查找
find命令
格式:find [查找范围] [查找条件] [动作]
特殊查找条件
-o :逻辑或,只要所给的条件中有一个满足,寻找条件就算满足
-not :逻辑非,在命令中可用“!”表示。该运算符表示查找不满足所给条件的文件
-a:逻辑与,系统默认是与,可不加,表示只有当所给的条件都满足时,寻找条件才算满足。
find命令
格式:find /usr -mtime +/-数字
数字:数字前有 +(加号),大于数字的天数;数字前有 -(减号),小于数字的天数;没有 +或 -,等于数字的天数。
例如:
find /usr -mtime 4 表示4天前那一天
find /usr -mtime -4 表示4天内
find /usr -mtime +4 表示4天前
这里用一张图表示一下,便于理解:
gzip命令
用途:制作压缩文件、解开压缩文件
格式:gzip [-9] 文件名...
gzip -d .gz格式的压缩文件
常用命令选项
-9:表示高压缩比,取值1-9,默认为6
-d:用于解压缩文件,同gunzip命令
-c:将输出重定向到标准输出
zcat命令
用途:查看压缩文件内容
格式:zcat 压缩文件名
bzip2命令
用途:制作压缩文件、解开压缩文件
格式:bzip2 [-9] 文件名...
bzip2 -d .bz2格式的压缩文件
常用命令选项
-9:表示高压缩比,取值1-9,默认为6
-d:用于解压缩文件,同bunzip2命令
-c:将输出重定向到标准输出
bzcat命令
用途:查看压缩文件内容
格式:bzcat 压缩文件名
tar命令
用途:制作归档文件、释放归档文件
格式:tar [选项]... 归档文件名 源文件或目录
tar [选项]... 归档文件名 [-C 目标目录]
常用命令选项
-c:创建 .tar 格式的包文件
-x:解开.tar格式的包文件
-v:输出详细信息
-f:表示使用归档文件
-t:列表查看包内的文件
-p:保持原文件的原来属性
-P:保持原文件的绝对路径
绝对路径和相对路径
目录操作命令
pwd、cd、ls、mkdir、du
文件操作命令
touch、file、cp、rm、mv、ln
查找命令
which、whereis、locate、find
文件内容操作命令
cat、more、less、head、tail
归档及压缩命令
zip、gzip、bzip2、zcat、bzat、tar
好啦,今天就跟大家分享到这里,我会在后续的学习过程中继续跟大家分享我的收获!