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 ~/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?