Ubutu下的Shell操作

前言

在学习Ubuntu系统时,Shell操作是必不可少的知识。本篇文章是记录我学习Linux系统时,Ubutu下的Shell操作,希望我的分享对大家有所帮助!

目录

前言

一、什么时是Shell

二、Shell的基本操作

三、常用的Shell命令

1、目录信息查看命令ls

2、目录切换命令cd 

3、当前路径显示命令 pwd

4、系统信息查看命令 uname

5、清屏命令 clear

6、 切换用户执行身份命令 sudo

7、 添加用户命令 adduser

8、删除用户命令 deluser

9、切换用户命令 su

10、显示文件内容命令 cat

11、显示和配置网络属性命令 ifconfig

12、系统帮助命令 man

13、 系统重启命令 reboot

14、系统关闭命令 poweroff

 15、软件安装命令 install

四、结语 


一、什么时是Shell

在我学习Linux的时候,经常会看到Shell这种操作,为了弄明白它到底是什么,我上网查阅了很多资料,但是得到的都是各种高深的专业解释。一时半会儿搞得头晕。慢慢地我于是有了自己的理解——

所谓的Shell操作,其实就是敲命令!国外人才会洋里洋气地叫其Shell。所以,当我再次看到Shell操作时,我头脑李想起来的就是:在终端敲命令!净多个Shell命令按照一定的格式放在一个文本里,那么这个文本就是所谓的Shell脚本!

从一些资料里得知:严格来讲,Shell是一个应用程序,它负责接受用户输入的命令。然后根据用户的命令做出相应的动作。

更重要的是,Shell负责将应用层或者用户输入的命令传递给系统内核,由操作系统内核来完成相应的工作。最后将结果反馈给应用层或者用户。

上面这段话很重要,希望读者仔细揣摩!!!

二、Shell的基本操作

Shell既然是敲命令,那敲出的命令肯定是有一定的格式的。Shell命令的格式如下:

comand         -options         [ argument ]

我对上面的命令格式解释一下:

1、comand:Shell命令名称;

2、options:选项,同一种命令可能有不同的选项,不同的选项对应着不同的功能;

3、argument:Shell命令是可以带参数的,也可以不带参数运行;

举个简单的例子:

同样以命令“ls”为例,下面“ls”命令的三种不同格式其结果也不同:

这三种命令的运行结果是不同的:

在图中“ls”命令用来打印出当前目录下的所有文件和文件夹,而“ls -l”同样是打印出当前目录下的所有文件和文件夹,但是此命令会列出所有文件和文件夹的详细信息,比如文件大小、拥有者、创建日期等等。最有一个“ls /usr”是用来打印出目录“/usr”下的所有文件和文件夹。

Shell 命令是支持自动补全功能的,因为 Shell 命令非常多,如果不作自动补全的话就需要
用户去记忆这些命令的全部字母。
使用自动补全功能以后我们只需要输入命令的前面一部分字母,然后按下 TAB 键,如果只有一个命令匹配的话就会自动补全这个命令剩下的字母。如果有多个命令匹配的话系统就会发出报警声音,此时在按下一次 TAB 键就会列出所有匹配的命令,比如我们输入字母“if”,然后按下 TAB 键,结果如图所示:

从图中可以看出,以“if”开头的命令有 5 个,我们以“ifconfig”为例,此命令是用来查看网卡信息的,我们重新输入“ifc”然后在按一下 TAB 键,就会自动补全出“ifconfig”命令,因为以“ifc”开头的命令只有一个,结果如图所示:

 三、常用的Shell命令

我们做嵌入式开发用的最多就是 Shell 命令, Shell 命令是所有的 Linux 系统发行版所通用
的,并不是说我在 Ubuntu 下学会了 Shell 命令,换另外一个 Linux 发行版操作系统以后就没用了(不同的发行版 Linux 系统可能会自定义一些命令)。下面我先来介绍一些 Shell 下常用的命令:

1、目录信息查看命令ls

