Linux系统指令

title: Linux系统指令 id: cb6702313f9816912c4807ee5bc76baa tags: [] date: 2000/01/01 00:00:00 updated: 2023/04/10 16:00:31 isPublic: true --#|[分隔]|#--

Linux系统指令

下面是一个github开源项目,Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。

里面gh-pages分支是可以下载后直接双击打开可以使用的页面项目。

项目地址:https://github.com/jaywcjlove/linux-command

作者开放的浏览页面地址:https://wangchujiang.com/linux-command/

which、type 指令信息查看

which:从环境变量 PATH 中查找某个命令,并显示位置

  • a:将所有PATH目录中可以找到的命令均列出,而不仅仅是第一个

  • V:或者v,显示可执行文件的版本信息

type:用来显示指定命令的类型

  • t:显示指令类型

  • p:如果给出的指令为外部指令,则显示其绝对路径

  • a:在环境变量 PATH 指定的路径中,显示给定指令的信息,包括命令别名

不同指令类型的意义:

  • alias:别名

  • keyword:关键字,Shell保留字

  • function:函数,Shell函数

  • builtin:内建(内嵌)命令,Shell内建命令

  • file:文件,磁盘文件,外部命令

  • unfound:未找到

举例

ps 查看某软件或工具的进程

常用指令组合

输入指令说明

  • -e:展示所有进程

  • -f:展示进程的更详细信息

  • |:linux的管道功能,会把|左侧输出的内容,传给|右侧的指令再处理加工

  • grep:linux的过滤指令,这里是过滤nginx

输出说明

  • UID:程序被该 UID 所拥有

  • PID:就是这个程序的 ID

  • PPID:则是其上级父程序的ID

  • C:CPU使用的资源百分比

  • STIME:系统启动时间

  • TTY:登入者的终端机位置

  • TIME:使用掉的CPU时间。

  • CMD:所下达的是什么指令

lsof 查看占用端口的进程们

kill 杀死进程

需要提供要杀死进程的pid

查看所有shell+当前shell+切换 shell

切换完成后,需要退出当前 shell 再重新打开,即可使用刚刚切换的 shell

终端 shell 的配置文件们

以下针对的都是 bash 这个 shell,但很多人平时使用的可能不是它,而是 zsh 或其他的 shell

所以把下面文件的文件名中的 bash 换成对应的 shell 就行,比如 /etc/bashrc 对应 /etc/zshrc

下面最常用的是 ~/.bash_profile 和 ~/.bashrc 两个文件,其他文件可能不同的 shell 会有不同。

  • /etc/profile:系统级,每个用户登录时都会读取。

  • /etc/bashrc:系统级,每个用户打开 bash shell 时,该文件都会被读取。

  • /etc/bash.bash_logout:系统级,每个用户退出登录是读取一次。

  • ~/.bash_profile:用户级,此用户登录系统时,读取一次(常用)。

  • ~/.bashrc:用户级,此用户打开 bash shell 时,该文件都会被读取。

  • ~/.bash_logout:用户级,此用户每次关闭 bash shell 或退出系统时,该文件读取一次。

注意,像系统级别的配置文件,和 ~/.bash_profile 这种只用户登录时才执行一次的配置文件,在用户使用过程中如果修改了这些文件,需要下次执行文件,文件的修改才会被应用。

如果像立即应用,需要在终端中使用 source 指令执行一下,比如修改 ~/.bash_profile 后,在终端执行:

这样一来,就不需要用户重新登录,就能应用修改了。

此外,可以在其他 shell 的某一配置文件中,也可以添加这行代码,去引入其他 shell 的配置文件中的配置,比如:

全局环境变量的目录$PATH

安装的工具 git、node、brew等,我们可以打开终端直接使用,是因为系统设定了一些目录,这些目录下的脚本文件或软链接(快捷方式)都被自动添加到了全局,所以我们才可以在全局使用。

我们安装的那些工具,脚本文件或脚本文件的软链接(快捷方式),就放在系统的指定的那些目录下中的某一个。

这些目录就设置在 $PATH 这个全局变量中,可以在终端中打印这个变量,查看目录:

输出的字符串,使用 : 冒号分隔开,每一段就是一个文件夹,就是我们上面说的目录。

所以我们安装了新的工具,或者自己制作的脚本,想全局使用,有俩个办法。

方法一(推荐):把工具创建一个软链接,放在上面的目录中(一般新安装的工具,会自动添加)。

比如要把 /Users/xiaoming/myBin/set 的这个 set 指令做成全局的,要把他放到 /usr/local/bin 中:

设置完成后,就可以使用 set 这个全局指令了。

方法二:修改 $PATH 这个全局变量,把我们想添加的文件夹添加进去。

这样这个文件夹下的脚本,就变成全局可用的了。

比如我们存放脚本的文件夹是 /Users/xiaoming/myBin,具体操作就是在 shell 启动脚本中,比如 ~/.zshrc 中添加一下一行:

然后在输入以下并回车,让系统重新载入此文件,来使里面的修改生效:

ln 创建文件链接

格式:ln [参数][源文件或目录][即将要生成的链接]

