Linux常用基本命令
Shell 可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面。它接收用户输入的命令并把它送入内核去执行。
1、帮助命令
1.1内建命令与外部命令
一部分基础功能的系统命令是直接内嵌在 shell 中的,系统加载启动之后会随着 shell 一起加载,常驻系统内存中。这部分命令被称为“内置(built-in)命令”;相应的其它命令 被称为“外部命令”
1.2 man命令
1)man基本语法
man [命令或配置文件] (获得帮助信息)
得到的内容比用 help 更多更详细,而且 man 没有内建与外部命令的区分。
2)显示说明
1.3 help命令
1)基本语法
help 命令(获得 shell 内置命令的帮助)
2)说明
用于显示 shell 内建命令的简要帮助信息。帮助信息中显示有该命令的简要说明以及一些参数的使用以及说明。一定要是内建命令,不然会出错误。
2、文件目录
-
pwd 显示当前目录的绝对路径;
-
exit:退出当前的shell。
-
cd 切换路径,cd .. 回到当前目录的上一级目录;
-
ls 列出目录的内容,ls -a 全部的文件,连同隐藏档,ls -l 等同于ll 文件的全部详细信息;
-
mkdir 文件夹名称 :创建一个新的文件夹,mkdir -p a/b/c :创建多层文件夹;
-
rmdir 要删除的空文件夹 :删除空文件夹;
-
touch 文件名称 :创建空文件;
-
cp e a/ 复制文件或目录 ,把e复制到a文件夹下(复制到文件就是覆盖文件内容,强制覆盖不提示的方法:\cp)
cp -r a/ r/ :递归复制整个文件夹(把a文件夹及其所有子文件夹和文件复制到r文件夹下);
-
rm 要删除的名称 :删除文件,rm -rf:删除目录下所有文件和文件夹,rm -r:递归删除文件夹中所有的内容。rm -f:强制执行删除操作,不提示用于进行确认。rm -v:显示指令的详细执行过程,(非专业人士谨慎操作-牢底坐穿:rm -rf/*);
-
mv u c/ :移动文件或文件夹,把u移动到c文件夹下;
mv hello word :把hello 名称改为word;
-
cat 文件名 :查看文件内容(直接打印出来),cat -n 要查看的文件名:显示行号的查看文件内容(直接打印出来);
-
more 文件名:文件内容分屏查看器(基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件 的内容);
-
less 文件名:分屏显示文件内容(比 more 指令更加 强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后 才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。);
-
echo 输出内容:输出内容到控制台;
-
ls > p:> 输出重定向和 ,功能描述:列表的内容写入文件(没有则自动创建)中(覆盖写)
-
ls >> farme/k : >> 追加 ,列表的内容追加到文件的末尾;
-
echo “内容” >> 文件名:用echo将内容追加到文件中;
-
head 文件名 :查看文件头10行内容,head -n3:查看文件前3行内容,可以是任意行数;
-
tail 文件名:查看文件尾10行内容,head -n3:查看文件尾3行内容,可以是任意行数;
-
tail -f 文件名:实时追踪该文件的所有更新(ctrl+c退出监控,ctrl+暂停监控,ctrl+q继续);
-
ln -s 原文件或目录 软链接名:给原文件创建一个软链接,软链接也称为符号链接,类似于 windows 里的快捷方式,有自己的数据块,主要存放 了链接其他文件的路径。
-
rm -rf 软链接名 :删除软链接,而不是 rm -rf 软链接,如果使用 rm -rf 软链接名/ 删除,会把软链接对应的真实目录下内容删掉;
-
history :查看已经执行过历史命令,history 3:显示最近的3条历史命令,history -c:清除历史命令,输入history后继续输入!历史记录行号 :可以调用指令;
3、时间日期
-
date:显示当前时间;
-
date +%Y :显示当前年份 ,date +%m :显示当前月份,date +%d :显示当前是哪一天 ,date "+%Y-%m-%d %H:%M:%S" :显示年月日时分秒。
-
date -d '1 days ago' :显示前一天时间,date -d '-1 days ago' :显示明天时间;
-
date -s "2001-12-08 08:08:08":设置系统时间为2001-12-08 08:08:08;
-
cal : 显示本月日历,cal 2001:显示2001年的日历,cal -3:显示前后三个月的日历;
4、用户管理
-
useradd 用户名:添加新用户,useradd -g 组名 用户名:添加新用户到某个组;
-
passwd用户名 :设置用户密码;
-
id 用户名:查看用户是否存在;
-
cat /etc/passwd:查看创建了哪些用户(cat:打印,less:分屏浏览);
-
who am i :显示登录用户的用户名以及登陆时间;
-
su 用户名称 :切换用户,只能获得用户的执行权限,不能获得环境变量;
-
su - 用户名称 :切换到用户并获得该用户的环境变量及执行权限;
-
sudo 设置普通用户具有root权限:
-
在root用户下修改配置文件:vim /etc/sudoers
-
大概91行,在root下面复制一行,将需要增加root权限的用户名替换一下;
-
:wq!强制保存退出;
-
-
userdel 用户名 :删除用户但保存用户主目录,userdel -r 用户名 :用户和用户主目录,都删除;
-
usermod -g 用户组 用户名:修改用户的初始登录组,给定的组必须存在。默认组 id 是 1;
-
cat /etc/group :查看创建了哪些组;
-
groupadd 组名:新增组;
-
groupdel 组名:删除组;
-
groupmod -n 新组名 旧组名:修改组名;
5、文件权限
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。 为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做 了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属 的用户和组
1.从左到右的 10 个字符:
如果没有权限,就会出现减号- 而已(跟第一个字符没关系)。
2. 从左至右用0-9这些数字来表示:
- 0 首位表示类型:- 是普通文件,d 是目录,l 链接文档(link file),p是管理文件,b是块设备(硬盘),
- 1-3位确定属主(该文件的所有者)拥有该文件的权限;--User
- 4-6位确定属组(所有者的同组用户)拥有该文件的权限;--Group
- 7-9位确定其他用户拥有该文件的权限;--Other
3. rwx 作用文件和目录的不同解释:
- rwx作用到文件
- r代表可读(read):可以读取,查看
- w代表可写(write):可以修改,但不是代表可以删除文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
- x代表可执行(execute):可以被系统执行
- rwx作用到目录
- r代表可读(read):可以读取,ls查看目录内容
- w代表可写(write):可以修改,对目录内创建+删除+重命名目录
- x代表可执行(execute):可以进入该目录
4. 文件基本属性介绍
5. 修改权限
-
+、-、= 变更权限。
语法:chmod [{ugoa}{+-=}{rwx}] 文件或目录
u, g, o 来代表三种身份的权限,a表示所有人(u、g、o 的总和),+(加入)、-(除去)、=(设定);
chmod u+w p:表示把p文件的属主权限增加了读取;
-
通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7 三个权限(r/w/x)分数是需要累加的;
6. 修改所有者
一般文件的创建者,谁创建了该文件,就自然的成为该目录的所有者;
ls -ahl:查看文件的所有者;
chown 用户名 文件名:修改文件所有者;
chown [选项] [最终用户] [文件或目录] :修改文件或者目录的所有者;
chown -R langang p :递归修改文件所有者(所有子文件和子目录修改);
7. 修改所属组
chgrp [最终用户组] [文件或目录]:修改文件或目录的所属组;
6、搜索查找
1.find [搜索范围] [选项]
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
-
-name<查询方式>:按照指定的文件名查找模式查找文件;(find test/ -name "*.txt":查找后缀名);
-
-user<用户名>:查找属于指定用户名所有文件;
-
-size<文件大小>:按照指定的文件大小查找文件,单位为:
b —— 块(512 字节)
c —— 字节
w —— 字(2 字节)
k —— 千字节
M —— 兆字节
G —— 吉字节;
find home/ -size +1M :在home目录下查找大于1M的文件,(+n 大于,-n小于,n等于);
2.locate 搜索文件( 快速定位文件路径)
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创 建 locate 数据库。
3.which 命令
搜索某个系统命令的位置,并且返回第一个搜索结果。
4.grep 选项 查找内容 源文件
文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查,打印匹配到的行.
-n:显示匹配行及行号。grep -n hello ts1:在ts1文件里查找hello字符,显示行号的打印出来;
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
7、压缩和解压
1.gzip/gunzip压缩
gzip 文件 :压缩文件,只能将文件压缩为*.gz 文件,
gunzip 文件.gz :解压缩文件命令
!只能压缩文件不能压缩目录,不保留原来的文件,同时多个文件会产生多个压缩包;
2.zip/unzip 压缩
zip [选项] 名字.zip 将要压缩的内容 :压缩文件和目录的命令。
unzip [选项] 名字.zip :解压缩文件。
选项:zip -r 压缩后名称 要压缩的文件或目录:压缩目录。
unzip<压缩文件> -d 存放目录<目录>:指定解压后文件的存放目录。
! zip 压缩命令在windows/linux都通用,可以压缩目录且保留源文件。
3.tar打包
tar [选项] 名称.tar.gz 将要打包进去的内容:打包目录,压缩后的 文件格式.tar.gz
选项:-c: 产生.tar 打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩
-x:解包.tar 文件
-C:解压到指定目录
8、磁盘查看和分区
1.tree
tree命令用于以树状图列出目录的内容。
执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。
安装命令:yum install tree;
2.du 查看文件和目录占用的磁盘空间
du 目录/文件 :显示目录下每个子目录的磁盘使用情况;
du -h:以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
du -a:不仅查看子目录大小,还要包括文件;
du -c: 显示所有的文件和子目录大小后,显示总和;
du -s :只显示总和;
du--max-depth=n 指定统计子目录的深度为第 n 层;
3.df 查看磁盘空间使用情况
df :列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况
df -h:以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
4.lsblk 查看设备挂载情况
lsblk :查看设备挂载情况;
lsblk -f:查看详细的设备挂载情况,显示文件系统信息;
5.mount/umount 挂载/卸载
mount [-t vfstype] [-o options] device dir :挂载设备
umount 设备文件名或挂载点 :卸载设备
选项:
-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。
常用类型有: 光盘或光盘镜像:iso9660 DOS fat16 文件系统:msdos
Windows 9x fat32 文件系统:vfat
Windows NT ntfs 文件系统:ntfs
Mount Windows 文件网络共享:smbfs
UNIX(LINUX) 文件网络共享:nfs
-o options 主要用来描述设备或档案的挂接方式。常用的参数有: loop:用来把一个文件当成硬盘分区挂接上系统;ro:采用只读方式挂接设备 rw:采用读写方式挂接设备; iocharset:指定访问文件系统所用字符;
device 要挂接(mount)的设备;
dir 设备在系统上的挂接点(mount point);
6.fdisk 分区(该功能必须在root用户下进行)
fdisk -l :查看磁盘分区详情
fdisk 硬盘设备名 :对新增硬盘进行分区操作
功能说明:
- Linux 分区
- Device : 分区序列
- Boot:引导
- Start:从X磁柱开始
- End:到Y磁柱结束
- Blocks:容量
- Id:分区类型ID
- System:分区类型
- 分区操作按键说明
- m:显示命令列表
- p:显示当前磁盘分区
- n:新增分区
- w:写入分区信息并退出
- q:不保存分区信息直接退出
9、进程管理
计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。
启动之后一只存在、常驻内存的进程,一般被称作“服务”(service)。
1.ps 查看当前系统进程状态
ps aux :查看系统中所有进程
ps a :列出带有终端的所有用户的进程
ps x: 列出当前用户的所有进程,包括没有终端的进程
ps u: 面向用户友好的显示风格
ps -e: 列出所有进程
ps -u:列出某个用户关联的所有进程
ps -f :显示完整格式的进程列表
功能说明:
- ps aux 显示信息说明
- USER:该进程是由哪个用户产生的
- PID:进程的 ID 号
- %CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源;
- %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
- VSZ:该进程占用虚拟内存的大小,单位 KB;
- RSS:该进程占用实际物理内存的大小,单位 KB;
- TTY:该进程是在哪个终端中运行的。对于 CentOS 来说,tty1 是图形化终端,tty2-tty6 是本地的字符界面终端。pts/0-255 代表虚拟终端。
- STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、 Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示
- START:该进程的启动时间
- TIME:该进程占用 CPU 的运算时间,注意不是系统时间
- COMMAND:产生此进程的命令名
- ps -ef 显示信息说明
- UID:用户 ID
- PID:进程 ID
- PPID:父进程 ID
- C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算, 执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高;
- STIME:进程启动的时间
- TTY:完整的终端名称
- TIME:CPU 时间
- CMD:启动进程所用的命令和参数
2.kill 终止进程
kill 进程号 :通过进程号杀死进程
killall 进程名称 :通过进程名称杀死进程,也支持通配符,这 在系统因负载过大而变得很慢时很有用
kill -9 进程号:彻底杀死进程
3.pstree 查看进程树
pstree -p:显示进程的PID
pstree -u:显示进程的所属用户
4.top 实时监控系统进程状态
top -d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒在 top 命令的交互模式当 中可以执行的命令:
top -i:使 top 不显示任何闲置或者僵死进程
top -p:通过指定监控进程 ID 来仅仅监控某个进程
5.netstat 显示网络状态和端口占用信息
netstat -anp | grep 进程号 :查看该进程网络信息
netstat –nlp | grep 端口号 :查看网络端口号占用情况
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通