我正在参加「掘金·启航计划」
上一篇文章介绍了Linux的基本情况以及vim的使用,今天我们深入学习Linux的一些基本命令,从而在后续大数据的学习中可以游刃有余的使用Linux进行开发。
文件目录类
Linux一切皆文件,所以文件目录类的命令非常重要,必须掌握如何使用,但是这类命令很多,很难记忆,为了方便记忆我将这些命令分为三类:
- 基本命令:pwd ls cd man help history
- 文件或目录的操作命令:mkdir rmdir touch cp mv rm ln
- 查看文件内容命令:cat more less echo head tail
基本命令
pwd
显现当前目录的工作路径,这个命令相对比较常用,一般在我们需要查看我们现在操作的目录时比较常用,还一点就是Linux在现实时不会显示全部路径,只会显示最后一层目录,如下图所示:
这个命令在编写程序时查看目录还是很有用的。
ls
列出目录内容,非常简单常用的命令,在windows中的命令行中也可以使用,需要注意的是它的几个参数:
- -a 显示全部文件,包括隐藏文件
- -l 显示文件的属性和权限
- -al 上面两项内容相加
实际演示一下:
在实际使用时还可以简写ll等价于ls -l
cd
切换目录,这个命令是常用中的常用了,在Linux终端里想要进行操作切换目录是不可避免地,常见使用语法主要有:
- cd 绝对路径 cd /etc/bashrc
- cd 相对路径
- cd ~ 或者 cd 回到家目录
- cd - 回到上一次所在目录
- cd .. 回到上一级目录
- cd -P 跳转到实际物理路径(在软链接时有用)
man和help
帮助命令,这两个命令可以一块记,主要就是显示命令的使用方法。两者主要区别在于:
- help命令用于显示shell内部的帮助信息,并且只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看。
- man命令,既可以帮助查询linux内置命令,也可以查询linux外部命令。
history
显示历史操作,在终端使用的命令都会显示。
文件或目录的操作命令
mkdir 和 rmdir
创建目录和删除目录,注意事项:
- 创建多级目录时,需要使用 -p 选项
- rmdir只能删除空目录
案例实操
touch
创建一个空白文件
rm
删除文件或目录,非常有名的一句话“删库跑路”就是这个命令,程序员要会这个命令,但不能随便用。
选项说明:
- -r 递归删除目录中所有内容
- -f 强制执行删除,而不提示确认
- -v 显示指令的详细执行过程
在实际使用中,最常使用的命令rm -rf。
cp
复制命令,相当于Windows中的复制+粘贴,基本使用就是 cp source dest,如果是文件夹的话还需要加-f选项。
案例实操:
mv
这个命令可以有两个作用:
- 移动文件 mv /home/dssz/swk /root
- 重命名文件 mv dssz dssz1
ln
ln -s 原文件 目标文件,给原文件创建一个软链接存放在目标文件目录,类似于Windows中的快捷方式。
删除原文件后,这个软链接也就无用了,可以使用
rm -rf 软链接名 删除。
查看文件内容命令
cat
cat 文件名,可以显示文件内容
需要行号的话可以加上-n选项
more
more指令是一个基于vi编辑器的文本过滤器,以全屏的方式按页显示文本文件的内容,又叫文件内容分屏查看器。其最强的功能在于内置了许多快捷键,可以方便的查看文件内容。
| 快捷键 | 作用 |
|---|---|
| 空格 | 下一页 |
| enter | 下一行 |
| q | 离开 |
| ctrl + F | 向下滚动一屏 |
| ctrl + B | 向上滚动一屏 |
| = | 输出行号 |
| :f | 输出文件名和当前行号 |
less
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端,能够查看字符串。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
| 快捷键 | 作用 |
|---|---|
| 空格 | 下一页 |
| pagedown | 下一页 |
| pageup | 上一页 |
| /字符串 | 向下搜寻『字串』的功能;n:向下查找;N:向上查找; |
| ?字符串 | 向上搜寻『字串』的功能;n:向上查找;N:向下查找; |
| q | 离开 |
echo
输出内容到控制台
tail
输出文件尾部内容
- tail -n 10 文件 (功能描述:查看文件尾10行内容,10可以是任意行数)
- tail -n 5 文件 (功能描述:查看文件尾5行内容,5可以是任意行数)
- tail -f 文件 (功能描述:实时追踪该档的所有更新)
head
输出文件头部内容
head -n 10 文件 (功能描述:查看文件头10行内容,10可以是任意行数)
时间日期类
这类命令只有两个date和cal,一个显示年月日,一个显示日历,简单了解一下就行。
还有其他具体的参数设置,这里我就不详细介绍了,看下面这张图就行。
用户管理类
Linux是支持多用户的,所谓多用户就是可以有多个用户使用终端登录系统进行操作,这里和后面的文件权限有很大关联,为了确保系统安全,用户可以分为超级管理员用户(root)和普通用户,普通用户权限少,可以避免不懂的小白误操作导致系统出现错误。
- useradd 和 passwd 分别添加用户和为用户设置密码
- userdel 删除用户
- su 切换用户
- id 查看当前用户信息
- who 查看用户登录信息
还需要掌握的是为普通用户赋予更多权限,这里主要通过修改配置文件 /etc/sudoers 第91行
#修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
atguigu ALL=(ALL) ALL
#或者配置成采用sudo命令时,不需要输入密码
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
atguigu ALL=(ALL) NOPASSWD:ALL
文件权限类
Linux系统一切皆文件,文件权限是确保系统安全的重要途经。
文件属性
如果第一次看到这个很多人都会感到懵逼,这都啥啊,别急,我们依次介绍:
- 第一列:inode
- 第二列:文件种类和权限;
- 第三列: 硬链接个数;
- 第四列: 属主;
- 第五列:所归属的组;
- 第六列:文件或目录的大小;
- 第七列和第八列:最后访问或修改时间;
- 第九列:文件名或目录名
第二列文件种类和权限又是什么呢,它在第二列有十位
chmod改变权限
了解文件属性之后,我们就可以着手去尝试修改权限,在Linux中chmod就是这样的功能,我们看一下它的使用方法:
- chmod [{ugoa}{+-=}{rwx}] 文件或目录
- chmod [mode=421 ] [文件或目录]
选项说明:
- u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和) +:新增权限 -:减少权限
- r=4 w=2 x=1 rwx=4+2+1=7
案例实操:对一个文件增加可执行权限
现实比较常用的其实是第二种使用数字的形式,比如设置文件所有者、所属组、其他用户都具有可读可写可执行权限。
搜索查找类
这个类主要就是find和grep 以及通道|。比较重要的是grep和|,find这里我就不多介绍,看下图就行。
grep过滤查找及|管道符
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理,配合grep 可以实现很多操作
- yum list | grep firefox 查找安装包
- rpm -qa | grep firefox | xargs rpm -e 删除浏览器
可以说使用好了管道符,Linux就算入门了。
压缩和解压缩
有三对命令:gzip/gunzip、zip/unzip、tar。 前两种了解即可。
常用的是tar命令 tar [选项] XXX.tar.gz 将要打包进去的内容
选项说明:
- -c 产生.tar打包文件
- -v 显示详细信息
- -f 指定压缩后的文件名
- -z 打包同时压缩
- -x 解压
这里要记住两组常用的压缩解压命令:
- tar -zcvf xxx.tar.gz 内容 和 tar -zxvf xxx.tar.gz
- tar -cvf xxx.tar 内容 和 tar -xvf xxx.tar
磁盘分区类
有三个命令:
- df :df 选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)
- fdisk:fdisk -l (功能描述:查看磁盘分区详情)
- mount/umount:挂载卸载
记住功能即可,在面试时问了解哪些Linux命令,说出这类命令,逼格能提升不少。
进程管理类
ps查看进程
- ps -aux | grep xxx (功能:查看系统所有进程)
- ps -ef | grep xxx (功能:查看子父进程之间的关系)
选项说明:
- -a 所有进程
- -u 所有用户的所有进程
- -x 没有终端的进程
kill
- kill [选项] 进程号 (功能描述:通过进程号杀死进程)
- killall 进程名称 (功能描述:通过进程名称杀死进程)
-9 可以强制终止进程
top
查看系统状态
netstat
显示网络统计信息
netstat -anp (功能描述:此命令用来显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、或是路由表内容) 主要是查看端口。
- -an 按一定顺序排列输出
- -p 表示哪个进程在调用