Linux与Shell1. Linux常用的命令

Posted lht3347

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux与Shell1. Linux常用的命令相关的知识,希望对你有一定的参考价值。

Linux与Shell

1. Linux常用的命令

学过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 路径/文件(目录)

该删除多文件(目录)时,每次删除或进入目录都会提示,故而每次都需要输入对应的答复。

-r :递归删除!最常用在目录的删除了!与下面的-f 结合是最危险的

删除文件

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 :表示目标文件已存在时,覆盖时会先提示

查看文件的内容

通过上述的操作之后,我们有些时候会想看看文件里面到底写了什么?
我们可通过以下的方法进行阅读文件内容:

  • cat : 该命令可以全文阅读文件内容(内容长时该页内容很长<甚至超出>)和查找文件内容;
  • more:可实现翻页阅读<回车一行/空格一页>,但不够灵活,按q键退出阅读;
  • less:可实现上下滑动及翻页阅读<回车一行/空格一页>,按q键退出阅读;
  • head -n:可实现查看文件的前n行;
  • tail -n:可实现查看文件的后n行;
  • tail -f:实现动态查看文件内容。

有些时候,只有阅读文件内容往往不能满足我们的需求,现在需要想对文件进行有编辑的能力。可通过以下两种方式进行文件的编辑。

  • vi:早期的编辑器;
  • vim:后期的编辑器<可以说是vi的升级版>。

编辑器有三种模式:

  • 命令模式:默认模式,编辑模式下按Esc键退到该模式;
  • 末行模式:以冒号(:)开头;
  • 编辑模式:输入i / a进入此模式。
    这里就不再一一演示每个命令的操作,可参考以下内容自行练习操作。
# 末行模式的命令如下:
: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协议通信端口

我们还可指定查看TCP协议进程的端口。

netstat -tlnp

-t : 表示TCP协议
-l : listen表示开启了对外的链接,负责监听端口
-n :表示不需要远程服务器的名称
-p :表示打印进程

查看与外部连接的通信

查看本地机器上有多少个链接正在与外部进行通信,属于哪个进程也可以看到。

 netstat -tnp 

比如这条我的服务器上的SSH连接的一个服务,链接了某个远程的 IP。

结尾

如果你觉得文章对你有帮助,请动起你们的小手手点下赞(大拇指)哈(一键三连更好),Thanks♪(・ω・)ノ。

以上是关于Linux与Shell1. Linux常用的命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux命令及使用方法

自学Linux Shell1.3-Linux文件系统

Linux系统面试题

Linux的简单命令介绍

Linux 操作基础——shell

Linux 操作基础——shell