文件浏览时Linux终端下的最基本的操作了。Shell下的文件浏览命令格式如下:

ls    [ 选项 ]    [ 路径 ]

ls命令主要用于显示指定目录下的内容,列出指定目录下包含的所有文件及子目录,它的主要参数有:

-a    显示所有文件以及子目录,包括以“ . ”开头的隐藏文件。

-l     显示文件的详细信息,你如文件的形态、权限、所有者、大小等信息。

-t     将文件的创建信息排序列出。

-A    和-a 一样,但是不列出“.” (当前目录)和“..” (父目录)。

-R    递归列出所有文件,包括子目录中的文件。

Shell 命令里面的参数是可以组合在一起用的,比如组合“-al”就是显示所有文件的详细信息,包括以“.”开头的隐藏文件, ls 命令使用如图所示:
 

2、目录切换命令cd 

要想在 Shell 中切换到其它的目录,使用的命令是 cd,命令格式如下:
cd     [ 路径 ]

路径就是我们要进入的目录路径,比如下面所示操作:

举个简单的例子: 比如我们要进入到目录“/usr”下去,并且查看“/usr”下有什么文件,操作如图所示:

我们先使用命令“cd /usr”进入到“/usr”目录下,然后使用“ls”命令显示“/usr”目录下的所有文件。仔细观察图可以看到,当我们切换到其它目录以后在符号“$”前面就会以蓝色的字体显示出当前目录名字,如图所示:

3、当前路径显示命令 pwd

pwd 命令用来显示当前工作目录的绝对路径,不需要任何的参数,使用如图所示:

4、系统信息查看命令 uname

要查看当前系统信息,可以使用命令 uname,命令格式如下:
uname     [ 选项 ]

[ 选项 ]的参数可以是: 

-r      列出当前系统的具体内核版本号

-s     列出系统内核名称

-o     列出系统信息

使用实列: 

5、清屏命令 clear

clear 命令用于清除终端上的所有内容,只留下一行提示符。

6、 切换用户执行身份命令 sudo

Ubuntu(Linux)是一个允许多用户的操作系统,其中权限最大的就是超级用户 root,有时候
我们执行一些操作的时候是需要用 root 用户身份才能执行,比如安装软件。通过 sudo 命令可以使我们暂时将身份切换到 root 用户。当使用 sudo 命令的时候是需要输入密码的,这里要注意输入密码的时候是没有任何提示的!命令格式如下:

sudo     [ 选项 ]      [ 命令 ]

选项的主要参数是: 

-h        显示帮助信息

-l         列出当前用户可执行与不可执行的命令

-p        改变询问密码的提示符

假如我们现在要创建一个新的用户 test,创建新用户的命令为“adduser”,创建新用户的权
限只有 root 用户才有,我们在装系统的时候创建的那个用户是没有这个权限的,比如我的
“zxf”用户。所以创建新用户的话需要使用“sudo”命令以 root 用户执行“adduser”这个命令,如图所示:
 

7、 添加用户命令 adduser

上面使用sudo命令时已经了解过“adduser”指令,此命令需要用户使用root身份去进行。命令格式如下:

adduser    [ 参数 ]   [ 用户名 ]

常用的参数如下:

-system                           添加一个系统用户

-hme DIR                         DIR表示用户的主目录路径

-uid ID                              ID表示用户的uid

-ingroup GRP                  表示用户所属的组名

8、删除用户命令 deluser

前面讲了添加用户的命令,那肯定也有删除用户的命令,删除用户使用命令“deluser”,命
令参数如下:

geluser     [ 参数 ]   [ 用户名 ]

主要参数有: 

-system                   当删除用户时一个系统用户时才能删除

-remove-home        删除用户的主目录

-remove-all-files     删除与用户有关的所有文件      

-backup                   备份用户信息

命令“deluser”也需要使用“sudo”来以 “root” 用户运行,这里删除之前创建的用户test为例:

9、切换用户命令 su

