学过Linux的人都知道,Linux有很多命令。这里我们讲下一些常用的命令,关于文件、进程、网络三个方面的 Linux 常用命令的相关知识。
文件:Everything is file;
进程:文件的运行形态;
网络:特殊的文件。
文件可以理解为数据,在 Linux 环境下有一个很基本的设计原则,即 Everything is file
,所有的内容都是以文件形式来进行抽象的,比如:进程、网络、硬件等,都可以抽象成文件,可以对其进行打开、读取、写入等操作,所以文件便是我们入门的第一个知识点,文件又可以分为这样几类常见的命令。
在查看目录的列表中,文件权限以 d
开头的表示是一个目录,没有 d
则表示它是一个文件。
ls [查看的目录(默认当前目录)]
ll [查看的目录(默认当前目录)]
或
ls -l [查看的目录(默认当前目录)]
tree 查看的目录(默认当前目录)
通过上述的命令学习,我们可观察到文件打印显示出每个的文件的详细信息,我们看到对应打印的文件详情:
文件权限 drwxr-xr-x、文件归属、文件归属组、文件大小、何时创建、文件<目录>名称
文件权限中的 r
表示 read 可读权限(数字 4 表示);w
表示 write 可写权限(数字 2 表示);x
表示 execute 可执行权限(数字 1 表示);- 表示没有权限。
权限中有三段 rwx
分别表示:第一段为本身的权限(用 u
表示);第二段为本身组内的权限(用 g
表示);第三段为其它组的权限(用 o
表示)。
有些时候我们会遇到需要更改权限,Linux提供了 chmod 命令来进行更改对应文件<目录>的权限。
chmod 权限 文件<目录>名
通过 + 对文件<目录>进行添加权限,- 对文件<目录>进行减少权限。
下面对文件C.txt本身添加可执行权限,组内权限减少可读权限,如下所示:
权限的更改一般只能超级用户root进行操作的。关于 chmod 命令的更多用法,可通过Linux下的man 查看对应的帮助。
man 命令
cd 切换的目录
备注:在Linux中根目录的用 / 表示。
pwd
目录名称与目录名称用空格隔开。表示创建多个目录
mkdir 目录名称 目录名称
mkdir -p 目录/目录 目录/目录
touch 目录/文件名 目录/文件名
rmdir 空的目录 空的目录
rm -r 路径/文件(目录)
该删除多文件(目录)时,每次删除或进入目录都会提示,故而每次都需要输入对应的答复。
rm [-i] 路径/文件 路径/文件 -----> -i 可加可不加(建议加)
-i : 互动模式,每次删除前会询问是否操作
rm [-f] 路径/文件 路径/文件 -----> -i 可加可不加(建议加)
-f : 表示force(强迫)的意思,删除时不会有提示
rm -rf 路径/文件(目录)
cp [options] 文件(目录)
options 不填写时,默认复制文件
-r : 表示持续复制目录
-i :表示目标文件已存在时,覆盖时会先提示。
-f : 表示force(强迫)的意思,覆盖时不会有提示
cp [options] 文件(目录) 改的名字
mv [options] 目标文件(目录) 新的位置(新的名称)
options 可不填写
-f : 表示force(强迫)的意思,覆盖时不会有提示
-i :表示目标文件已存在时,覆盖时会先提示
通过上述的操作之后,我们有些时候会想看看文件里面到底写了什么?
我们可通过以下的方法进行阅读文件内容:
有些时候,只有阅读文件内容往往不能满足我们的需求,现在需要想对文件进行有编辑的能力。可通过以下两种方式进行文件的编辑。
编辑器有三种模式:
# 末行模式的命令如下:
:w -----> 保存
:wq -----> 保存加退出
:q -----> 退出
:q! -----> 强制退出
:n -----> 跳转到第n行
:m,ns/查找的内容/替换的内容/g -----> 查找m行到n行<末行可用$表示>的内容进行替换。g表示强制替换
:w 文件名 ---> 另存为到···
:set nu -----> 文件内容显示对应的行号
# 命令模式的命令如下:
/查找的内容 -----> 查找文件的内容,按n:向下查找,按N:向上查找;
G -----> 跳转到最后一行
gg -----> 跳转到第一行
ngg -----> 跳转到第n行
yy -----> 复制
p -----> 粘贴
一般我们需要查看系统的磁盘空间用了多少?我们可通过df 或 df -h 命令来打印设备上挂载多少个磁盘设备,以及磁盘空间还剩多少可用空间。
以下是我的机器总容量18G,已用3.2G,使用率20%,可用14G。
有些时候我们忘了文件存储在哪或者文件名称只记得关键字时,我们可通过find命令进行对当前目录或指定目录查找并列出所有匹配的文件。
查找当前目录下的文件<目录>名称(模糊查询用*表示)
find 名称
指定目录路径查找(模糊查询用*表示)
find 路径 -name '名称'
下面来学习进程方面的,进程是Linux文件运行的状态。如果一个文件是可执行文件(拥有可执行权限x的文件),系统就需调用CPU去运行对应的操作。下面我们来看看如何查看Linux下当前有多少的进程在运行呢?
我们可通过top
查看系统资源进行查看 或者 通过ps
命令进行查看当前进程。
# 列举出当前用户下的所执行的命令
ps
通过ps -ef 命令列举当前所有进程的状态,可看到用户的 UID、进程的 PID、父进程的 PPID、以及进程开始的时间、运行参数等等信息。
ps -ef
我们还可以通过Linux三剑客之一的grep查找指定的进程。|
表示管道的意思,后面学习的时候再来讲解。
ps -ef | grep 进程名称
下面接着学习另一个命令top,该命令可查看到动态的系统交互的状态信息,其中包括了负载情况、当前用户、启动时间、相关任务树、内存、进程等一些数据,数据下也包含 PID、USER、内存、共享内存,CPU 占比等全部信息。
top
这两个命令很强大,关于这两个命令的详细用法,建议你可以看看命令的帮助文档。
下面我们再来学习下网络方面的命令。比如我们要查看当前系统的所有端口?
# 查看所有的端口
netstat -an
-a:表示监听和不监听的所有端口
-n:表示显示数字地址
我们还可指定查看TCP协议进程的端口。
netstat -tlnp
-t : 表示TCP协议
-l : listen表示开启了对外的链接,负责监听端口
-n :表示不需要远程服务器的名称
-p :表示打印进程
查看本地机器上有多少个链接正在与外部进行通信,属于哪个进程也可以看到。
netstat -tnp
比如这条我的服务器上的SSH连接的一个服务,链接了某个远程的 IP。
如果你觉得文章对你有帮助,请动起你们的小手手点下赞(大拇指)哈(一键三连更好),Thanks♪(・ω・)ノ。