前言
众所周知,大数据工具(如Hadoop、Storm、Hive、Spark等)都运行在Linux系统上。因此,了解并熟练操作Linux系统是学习大数据的基础步骤。Linux系统的操作与Windows系统的图形化界面不同,主要通过命令行完成。本文将介绍Linux系统中常用的命令,包括文件处理、权限管理、搜索和压缩解压命令。掌握这些命令将为后续大数据工具的学习打下坚实基础。
预备知识—
命名规则
除正斜杠“/”外,几乎所有字符都可以用作命名,但不建议使用空格、制表符、美元符$、@、#、()、*等特殊符号;Linux对字母大小写敏感,即a和A代表不同的对象;避免使用以英文句号“.”开头的名称,因为这些文件在Linux中为隐藏文件;名称应尽量具有意义,例如gender表示与性别相关。
命令格式
命令格式:命令 -选项 参数
例如:ls -la /etc
在命令中,多个选项可以连写(别忘了选项前面的减号);命令中的参数可以是目录、文件、用户、组或执行文件等。
两个特殊目录
一个英文句号“.”表示当前目录,即用户当前所在的路径;
两个英文句号“..”表示当前目录的父目录,即用户当前路径的上一级目录。
文件处理命令—
命令名称:ls
英文含义:list
功能描述:列出指定目录下的所有文件或子目录
语法:ls [-aldh] [文件或目录]
选项:
无选项:列出目录内所有文件名称
-a:(all)显示所有文件,包括隐藏文件
-l:(long)以长序列形式显示详细信息
-d:(directory)查看目录属性
-h:(human-readable)以Kb、Mb或GB显示文件大小(更人性化)
示例:
如上图所示,使用-l选项,列出了根目录/下所有文件和子目录的内容,并以长序列形式呈现。在图中,圈出了6个红框,分别代表不同的含义:
dr-xr-xr-x:包含两类信息,首字符表示文件类型(d为目录,l为软链接,-为二进制文件);其余表示所有者、所属组和其他用户的权限,每类用户的权限占三个字符,分别为rwx(r为可读,w为可写,x为可执行,无权限用-表示)。
5:表示文件的硬链接数,硬链接将在后文中详细介绍。
root root:分别表示文件的所有者和所属组,这里root既是所有者也是所属组。
12288:表示文件大小,单位为字节(例如1024字节为1K)。
9月 23 2011:表示文件的创建或修改时间。
Learn:表示文件名称。
命令名称:cd
英文含义:change directory
功能描述:切换目录,借助cd命令,可以切换到任意有效目录
语法:cd 目标目录
特殊用法:cd或cd ~,返回当前用户的主目录,如root用户返回/root目录,其他普通用户返回各自的家目录,如snake用户返回/home/snake目录。
示例:
命令名称:pwd
英文含义:print working directory
功能描述:打印当前工作目录
语法:pwd
命令名称:touch
英文含义:touch
功能描述:创建新的空文件,类似于在Windows中新建文件(如txt、Word、Excel文件)
语法:touch 文件名称
示例:
命令名称:mkdir
英文含义:make directory
功能描述:创建新目录,类似于在Windows中新建文件夹
语法:mkdir 目录名称
示例:
命令名称:cp
英文含义:copy
功能描述:复制目录或文件
语法:cp -R [源目录或文件] [目标目录]
选项:
-R:(recursive)递归复制目录(包括子目录)
-f:(force)提示是否强制覆盖(如果目标目录中有同名文件,通过-f选项进行覆盖前的提示)
-n:(no overwrite)不覆盖目标目录中的同名文件
示例:
如图所示,第一个框为两个目录内的test1文件(注意文件的创建时间);第二个框为复制命令;第三个框为复制并强制覆盖后的状态(被覆盖文件的时间已改变)。
命令名称:mv
英文含义:move
功能描述:移动或重命名目录与文件
语法:mv [源目录或文件] [目标目录]
示例:
移动
重命名
命令名称:rm
英文含义:remove
功能描述:删除文件或目录
语法:rm -r [目录或文件]
选项:
-r:(recursive)递归删除(删除非空目录需使用-r选项,否则无法删除)
-f:(force)强制删除(无需提示,直接删除)
示例:
删除文件,并发出提示信息
删除非空目录
命令名称:cat
英文含义:concatenate and display files
功能描述:一次性查看文件的所有内容,适用于小文件,大文件推荐使用more或less命令
语法:cat –[nb] 文件名称
选项:
-n:(number)显示行号(包括空行)
-b:(blank)显示行号(不包括空行)
示例:
命令名称:more
英文含义:more
功能描述:分页显示文件内容
语法:more [-num]文件名称
选项:
-num:每屏显示的行数,如-20,表示每屏显示20行数据
示例:
进入查看状态,利用键盘操作文件内容:
空格:显示下一屏
b:回滚上一屏
Enter:显示下一行
q:退出查看状态
命令名称:less
英文含义:less
功能描述:分页显示文件内容,该命令功能比more更强大,支持上下翻页和搜索功能
语法:less[-mN] 文件名称
选项:
-m:显示已呈现内容的百分比(类似于more)
-N:显示行号
示例:
进入查看状态,利用键盘操作文件内容:
空格:显示下一屏
b:回滚上一屏
Enter:显示下一行
y:显示上一行
d:向下翻半屏
u:向上翻半屏
/目标字符串:向下搜索目标子串
?目标字符串:向上搜索目标子串
q:退出查看状态
示例:
向下搜索iPhone,使用/iPhone方法
命令名称:ln
英文含义:link
功能描述:创建软链接文件(类似于Windows中的快捷方式)或硬链接文件
语法:ln [-s] [源文件] [目标文件]
选项:
-s:创建软链接
无选项:创建硬链接
示例:
通过ln命令也可以创建硬链接(无需-s选项),硬链接类似于源文件的拷贝,但具有同步更新功能,相当于实时备份。然而,硬链接不能跨文件系统(文件系统即分区,如安装Linux时,分了根分区/、引导分区/boot和SWAP分区)。
示例:
如图所示,在原始文件中修改内容会影响硬链接的内容,因此具有实时备份功能。
结语—
关于文件级的常用命令就介绍到这里,如果您有任何问题,欢迎在公众号的留言区提问。同时,欢迎大家继续转发和分享文中的内容,让更多人学习和进步。