前面在讲解命令“sudo”的时候说过,“sudo”是以 root 用户身份执行一个命令,并没有更改当前的用户身份,所有需要 root 身份执行的命令都必须在前面加上“sudo”。命令“su”可以直接将当前用户切换为 root 用户,切换到 root 用户以后就可以尽情的进行任何操作了!因为你已经获得了系统最高权限,在 root 用户下,所有的命令都可以无障碍执行,不需要在前面加上“sudo”,“su”命令格式如下:

su        [ 选项 ]   [ 用户名 ]

常用参数如下:

-c -command                 执行指定的命令,执行完毕以后恢复原用户身份。
-login                              改变用户身份,同时改变工作目录和PATH环境变量。
-m                                   改变用户身份的时候不改变环境变量
-h                                     显示帮助信息
以切换到root用户为例,使用如图所示:

在图中,先使用命令“sudo su”切换到 root 用户, su 命令不写明用户名的话默认切换到 root 用户。然后输入密码,密码正确的话就会切换到 root 用户,可以看到切换到 root 用户以后提示符的“@”符号前面的用户名变成了“root”,表示当前的用户是 root 用户。并且以“#”结束。
注意!!由于 root 用户权限太大,稍微不注意就可能删除掉系统文件,导致系统奔溃,因此
强烈建议大家,不要以root 用户运行 Ubuntu。当要用到root 身份执行某些命令的时候使用“sudo”命令即可。
要切换回原来的用户,使用命令“sudo su 用户名”即可。

10、显示文件内容命令 cat

查看文件内容是最常见的操作了,在 windows 下可以直接使用记事本查看一个文本文件内
容, linux 下也有类似记事本的软件,叫做 gedit,找到一个文本文件,双击打开,默认使用的就是 gedit,如图所示:

我们现在讲解的是 Shell 命令,那么 Shell 下有没有办法读取文件的内容呢?肯定有的,那
就是命令“cat”,命令格式如下:

cat          [ 选项 ]           [ 文件 ] 

主要参数如下: 

-n                       由1开始对所有输出的行进行编号。

-b                       和-n类似,但是不对空白行编号。
-S                       当遇到连续两个行以上空白行的话就合并为一个行空白行。

比如我们以查看文件“/etc/environment”的内容为例,结果如图所示:

11、显示和配置网络属性命令 ifconfig

ifconfig 是一个跟网络属性配置和显示密切相关的命令,通过此命令我们可以查看当前网络属性,也可以通过此命令配置网络属性,比如设置网络 IP 地址等等,此命令格式如下:
ifconfig      interface    options | address

主要的参数如下: 

interface               网络接口名称,比如eth0等。
up                          开启网络设备。
down                     关闭网络设备。
add                        IP地址,设置网络IP地址。

netmask add         子网掩码。

12、系统帮助命令 man

Ubuntu 系统中有很多命令,这些命令都有不同的格式,不同的格式对应不同的功能,要完
全记住这些命令和格式几乎是不可能的,必须有一个帮助手册,当我们需要了解一个命令的详细信息的时候查阅这个帮助手册就行了。 Ubuntu 提供了一个命令来帮助用户完成这个功能,那就是“man”命令,通过“man”命令可以查看其它命令的语法格式、主要功能、主要参数说明等。“man”的命令格式如下:

man  [ 命令名 ]

打开“ifconfig”这个命令的详细说明

13、 系统重启命令 reboot

通过点击 Ubuntu 主界面右上角的齿轮按钮来选择关机或者重启系统,同样的我们也可以
使用 Shell 命令“reboot”来重启系统,直接输入命令“reboot”然后点击回车键即可,如图所示:

14、系统关闭命令 poweroff

使用命令“reboot”可以重启系统,使用命令“poweroff”就可以关闭系统,在终端中输入命令“poweroff”然后按下回车键即可关闭 Ubuntu 系统,如图所示:

15、软件安装命令 install

