Linux下有非常多的命令,我们可以通过这些命令在shell环境下与机器进行交互。
Linux下的所有资源可分为三大类型:
文件:Everthing is file
进程:文件的运行形态
网络:特殊的文件
一. 文件
文件可以理解为数据,所有的内容都是以文件的形式进行抽象的,比如进程、网络、硬件等,都可以抽象成文件,可以对其进行打开、读取、写入等操作。文件有以下几类常见命令。
1. 磁盘与目录
1 #切换目录 2 cd workspace 3 #获取当前目录所在路径 4 pwd
使用cd可以切换目录,使用pwd可获取当前目录所在路径。
1 # 显示打印设备挂载了多少个磁盘设备,以及磁盘里还有多少可用空间 2 df -h 3 # 打印当前目录下的所有文件和目录 4 ls
其中,ls有个参数 -l,可以打印出每个文件的基本信息,如文件权限、文件归属、文件大小等
2. 文件阅读和编辑
三种阅读文件的方法
1 # 阅读文件并查找文件内容,缺点是一页内容很长 2 cat 3 # 可翻页阅读,缺点是不够灵活 4 more 5 # 可翻页阅读,能上下左右移动,最强大 6 less
但只有阅读文件是不够的,我们需要有对文件进行编辑的能力。可通过vi或vim进行编辑。
1 vi test.txt 2 vim test.txt
3. 文件权限
chmod +x 文件名
r——4
w——2
x——1
例如:
rw- 的值为4+2=6,chmod 666 test.txt
rwx 的值为4+2+1=7,chmod 755 test.txt
二. 进程
进程是一个文件的运行形态。那么用什么命令可以查看当前有多少个进程呢?
通常我们使用ps和top命令查看当前进程。
ps x
top
当执行top后,能看到动态的交互界面上显示了整个机器的状态,包括负载情况、当前用户、启动时间、相关的任务树,以及内存、进程的一些数据,也包含PID、USER、内存、共享内存、CPU占比等全部信息。
三. 网络
当文件加载到CPU中被执行的过程中就变成了一个进程,有的时候进程之间需要通信,这个时候就会开启一个socket,socket就是对外建立连接的一个窗口,然后借助TCP协议进行通信。但进行通信之前需要进程开启一个端口,那如何查看本地开启了多少端口?这些端口又是由哪些进程开启的呢?
1 netstat -tlnp
-t指的是TCP协议,-l(listen)指哪几个进程开启了对外的链接负责监听端口,-n指不需要解析远程服务器的名字以加快运行速度,-p指打印进程。