Linux(Ubuntu 20.04 LTS)之shell使用基础教程
我在此使用的是VMware虚拟机安装的Ubuntu 20.04 LTS。
Shell是linux系统的用户界面。Shell即是一个命令解释器,它解释由用户输入的命令并且把它们送到内核去执行。又是一种程序设计语言,具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,允许用户编写由shell命令组成的程序。
在ubuntu系统桌面中按下Ctrl+Alt+T组合键,可打开shell(Terminal窗口),参见下图:
其中$是终端命令提示符
@和:是分隔符号,#或$是命令提示符,如果是超级用户(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
可以通过 cat /etc/shells 来查看 linux 支持的 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退出
参见下图:
在终端命令行界面中可以使用与文件管理相关的命令
root用户具有系统中的最高权限。由于Ubuntu系统默认是没有**root用户的,需要我们手工进行操作,在命令行界面下,或者在终端中输入如下命令:
sudo passwd 或者sudo passwd root
输入当前登录电脑上的密码。然后设置root密码,重复密码。参见下图
提示:sudo是Ubuntu系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。
可以使用”sudo adduser 用户名”新建用户。
删除用户使用“userdel 用户名”命令,最好将它留在系统上的文件也删除掉,可以使用“userdel -r 用户名”来实现。
重新设置普通用户密码
passwd 用户名
重新设置root用户密码
sudo passwd root
详细查看Ubuntu版本号:
lsb_release -a
参见下图:
简洁查看ubuntu版本
cat /etc/issue
注意cat后有空格,参见下图:
显示linux的内核版本和系统是多少位的:X86_64代表系统是64位的
uname -a
参见下图:
显示linux的内核版本和gcc编译器版本号及linux变种的版本
cat /proc/version
参见下图:
linux中cat是 concatenate 的缩写,此令用以将文件、标准输入内容打印至标准输出,常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S停止滚屏;Ctrl+QQ回复滚屏;Ctrl+C终止该命令,并回到Shell提示符状态。
还能查看系统信息。
查看当前工作目录命令pwd
新建目录(文件夹)命令mkdir
例如、在当前工作目录中新建子目录test
mkdir test
列出文件夹下包含的文件信息命令ls
用cd命令进入/dev目录
列出文件的详细信息,如文件的类型、读写权限列表,创建者,创建时间,等,ls -l
其中drwxr-xr-x说明
第一个符号表明文件类型。在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用户身份切换
在日常工作中,尽量使用普通用户账号操作,当需要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产生影响。