Linux(Ubuntu 20.04 LTS)之shell使用基础教程

时间:2024-04-10 17:00:16

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

我在此使用的是VMware虚拟机安装的Ubuntu 20.04 LTS。

 

Shell是linux系统的用户界面。Shell即是一个命令解释器,它解释由用户输入的命令并且把它们送到内核去执行。又是一种程序设计语言,具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,允许用户编写由shell命令组成的程序。

 

在ubuntu系统桌面中按下Ctrl+Alt+T组合键,可打开shell(Terminal窗口),参见下图:

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

其中$是终端命令提示符

@和:是分隔符号,#或$是命令提示符,如果是超级用户(root 用户),提示符就是#;如果是普通用户,提示符就是$。

@前面是用户名,这里是wang

@后至:之间是表示当前系统的主机名(计算机名),这里是wang-virtual-machine

:至#或$之间是用户当前所在的目录,这里是~,~代表home 目录。

 

顺便指明,终端下默认的复制(copy)粘贴(viscidity,paste)快捷键是 Ctrl+Shift+C,Ctrl+Shift+V。

Linux中文件扩展名

windows里通过扩展名来区分文件类型的。linux里文件扩展名和文件类型没有关系。但为了容易区分和兼容用户使用windows的习惯,我们还是会用扩展名来表示文件类型。举例如下:

☆ 源码.tar、.tar.gz、.tgz、.zip、.tar.bz表示压缩文件,创建命令一般为tar,gzip,zip等。

☆ .sh表示shell脚本文件,通过shell语言开发的程序。

☆ .pl表示perl语言文件,通过perl语言开发的程序。

☆ .py表示python语言文件,通过python语言开发的程序。

☆ .html、.htm、.php、.jsp、.do表示网页语言的文件。

☆ .conf表示系统服务的配置文件。

☆ .rpm表示rpm安装包文件。

linux下文件的一些文件颜色的含义

☆绿色-->代表可执行文件,(绿色代表通行证的意思)呵呵

☆红色-->代表压缩文件

☆深蓝色-->代表目录

☆浅蓝色-->代表链接文件

☆灰色-->代表其它的一些文件

 

查看当前 Linux 的默认 Shell

echo $SHELL

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

可以通过 cat /etc/shells 来查看 linux 支持的 shell。

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

☆sh

sh 的全称是 Bourne shell,由 AT&T 公司的 Steve Bourne开发,为了纪念他,就用他的名字命名了。sh 是 UNIX 上的标准 shell,很多 UNIX 版本都配有 sh。sh 是第一个流行的 Shell。

☆bash

bash shell 是 Linux 的默认 shell,本教程也基于 bash 编写。bash 由 GNU 组织开发,保持了对 sh shell 的兼容性,是各种 Linux 发行版默认配置的 shell。

在现代的 Linux 上,sh 已经被 bash 代替。

☆dash

Debian Almquist Shell(dash),从NetBSD移植到Linux。Dash Shell 比 Bash Shell 小的多。

☆rbash

受限shell是LinuxShell限制一些bash shell中的功能,该限制很好地实现了命令以及脚本在受限shell中运行。 它为Linux中的bash shell提供了一个额外的安全层。

Linux之shell的切换

可以在shell解释器中直接输入shell名称进行切换

输入exit退出

参见下图:

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

在终端命令行界面中可以使用与文件管理相关的命令

root用户具有系统中的最高权限。由于Ubuntu系统默认是没有**root用户的,需要我们手工进行操作,在命令行界面下,或者在终端中输入如下命令:

sudo passwd 或者sudo passwd root

输入当前登录电脑上的密码。然后设置root密码,重复密码。参见下图

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

提示:sudo是Ubuntu系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。

 

可以使用”sudo adduser 用户名”新建用户。

 

删除用户使用“userdel 用户名”命令,最好将它留在系统上的文件也删除掉,可以使用“userdel -r 用户名”来实现。

 

重新设置普通用户密码

passwd 用户名

重新设置root用户密码

sudo passwd root

 

 

详细查看Ubuntu版本号

lsb_release -a

参见下图:

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

简洁查看ubuntu版本

cat /etc/issue

注意cat后有空格,参见下图:

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

显示linux的内核版本和系统是多少位的:X86_64代表系统是64位的

uname -a

参见下图:

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

 

显示linux的内核版本和gcc编译器版本号及linux变种的版本

cat /proc/version

参见下图:

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

linux中cat是 concatenate 的缩写,此令用以将文件、标准输入内容打印至标准输出,常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S停止滚屏;Ctrl+QQ回复滚屏;Ctrl+C终止该命令,并回到Shell提示符状态。

还能查看系统信息。

 

查看当前工作目录命令pwd

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

新建目录(文件夹)命令mkdir

例如、在当前工作目录中新建子目录test

mkdir test

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

列出文件夹下包含的文件信息命令ls

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

用cd命令进入/dev目录

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

列出文件的详细信息,如文件的类型、读写权限列表,创建者,创建时间,等,ls -l

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

其中drwxr-xr-x说明

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

第一个符号表明文件类型。在Linux系统中,一切皆文件。Linux系统中的文件类型:

文件类型

文件类型标识

普通文件

-

目录文件

d

块设备文件

b

字符设备文件

c

管道文件

p

套接字(socket)文件

s

符号链接文件

l

后面9位标明文件权限,第一个三位,是所有者(user)拥有的权限,接着3位代表的是组群(group)拥有的权限,最后3位代表其他人(other)拥有的权限。r 读权限read ,w 写权限write ,x 操作权限execute。

 

更改当前的工作目录命令cd

例如、更改当前的工作目录为 test

cd test

 

删除文件或目录命令rm

例如、删除 test目录

rm -r test

例如、删除test01.c文件

rm test01.c

 

 

查看文件内容cat

例如、查看文件test01.c内容

cat test01.c

 

 

查看所有进程

ps -ef

 

实时显示进程状态

top

按ctrl+c可以退出显示进程状态

 

查看环境变量

Env

Linux(Ubuntu 20.04 LTS)之shell使用基础教程

 

 

Linux用户身份切换

在日常工作中,尽量使用普通用户账号操作,当需要root权限的时候再通过身份切换的方式切换至root管理员,这样能保证系统的安全性。使用普通账号的安全性主要体现在两个方面:

防止因误操作而删除了系统重要文件;

创建一些系统账户专门用来启动某些服务,这样即使该服务被攻陷,系统仍然是安全的。

方式一:su

该命令可以将身份切换至指定账户,但需要输入该账户的密码。

命令格式

su [-lm] [-c 命令] username

若不加username则表示切换至root

使用su和su -均能切换至root账户,但不加-会使很多变量仍然保持切换前用户的变量,而加了-之后则参数将会完全变成root的参数,尤其是环境变量PATH,从而能够直接使用某些命令,而无需指定绝对路径。

若只想执行一个root权限才能执行的命令的时候,可以将命令直接写在-c的后面,这样无需切换身份,如:

su -c vim /etc/shadow

 

方式二:sudo

使用su切换身份需要直到root账号的密码,这样并不安全。为了提高安全性,我们可以使用sudo来执行需要root权限的功能。

 sudo由root指定,指定后用户只需输入自己账号的密码就能申请到root权限,而无需告诉任何人root密码,因此安全了不少。

命令格式

sudo [-b] [-u username] 需要执行的命令

-b:使后续的命令自行执行,而不与目前的shell产生影响。