Linux——————常用基本指令
Linux常用的基本命令是必须掌握的,这里是我刚入门Linux学习的基本命令,希望可以帮助到大家。
-
基本关系
在Linux系统开发的时候一般都是直接在终端Terminal中进行控制,终端也被称为命令解释器,所以终端也被称为shell终端,shell具有贝壳的意义,其实是解释器软件的名称,用于保护Linux内核(Kernel)。
终端就是Linux系统内核提供给用户和内核交互的一个程序,Linux内核是没有思想的,所以Linux内核已经提前预置一些控制指令,这些预置指令被称为shell命令。
该程序能够接收用户输入的shell命令,内核对命令进行解析和处理,处理完毕后内核将结果反馈给用户,所以需要用户掌握对应的shell命令才能控制。
-
命令终端
随着计算机技术的不断发展,操作系统的控制台也在不断地演变和发展。从最初简单的命令行界面到现在的各种终端模拟器和控制面板,控制台的发展经历了漫长而曲折的历程。
最初的操作系统控制台只有最基本的命令,用户只能通过键入字符来执行操作。这种方式虽然简单,但对于普通用户来说却非常不友好,因为他们需要记住大量的命令才能完成一些基本的操作。
为了解决这个问题,操作系统开始引入图形化界面。这些界面使用图标、菜单和按钮等元素来代替命令行,使得用户可以更加直观地进行操作。这种方式大大提高了用户的使用体验,但也带来了一些问题,比如占用更多的系统资源和容易出现兼容性问题。
在Linux系统开发的时候一般都是直接在命令行终端中进行,终端也被称为命令解释器,其实就是Linux系统提供给用户和内核进行交互的一个程序,该程序能够接收用户输入的命令,并对命令进行处理,处理完毕后再将结果反馈给用户,所以需要用户掌握对应的shell命令才能控制Linux系统内核。
-
用户权限
在Linux系统中,用户可以分为超级用户(也被称为root用户,拥有系统的最高权限,可以执行任何命令和操作)、普通用户(没有超级用户的权限,只能访问和修改自己的文件和目录)。
此外,还有一些特殊的用户类型,例如系统管理员、网络管理员等,他们通常需要具备更高的权限来管理整个系统。在Linux系统中,可以通过创建用户、添加到用户组、设置权限等方式来管理不同类型的用户。
sudo是一个Linux命令,用于在不使用root权限的情况下执行需要管理员权限的命令。作用是允许普通用户以管理员身份执行某些需要特殊权限的命令,例如安装软件包、修改系统配置文件等。
当用户使用sudo命令运行一个shell命令时,系统会检查当前帐户是否具有执行该命令所需的权限。如果没有,则会提示输入密码。一旦输入正确的密码,系统就会授予该用户为管理员权限,并允许该用户以root或其他管理员身份运行命令。
(1) 普通用户切换为超级用户
Linux系统下的su命令用于切换用户身份,在终端中输入指令:sudo su,然后按下回车,输入密码(注意密码输入时是不回显的),然后即可切换到超级用户,实际开发中尽量避免一直使用超级用户。
(2)超级用户退回为普通用户
如果用户打算从超级用户切换到普通用户,则在终端中输入命令:exit ,即可退回到普通用户。
-
命令格式
Linux 命令的基本格式:
Dazz@ubuntu:~$ 命令 [选项] [参数]
注意:命令的选项用于调整命令功能,而命令的参数是这个命令的操作对象,具体如下所示:
(1) 选项的作用
其中,命令格式中的 [] 代表可选项,也就是有些命令可以不写选项或参数,虽然也能执行,只不过只能执行最基本的功能。Linux 命令的选项又分为短格式选项( - )和长格式选项( -- )。
(2)参数的作用
参数是命令的操作对象,一般文件、目录、用户和进程等可以作为参数被命令操作。命令一般都需要加入参数,用于指定命令的操作对象。命令的参数可以省略,如果省略则一般使用默认参数。
-
帮助手册
Linux命令不需要也不能强制去记忆这些指令和选项,那会非常枯燥而且容易遗忘,正确的方式是使用这些所学习的命令去解决实际的问题,让它们在实用中提高工作效率,融入了日常行为习惯之后的命令就非常容易记住了。
注意:Linux系统提供的shell命令都是小写的,并且都是某些英文单词的缩写,所以容易记忆。
如果遇到不会使用的命令,可以通过“命令名 --help”来获取命令帮助,即获取更多命令相关的信息。
提示:其实shell命令的帮助信息都是从man手册查阅到并进行输出的,所以如果打算看更详细的描述,可以直接通过man手册查阅。
注意:man手册在Linux系统下并不是默认会安装完整版,所以需要手动更新man手册的内容
基本格式:
Dazz@ubuntu:~$ sudo apt install man-db manpages-de-dev manpages-posix
-
基础指令
(1) 用户切换
linux系统下的用户分为两种,一种是超级用户(相当于windows系统下的管理员),另一种则是标准用户(相当于windows下的普通用户),sudo为英文superuser do 的简写,即使用超级用户来执行命令,一般是指root用户。
在linux中,超级用户(root用户)是拥有操作系统资源的所有访问权限的用户,该权限可以用于对系统的维修和管理(添加或删除用户或组,安装软件等对系统进行管理的操作)。
注意:在Linux操作系统的日常使用中不建议大家登录超级用户,防止对重要的文件或文件夹等内容删除,造成系统崩溃,一般需要root权限的时候可以选择使用sudo命令临时获取root的权限。
普通用户切换至超级用户
Dazz@ubuntu:~$ sudo -s -按回车
[sudo] password for Dazz: -密码:123456(自己设置的) 默认不显示的,-按回车
root@ubuntu:~# //root表示超级用户名字 #表示超级用户权限标志
超级用户切换至普通用户
root@ubuntu:~# su xxx -第一种方式 xxx指的是系统中用户的名称
Dazz@ubuntu:~$
root@ubuntu:~# exit -第二种方式
exit
(2) 查看目录
ls 命令,是list的缩写,是最常见的目录操作命令,其主要功能是显示当前目录下的内容。
基本格式如下:
Dazz@ubuntu:~$ ls [选项] [目录名称] //选项可以省略,目录名称也可以省略
注意:Linux系统的思想是“一切皆文件”,所以Linux系统把文件分为七类:规则文件(-)、目录文件(d)、管道文件(p)、链接文件(l)、套接字文件(s)、字符设备文件(c)、块设备文件(b)
(3)切换目录
cd 命令,是英文change directory 的缩写,用来切换工作目录,linux系统下目录也被称为路径。
基本格式如下:
Dazz@ubuntu:~$ cd [选项] [目录名称]
在 Linux 操作系统中,所有的文件和目录都被组织成以一个根节点“/”开始的倒置的树状结构。如下图:
文件系统的最顶层是由根目录开始的,系统使用“/”来表示根目录,在根目录之下的既可以是目录(目录就相当于 Windows 中的文件夹),也可以是文件,而每一个目录中又可以包含(子)目录或文件。如此反复就可以构成一个庞大的文件系统。
在 Linux 中,一个文件的路径指的就是该文件存放的位置,一般把文件路径分为两种,一种是相对路径、一种是绝对路径。
- 相对路径:不是从根目录 / 开始写起,而是从当前所在的工作目录为开头的路径。
- 绝对路径:一定是以根目录‘/’为开头的路径。
根目录:是位于Linux系统中文件系统目录结构的最顶层的目录。
/
家目录~(又称主目录):Linux 系统是纯字符界面,用户登录后,要有一个初始登录的位置,这个初始登录位置就称为用户的家。
~
当前目录:当前用户所在目录
.
上级目录:相对当前所在目录的上一级目录
..
(4) 创建目录
mkdir命令,是 make directories 的缩写,用于创建空目录,此命令所有用户都可以使用。
基本格式如下:
Dazz@ubuntu:~$ mkdir [-m or -p] 目录名
-m 选项用于手动配置所创建目录的权限,而不再使用默认权限。
-p 选项递归创建所有目录,以创建 /home/gec/test/abc为例,在默认情况下,你需要一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建 /home、/home/gec、/home/gec/test 和 /home/gec/test/abc。
(5)创建文件
touch 命令可以用来创建文件,当指定操作文件不存在时,该命令会在当前路径下建立一个空文件。
当然,touch命令也可以将已存在的文件或目录的时间标签更新为当前系统时间。这意味着可以改变文件的最后访问时间和最后修改时间,但不会改变文件内容。
基本格式如下:
Dazz@ubuntu:~$ touch 文件名 //可以一次性创建多个不同类型的文件
(6)删除文件
rm 命令,是英文remove的缩写,在Linux系统中是强大的删除命令,它可以永久性地删除文件系统中指定的文件或目录。在使用 rm 命令删除文件或目录时,系统不会产生任何提示信息。
基本格式如下:
Dazz@ubuntu:~$ rm [选项] 文件或目录
-f:强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录。
-i:和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录。
-r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。
(7)移动文件
mv 命令,是英文move的缩写,该命令有两种作用:既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。
基本格式如下:
Dazz@ubuntu:~$ mv [选项] 源文件 目标文件/目录路径
-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
-n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户
注意:如果打算对文件或者目录重命名,则需要源文件和目标文件在同一目录中,且目标文件不存在。
(8)复制文件
cp命令,是英文copy的缩写,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。
基本格式如下:
Dazz@ubuntu:~$ cp [选项] 源文件(被复制文件) 目标路径
-i:询问,如果目标文件已经存在,则会询问是否覆盖
-r:递归复制,用于复制目录
-u:若目标文件和源文件有差异,则可以更新目标文件,可用于对文件的升级和备用
(9)打印路径
pwd 命令,是英文单词print working directory的缩写,功能是显示用户当前所处的工作目录,可以把路径信息输出到终端。
基本格式如下:
Dazz@ubuntu:~$ pwd //该指令输出的路径是绝对路径
(10) 编辑文件
gedit命令,可以以记事本的风格打开一个文件,gedit图形化编辑器跟Windows下记事本的用法基本一致。
基本格式如下:
Dazz@ubuntu:~$ gedit 文件名
(11) 查看文件
cat命令,是英文concatenate的缩写,该命令是 Linux操作系统中最常用的命令之一。cat 命令允许创建单个或多个文件、查看文件内容、连接文件和重定向终端或文件中的输出,常用于查看文件内容。
基本格式如下:
Dazz@ubuntu:~$ cat file.txt ==> 显示文本文件内容
Dazz@ubuntu:~$ cat -n a.c ==> 显示文本文件内容(并显示行号)
Dazz@ubuntu:~$ cat -A a.c ==> 显示文本文件内容(含不可见字符)
注意:在某些情况下,我们可能需要检测文件中那些不可见的字符。比如在Windows系统中编辑了程序源文件,放到Ubuntu系统中编译可能会出现字符错误,这是因为Windows系统中的某些回车符、制表符跟Ubuntu系统的不一致,导致无法编译,而这些字符是不可见的,因此可以使用上述 cat -A 来识别。
(12)系统时间
date命令,date中文具有日期的含义,利用该命令可以查看或者修改Linux系统日期和时间。
基本格式如下:
Dazz@ubuntu:~$ date
Dazz@ubuntu:~$ date -s 日期时间 // -s选项可以设置日期和时间
(13)查找文件
find命令,find中文具有查找的含义,利用该命令可以查找某个指定的路径中文件的位置,并且会把文件路径输出到终端上。
基本格式如下:
gec@ubuntu:~$ find 路径 [选项] 文件名
gec@ubuntu:~$ find /usr -name "xxx.h" ==> 在/usr中查找叫做xxx.h的文件
gec@ubuntu:~$ find /tmp -type d ==> 在/tmp中查找类型为目录的文件
(14) 文件权限
chmod命令,是英文单词change module的缩写,利用该命令可以修改Linux系统的文件权限,如下:
基本格式如下:
gec@ubuntu:~$ chmod 权限 文件
系统中的所有用户被分成三类:文件所有者(现登录用户),同组用户和其他用户。这三类用户对这个文件的rwx权限,可以由命令 ls -l 来查看。
在上述列子中,rwx三组权限对应了三种用户。当我们需要修改这些权限的时候,为了便于描述,一般用3组八进制数来对应这些权限为,如下表所示:
(15)查看分区
df命令,该命令的作用是查看系统分区信息,侧重在文件系统级别的磁盘占用方面,用法如下:
Dazz@ubuntu:~$ df [选项]
(16)创建链接
ln 命令,是英文link的缩写,中文具有链接的含义,该命令用于给文件创建链接,在Linux系统中,为文件创建链接的方式分为以下两种:
基本格式如下:
Dazz@ubuntu:~$ ln [选项] 源文件 目标文件
软链接:类似于 Windows 系统中给文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接方式同样适用于目录。
硬链接:文件的基本信息都存储在inode中,而硬链接指的就是给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的inode,从而读取该文件的数据信息。
注意:软链接文件的源文件必须写成绝对路径,而不能写成相对路径(硬链接没有这样的要求),否则软链接文件会报错。
(17)查找文件
find命令,该命令用于查找Linux系统中某个指定的路径下文件的位置,并且可以把文件的绝对路径输出到终端。注意:如果打算查找根目录下的文件,则应该使用sudo获取root权限。
基本格式如下:
Dazz@ubuntu:~$ find /usr -name "*.h" ==> 在/usr中查找所有以.h结尾的文件
(18)压缩解压
tar命令,该命令的作用是归档/释放 以及 压缩/解压,归档的意思把文件统一打包但不作压缩处理,所以压缩和归档生成的包的大小不同。
基本格式如下:
gec@ubuntu:~$ tar 选项 目标文件 源文件
-c:创建一个新的归档文件。
-x:从归档文件中提取文件。
-f:指定要处理的归档文件名。 //该选项必须放在所有选项的最后面
-v:在终端上显示操作的详细信息。
-t:列出归档文件中的所有文件。
-u:向现有归档文件中添加文件。
-r:更新归档文件中的文件或目录。
-z:使用gzip压缩创建tar文件。
-j:使用bzip2压缩法创建存档文件。
归档/释放:
Dazz@ubuntu:~$ tar cf a.tar dir/* ==> 将目录dir中的所有文件归档成a.tar
Dazz@ubuntu:~$ tar tf a.tar ==> 查看归档文件a.tar
Dazz@ubuntu:~$ tar xf a.tar ==> 释放归档文件a.tar
压缩/解压:
Dazz@ubuntu:~$ tar czf a.tar.gz dir/* 将目录dir中的所有文件归档并压缩为gz格式
Dazz@ubuntu:~$ tar xzf a.tar.gz ==> 解压压缩文件a.tar.gz
Dazz@ubuntu:~$ tar cjf a.tar.bz2 dir/* 将目录dir中的所有文件归档并压缩为bz2格式
Dazz@ubuntu:~$ tar xjf a.tar.bz2 ==> 解压压缩文件a.tar.bz2
(19) 命令路径
which命令,在Linux系统中该命令用于定位和查找系统中可执行文件的路径。它主要用于确定某个命令是否存在以及该命令的完整路径。
基本格式如下:
Dazz@ubuntu:~$ which [选项] 命令名
(20)文件格式
file命令,该命令用于查看Linux系统中文件的类型,包括但不限于文本文件、目录、二进制文件、符号链接等。
基本格式如下:
Dazz@ubuntu:~$ file [选项] 文件名
(21) 配置网络
ifconfig命令,该命令的作用是查看或者设置系统IP地址,ifconfig并非系统自带命令,需要利用命令进行安装使用:
基本格式如下:
Dazz@ubuntu:~$ sudo apt install net-tools //安装指令只需要执行一次即可
基本格式如下:
gec@ubuntu:~$ ifconfig [选项]
(22)网络测试
ping命令,该命令的作用是向指定主机发送要求回应的ICMP数据包,可以用来测试网络是否连通。
基本格式如下:
gec@ubuntu:~$ ping IP地址
gec@ubuntu:~$ ping 主机域名
注意:一般而言,如果网络是畅通的,那么ping命令将会看到数据包返回的延迟时间,否则如果看不到延迟时间,那么网络就是不通的。
(23)进程状态
ps命令,是英文process state的缩写,该命令用于获取Linux系统中各进程的当前状态参数
基本格式如下:
Dazz@ubuntu:~$ ps [选项]
(24)命令别名
alias命令,该命令用于创建和管理命令别名,可以简化日常的指令输入以及提高开发效率!
基本格式如下:
gec@ubuntu:~$ alias 别名=命令
注意:alias命令设置的别名只在当前终端中有效,如果需要永久生效,需要将其写入到用户家目录下的配置文件.bashrc中,然后使用source命令使配置文件立即生效。
(25) 清除屏幕
clear命令,该命令用于清除终端的一面屏幕,为了提高终端的可读性以及提高开发的效率!
基本格式如下:
gec@ubuntu:~$ clear
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)