截至目前,我们都没有讲过 Ubuntu 下如何安装软件,因为 Ubuntu 安装软件不像 Windows下那样,直接双击.exe 文件就开始安装了。 Ubuntu 下很多软件是需要先自行下载源码,下载源码以后自行编译,编译完成以后使用命令“intsall”来安装。当然 Ubuntu下也有其它的软件安装方法,但是用的最多的就是自行编译源码然后安装,尤其是嵌入式Linux开发。命令"install”格式如下:

“install”命令是将文件(通常是编译后的文件)复制到目的位置,在前三种形式中,将源文件复制到目标文件或将多个源文件复制到一个已存在的目录中同时设置其所有权和权限模式。在第四种形式会创建指定的目录。命令“install”通常和命令“apt-get”组合在一起使用的,关于“apt-get”命令大家可以看我后面更新的内容。

四、结语 

以上就是 Shell 最基本一些命令,记录至此,相信我的分享会给你带来帮助!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/640585.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GIS项目实战06:超详细Node.js安装及系统环境配置

简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。 Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快,性能…

一区优化直接写:KOA-CNN-BiLSTM-Attention开普勒优化卷积、长短期记忆网络融合注意力机制的多变量回归预测程序!

适用平台:Matlab 2023版及以上 KOA开普勒优化算法,于2023年5月发表在SCI、中科院1区Top顶级期刊《Knowledge-Based Systems》上。 该算法提出时间很短,目前还没有套用这个算法的文献。 同样的,我们利用该新鲜出炉的算法对我们的…

【好用的AI工具Kimi Chat】帮助提高面试效率

一、背景 年前裁员潮,不少人离职找工作,以及年后金三银四,也是求职高峰期。如何更高效的复习技术知识,以及特别是横纵向比对有总结性的问题。本文以面试【测试开发】的岗位为例,对面试题进行拓展,让AI帮助…

从 Vscode 中远程连接 WSL 服务器:可以本地操作虚拟机

从 Vscode 中远程连接 WSL 服务器:可以本地操作虚拟机 1.下载 Vscode Visual Studio Code - Code Editing. Redefined 2.搜索框中输入>wsl,点击 WSL:Connect to WSL using Distro... 3.点击下载好的Ubuntu,当左下角出现图片同…

U-Boot 中使用 nfs 命令加载文件报错指南

目录 问题一问题描述错误原因解决方案 问题二问题描述解决方案 更多内容 在嵌入式 Linux 开发中,我们经常使用 nfs 命令加载服务端的共享文件或者挂载文件系统。关于服务端 NFS 服务的搭建可以参考基于 NFS 的文件共享实现。 U-Boot 也支持了 nfs 命令,…

RabbitMQ数据隔离

1、新建用户 2、登录用户,设置虚拟主机 登录用户只能操作自己的虚拟主机,交换机等,不能操作其他人的!!!

二维码地址门牌管理系统:登记管理新时代

文章目录 前言一、轻松登记,一扫即通二、智能化登记,优势明显三、政府支持与推广四、智能化管理未来展望 前言 二维码门牌管理系统的上线,为市民带来了便捷。系统不仅提升了登记效率,更保障了个人信息安全,成为城市管…

旅游项目day14

其他模块数据初始化 搜索实现 请求一样,但是参数不一样,根据type划分。 后台需要提供一个搜索接口。 请求分发器: 全部搜索 目的地搜索 精确搜索、无高亮展示 攻略搜索 全文搜索、高亮显示、分页 游记搜搜 用户搜索 丝袜哥

【GitHub项目推荐--Spring 教程】【转载】

该项目是一系列小型且直击要害的教程:每个教程都涵盖了 Java 生态系统中一个单一且定义明确的开发领域。 其中一个重点是 Spring Framework - Spring、Spring Boot 和 Spring Security。除了 Spring 之外,这里的模块还涵盖了 Java 的许多方面。 开源地址…

AI大模型开发架构设计(3)——如何打造自己的大模型

文章目录 如何打造自己的大模型1 新时代职场人应用AIGC的5重境界2 人人需要掌握的大模型原理职场人都能听懂的大语音模型的训练过程职场人都能听得懂的大语言模型的Transformer推理过程 3 如何构建自己的大模型需要具备三个方面的能力LangChain是什么?LangChain主要…