链接分为软链接和硬链接,正常比较常用的是软链接,以下两个场景下很适合使用:

  • 安装软件,把软件指令创建到 bin 目录。

  • 某个文件夹位置比较难找,又经常需要进入。

软链接:

  • 软链接,以路径的形式存在,类似于Windows操作系统中的快捷方式。

  • 软链接可以 跨文件系统 ,硬链接不可以。

  • 软链接可以对一个不存在的文件名进行链接。

  • 软链接可以对目录进行链接。

硬链接:

  • 硬链接,以文件副本的形式存在。但不占用实际空间。

  • 不允许给目录创建硬链接

  • 硬链接只有在同一个文件系统中才能创建

参数
说明
例子:ln [参数] [源文件或目录] [即将要生成的链接]

创建硬链接

ln ~/less /usr/local/bin/less

-s

软链接(符号链接)

ln -s ~/less /usr/local/bin/less

-b

删除,覆盖以前建立的链接

-d

允许超级用户制作目录的硬链接

-f

强制执行

-i

交互模式,文件存在则提示用户是否覆盖

-n

把符号链接视为一般目录

-v

显示详细的处理过程

netstat -ntulp 查看端口占用情况

**Mac系统中执行,需要把 -ntulp 换为 -nat **

alias 给指令设置别名

使用一些封装过的SHELL的都知道,以列表的形式查看文件,指令为ll

但bash环境下使用ll会报错,只能使用ls -l

这时就可以使用Linux的给指令设置别名的功能。

不过这样设置的话,当退出shell再重新打开,上面设置的别名就没有了。

如果想永久生效,需要写入到文件~/.bash_profile中,直接编辑此文件。

建议添加下面两个指令(如果他本来就有,可以修改他的)。

说明

  • -l:列表的形式展示

  • -h:列表中展示文件或文件夹所占空间的值,使用K/M/G的形式

  • -F:如果是文件夹类型,则最后加一个斜杠用来表示

  • -a:展示所有文件,主要包括隐藏文件

  • -A:同-a,但不列出 "." (目前目录) 及 ".." (父目录)

直接使用终端的vim修改的话,可能会出现各种提示各种阻止,无法修改,我的做法是把文件复制到桌面,使用编辑器修改后,再替换回去。

其他一些想要简化的命令,也是这样操作。

shutdown 关机/重启

参数

指令
说明

-t sec

-t 后面加秒数,亦即『过几秒后关机』的意思

-k

不要真的关机,只是发送警告信息出去!

-r

在将系统的服务停掉之后就重新启动(常用)

-h

将系统的服务停掉后,立即关机。 (常用)

-n

不经过 init 程序,直接以 shutdown 的功能来关机

-f

关机并启动之后,强制略过 fsck 的磁盘检查

-F

系统重新启动之后,强制进行 fsck 的磁盘检查

-c

取消已经在进行的 shutdown 命令内容。

例子:

文件内容的宏观处理

  • 清空文件内容

  • 覆盖文件的内容

  • 给文件的追加内容

passwd 修改/设置密码

直接输入,回车。

如果没有设置过密码,会让设置密码,输入两次。

如果已经设置了密码,会让先输入旧密码,再输入两次新密码。

hostname 查看计算机名

查看当前linux是什么系统,ubuntu还是别的

uname 查看内核/操作系统/CPU信息

whoami: 查看当前用户名

find: 查找文件

结构:find <path> -name '<name>'

paht: 查找的路径,查找当前目录下就是.或者./ name: 要查找的文件的名称,支持正则表达式

参数指定层级 -maxdepth

ifconfig: 查看当前设备的ip

id: 查看当前用户信息

打印目录结构

使用 tree 指令,如果当前系统没有这个指令,可以使用系统软件安装工具来安装一下,比如 Mac 的 brew,Ubuntu 的 apt 等等。

或者,可以使用指令,直接打印,但这是使用系统自带命令组装出来的,可能不太美观。

free 查看内存使用情况

top 实时查看系统信息

会全屏实时展示系统情况。

top 的具体参数意义参考:https://blog.csdn.net/qq_31666147/article/details/51557300

查看僵死程序,请阅读本文的 ps 的用法,有查找僵死程序和杀死的命令。

df、du 查看磁盘空间大小

df 和 du 相关命令:

  • df -hl:查看磁盘剩余空间

  • df -h:查看每个根路径的分区大小

  • du -sh [目录名]:返回该目录的大小

  • du -sm [文件夹]:返回该文件夹总M数

  • du -h [目录名]:查看指定文件夹下的所有文件大小(包含子文件夹)

显示内容参数说明:

  • Filesystem:文件系统

  • Size: 分区大小

  • Used: 已使用容量

  • Avail: 还可以使用的容量

  • Use%: 已用百分比

  • Mounted on: 挂载点 

其他非常常用的指令

cd: 进入文件夹

ls: 罗列当前文件夹下所有非隐藏的文件和文件夹名字

参数 -l 和 -h: 以「列表」的形式列出「带K/M/G形式占用的空间大小」详细信息

参数 -al: 以列表的形式,列出包括隐藏文件和文件夹的详细信息

pwd: 显示当前所处的路径

mkdir: 创建文件夹

mv: 移动和重命名

rm: 删除文件和文件夹

date 查看当前系统时区和时间

Last updated

Was this helpful?