熟悉哪些Linux命令?
文件操作:
ls列出目录内容、cd切换目录、pwd显示当前工作目录、cp复制、mv移动或重命名、rm删除、touch创建
cat查看文件内容、head查看文件前几行、tail查看文件后几行,常用与查看日志
文件检索:
-
find /path/to/directory/ -name '.py’:搜索某个文件路径下的所有.py文件
-
grep xxx:从stdin中读入若干行数据,如果某行中包含xxx,则输出该行;否则忽略该行。
-
wc:统计行数、单词数、字节数
- 既可以从stdin中直接读入内容;也可以在命令行参数中传入文件名列表;
- wc -l:统计行数
- wc -w:统计单词数
- wc -c:统计字节数
-
tree:展示当前目录的文件结构
- tree /path/to/directory/:展示某个目录的文件结构
- tree -a:展示隐藏文件
-
ag xxx:搜索当前目录下的所有文件,检索xxx字符串
-
cut:分割一行内容
- 从stdin中读入多行数据
- echo $PATH | cut -d ‘:’ -f 3,5:输出PATH用:分割后第3、5列数据
- echo $PATH | cut -d ‘:’ -f 3-5:输出PATH用:分割后第3-5列数据
- echo $PATH | cut -c 3,5:输出PATH的第3、5个字符
- echo $PATH | cut -c 3-5:输出PATH的第3-5个字符
-
sort:将每行内容按字典序排序
- 可以从stdin中读取多行数据
- 可以从命令行参数中读取文件名列表
-
xargs:将stdin中的数据用空格或回车分割成命令行参、
- find . -name ‘*.py’ | xargs cat | wc -l:统计当前目录下所有python文件的总行数
权限管理:
chmod:修改文件权限
- chmod +x xxx:给xxx添加可执行权限
- chmod -x xxx:去掉xxx的可执行权限
- chmod 777 xxx:将xxx的权限改成777
- chmod 777 xxx -R:递归修改整个文件夹的权限
系统状况:
- top:查看所有进程的信息
- 打开后,输入M:按使用内存排序
- 打开后,输入P,按使用CPU排序
- 打开后,输入q,退出
- df -h:查看硬盘使用情况
- free -h:查看内存使用情况
- du -sh:查看当前目录占用的硬盘空间
- ps aux:查看所有进程
- kill -9 pid:杀死编号为pid的进程
- 传递某个具体的信号:kill -s SIGTERM pid
Linux中如何查看一个进程,如何杀死一个进程,如何查看某个端口有没有被占用?
查看进程:用ps查看当前运行的进程,比如ps aux可以列出所有进程以及其详细信息
杀死进程:首先要用ps或者top找到进程的PID,然后用kill命令加上进程ID来结束进程,比如kill -9 PID,-9是强制杀死进程的信号
查看端口占用:使用netstat -tulnp | grep 端口号,这会显示监听在该端口的服务及其进程ID
说一下select,poll,epoll
select是最早的 I/O 多路复用技术,它可以监视多个文件描述符的可读、可写和错误状态。但受到文件描述符数量和效率方面的限制。
poll克服了文件描述符数量的限制,它使用轮询方式来检查多个文件描述符的状态,避免了select中文件描述符数量有限的问题。但对于大量文件描述符仍然存在一定的效率问题。
epoll是一种高效的I/O多路复用技术,epoll使用事件通知的方式,只有在文件描述符就绪时才会通知应用程序,而不需要应用程序轮询。尤其适用于高并发场景,但它仅在 Linux 平台上可用。
一般来说,epoll 的效率是要比 select 和 poll 高的,但是对于活动连接较多的时候,由于回调函数触发的很频繁,其效率不一定比 select 和 poll 高。所以 epoll 在连接数量很多,但活动连接较小的情况性能体现的比较明显。