【Git不走弯路】(二)提交与分支的本质

1. 前言 提交与分支是Git中两个基本对象,对初学者而言需要花些时间理解。正如我们之前所说,计算机中很多新概念是新瓶装旧酒。计算机技术来源于需求,服务于需求,需求是计算机技术的出发点和落脚点。梳理清楚工程实践中&#xff0…

13、Kafka ------ kafka 消费者API用法(消费者消费消息代码演示)

目录 kafka 消费者API用法消费者API使用消费者API消费消息消费者消费消息的代码演示1、官方API示例2、创建消费者类3、演示消费结果1、演示消费者属于同一个消费者组2、演示消费者不属于同一个消费者组3、停止线程不适用4、一些参数解释 代码生产者:MessageProducer…

雍禾医疗携手国内三甲医院展开合作 雍禾植发助力行业健康发展

根据《都市人群毛发健康消费白皮书》调研显示,国内毛发医疗服务行业市场规模从2021年至2030年将以21.8%的复合年均增长率(CAGR)增长,2030年将达到1381亿元。市场前景广阔的同时,消费需求也在升级迭代。 此前,北京大学人民医院与雍禾医疗共建“北京大学人民医院X雍禾…

有关Quick BI中lod_fixed函数中以MAX()作为过滤条件报错

一、Quick BI中的lod_fixed函数 lod_fixed{维度1[,维度2]...:聚合表达式[:过滤条件]} 作用:使用指定维度进行计算而不引用任何其他维度。其中, 维度1[,维度2]...:声明维度,指定聚合表达式要连接到的一个或多个维度。使用逗号分…

Kafka-消费者-KafkaConsumer分析-ConsumerNetworkClient

前面介绍过NetworkClient的实现,它依赖于KSelector、InFlightRequests、Metadata等组件,负责管理客户端与Kafka集群中各个Node节点之间的连接,通过KSelector法实现了发送请求的功能,并通过一系列handle*方法处理请求响应、超时请求…

0122-2-JavaScript正则表达式

《JavaScript正则表达式》 第一章 正则表达式 字符匹配 正则表达式是匹配模式,要么匹配字符,要么匹配位置! 横向匹配 /ab[2,5]/c/g 匹配 abc, abbc,abbbc,abbbbc,abbbbbc,数字连续出现 2 到 5 次,会匹配 2 位、3 位、…

C++ STL之string的使用及模拟实现

文章目录 1. 前言2. 介绍3. string类的使用3.1 string类的构造函数3.2 string类对象的容量操作3.3 string类对象的访问及遍历操作3.4 string类对象的修改操作3.5 string类对象的字符串操作3.6 string类的非成员函数 4. string类的模拟实现 1. 前言 C语言中,字符串是…

地图 - 实现有多条定位,显示多条定位,并且使用一个圆形遮罩层将多条定位进行覆盖

首先&#xff0c;需要在你的index.html模板页面头部加载百度地图JavaScript API代码&#xff0c;密钥可去百度地图开放平台官网申请 <script type"text/javascript" src"//api.map.baidu.com/api?typewebgl&v1.0&ak您的密钥"></script&…

代码随想录 Leetcode1047. 删除字符串中的所有相邻重复项

题目&#xff1a; 代码(首刷自解 2024年1月21日&#xff09;&#xff1a; class Solution { public:string removeDuplicates(string s) {if (s.size() < 2) return s;stack<char> t;for (int i 0; i < s.size(); i) {if (t.empty()) t.push(s[i]);else {if (s[i…

InnoDB的Buffer Pool

前置概念&#xff1a;一个数据页16KB&#xff0c;一个数据页可能有多个记录&#xff0c;即使我们只需要访问一条记录&#xff0c;需要把整个数据页加载到内存中&#xff0c;加载到内存后不是直接释放&#xff0c;而是缓存到内存当中&#xff08;当然对于buffer pool的缓存是在存…