数据挖掘工程师并不是一直都在图形化界面中工作,并且随着大数据开源技术的发展,会有更多的任务需要在命令行环境下完成,比如在hadoop环境下进行数据文件的导入导出,在ubuntu环境下进行python库的安装与配置,因此就需要掌握一些基本的、常用的Linux命令。本文针对这一话题进行了总结梳理。
1.目录操作
(1)绝对路径与相对路径
绝对路径:路径的写法一定由根目录”/”写起,比如:/usr/local/lib
相对路径:路径的写法不是由根目录”/”写起,比如:local/lib。这时,这个目录相当于是将当前目录作为“根目录”,如果当前目录变化了,那么这个相对路径就要需要修改。
(2)打印当前目录:pwd
命令格式: pwd
返回当前目录的绝对路径。
(3)切换目录:cd
命令格式: cd 目录名
cd 绝对路径
cd 相对路径
cd . --切换到当前目录
cd .. --切换到上一层目录
cd / --切换到根目录
cd ~ --切换到home目录
(4)创建目录:mkdir
命令格式: mkdir 新目录名(既可以是绝对路径,也可以是相对路径)
-p参数:
mkdir -p 新目录名
-p的作用是,不使用-p参数时,如果要创建的目录所在的上层目录不存在时,就会报错;而使用了-p参数后,就会直接一次性连上层目录都创建了。如下:创建tmp3中的tmp4,其中tmp3之前是不存在的。未使用-p时,提示了tmp3不存在;使用-p时,不提示错了,tmp3、tmp4都会一次性创建。
(5)查看目录内容:ls
命令格式: ls <目录>
直接使用ls命令,查看当前目录下的内容。
使用ls命令+路径,查看指定目录下的内容。
不同的颜色,表示的含义不一样:
白色:普通文件
蓝色:目录
绿色:可执行文件
红色:压缩文件
浅蓝色:链接文件
黄色:设备文件
灰色:其他文件
(6)复制目录:cp -r
cp命令既可用于拷贝文件,又可用于拷贝目录,但是拷贝目录时必须使用-r参数。
命令格式: cp -r 源目录 目标目录
将tmp1下的tmp2目录拷贝到tmp3目录下:
这里,首先将/usr下的6.csv文件复制一份到/usr/tmp1/tmp2中,然后尝试将tmp2目录复制到tmp3中,未加-r参数时,报错,无法拷贝。增加-r参数后,拷贝成功,而且可以看到,是连目录中的文件一起拷贝的。
(7)移动目录:mv
命令格式: mv 源目录 目标目录
移动目录时,会将目录中的文件一起移动。
当目标目录不存在时,就会在移动目录的同时进行重命名操作。
这里,/usr/tmp9是不存在的,所以将tmp4移动过去后,就会同时改名。
当源目录和目标目录在同一父目录下,其实就是对原目录进行了重命名操作。
(8)删除目录:rmdir、rm
命令格式: rmdir 目录名
在/usr中创建一个新目录tmp5,可以使用rmdir直接删除它。
rmdir -p 目录名
在/usr中递归创建一个新目录tmp6/tmp7,使用rmdir删除tmp7时,只会将tmp7删除,保留了其父目录tmp6;如果使用了-p参数,就会将其父目录tmp6一并删除,如例中删除tmp8时。
但是当要删除了目录非空时,比如tmp2中有6.csv文件时,再使用rmdir删除它时就会报错。这时候就需要使用rm命令了。
rm命令既可以用于删除文件,也可以用于删除目录,但是此时必须增加-r参数。
rmdir命令只能用于删除目录。
2.文件操作
(1)复制文件:cp
命令格式: cp 文件名 目录</文件名>
通过cp命令,将一个文件复制到指定位置,可以在指定位置目录后设定文件名称,相当于复制后对该文件进行了重命名操作。
(2)移动文件:mv
命令格式: mv 文件名 目录</文件名>
(3)删除文件:rm
命令格式:rm 文件名
(4)读取并打印文件内容:cat
命令格式: cat 文件名
(5)查看更多文件内容:more、less
当文件内容太多,一屏不能显示完,如果用cat就只能显示最后面的部分,这时候就需要用more或者less了。
more看完一屏后,就可以通过空格(打印下一屏)、或者回车键(打印下一行),可以随时通过q结束浏览模式。
命令格式: more 文件名
less和more的作用一样:分屏浏览长文本内容,但是less比more更方便,可以“回头”打印,即往前看。可以通过上下方向键,向前向后看,空格和回车键和more命令作用一样,使用q随时退出浏览模式。
命令格式: less 文件名
(6)读取前n行:head
命令格式: head <-n> 文件名
默认打印前十行。
使用参数n=3,只打印前三行。
(7)读取后n行:tail
命令格式: tail <-n> 文件名
默认打印后十行。
使用参数n=3,只打印后三行。
(8)搜索文件:find
命令格式: find -name filename --按文件名搜索
可以使用命令或者类型的模糊匹配搜索。
使用-iname参数替换-name,可以忽略大小写。
可以使用-o参数连接多个搜索条件,条件之间是“或”关系。
也可以设定搜索目录,在指定目录下完成搜索。
3.文件属性
(1)简介
使用ls -l命令查看指定目录下的文件的属性信息。这里的“文件”是广义上的文件,包括文件、目录、设备、分区等等。
命令格式: ls -l <目录>
含义解释:
total:该目录下所有文件的大小(单位为KB),是列表中文件属性第五列,文件大小之和,这里的单位是B。
第一列:文件类型和文件权限,共10位。
其中:
第1位:文件类型(d:目录,-:普通文件……)
后9位,每3位为一组,均为rwx三个参数的组合。r——可读,w——可写,x——可执行。
第一个三位,代表文件所属主(user)的权限,第二个三位,代表文件所属组(group)的权限,第三个三位代表其他非所属组用户(others)的权限。
(2)更改所属组:chgrp
命令格式: chgrp 组名 文件名
首先使用groupadd命令增加一个组testgrp,接着使用chgrp将文件5.txt的所属组更改为这个组。
(3)更改所属主:chown
命令格式: chown <-R> 用户名 文件名
首先使用useradd命令增加一个用户testusr,接着使用chown将文件5.txt的所属主更改为这个用户。
当修改目录时,需要注意,使用-R参数,实现级联更改,即不仅修改该目录,还修改这个目录下面的所有子目录或者文件。-R只对修改目录有效。
(4)更改用户操作权限:chmod
命令格式: chmod <-R> 权限值 文件名
为方便权限的修改,将权限用数字表示,r:4,w:2,x:1,-:0,三个权限组的值拼接在一起,比如:上面的rw-r--r--,第一个权限组:rw-等于4+2+0=6,第二个权限组:r--等于4+0+0=4,第三个权限组:r--等于4+0+0=4,所以其权限值为644。
同样,使用-R参数,实现级联更改。
在linux系统中,默认一个目录的权限为 755,而一个文件的默认权限为644。
-rwxrwx---用数字表示就是770,下面我们通过chmod命令将5.txt文件进行权限修改。
4.快捷键
(1)终止当前命令:CTRL+C
用于终止当前命令。
(2)自动补全:TAB
帮你自动补全命令或者目录,如果没有反应,说明系统还无法判断,需要输入更多信息。
(3)退出当前终端:CTRL+D、exit
退出当前终端,关闭窗口。
(4)暂停当前进程:CTRL+Z
暂停当前的进程,使用fg恢复。
(5)清屏:CTRL+L
5.其他命令
(1)查看命令帮助信息:man
命令格式: man 命令名称
用来看一个命令的帮助文档。
(2)文件的打包与压缩:
在linux下最常见的压缩文件通常都是以.tar.gz为结尾的,除此之外还有.tar,.gz, .bz2,.zip等等。
.gz : gzip压缩工具压缩的文件
.bz2: bzip2 压缩工具压缩的文件
.tar : tar打包程序打包的文件(tar并没有压缩功能,只是把一个目录合并成一个文件)
.tar.gz : 可以理解为先用tar打包,然后再gzip压缩
.tar.bz2 : 同上,先用tar打包,然后再bzip2压缩
压缩: gzip 文件名
解压缩: gzip -d 压缩包.gz
注意:gzip不可以压缩目录。
压缩: bzip2 文件名
解压缩: bzip2 -d 压缩包.bz2
打包: tar -cvf 文件名.tar 文件名
解包tar: tar -xvf 压缩包.tar
打包后gzip压缩: tar -czf 文件名.tar.gz 文件名
解压缩tar.gz: tar -xzvf 压缩包.tar.gz
打包后bzip2压缩: tar -cjf 文件名.tar.bz2 文件名
解压缩tar.bz2: tar -xjvf 压缩包.tar.bz2
(3)系统关机与重启:
halt 立刻关机
poweroff 立刻关机
shutdown -h now 立刻关机(root用户使用)
shutdown -h 10 10分钟后自动关机
reboot 立刻重启
shutdown -r now 立刻重启(root用户使用)
shutdown -r 10 10分钟后自动重启(root用户使用)