操作系统的核心功能就是管理和控制计算机硬件、软件资源,以尽量合理、有效的方法组织多个用户共享各种资源,而Shell则是介于使用者和操作系统核心程序(Kernel)间的一个接口。在各种Linux发行版中,目前虽然已经提供了丰富的图形化接口,但是Shell仍然是一种非常方便、灵活的途径。
Linux中的Shell又被称为命令行,在这个命令行窗口中,用户输入指令,操作系统执行指令并将结果回显在屏幕上。
在Linux系统中,如果安装有图形界面,用户可以在图形界面中通过打开终端窗口的方式使用Shell;如果没有安装图形界面,可以直接在文字界面中使用Shell。
1. 使用终端窗口
打开终端窗口有两种方法:
第一种方法:右击桌面后选择“在终端中打开”。 打开的是图形窗口(终端窗口)
第二种方法:打开系统菜单”应用程序”——>”工具” —>”终端”。
登录之后,普通用户的命令行提示符以“$”结尾,超级用户则以“#”结尾。使用su命令可以在终端窗口中切换账户。
命令:su root 切换到root帐户
su sjh 切换到sjh帐户
注意:超级用户切换到普通用户时,不需要输入密码,普通用户切换到超级用户或普通用户时,需要输入密码。
2. 使用Shell提示符
纯命令行窗口(文字界面)
在Linux系统启动的最后定义了6个虚拟终端,可以供用户随时切换,切换时用Ctrl+Alt+F2 ~ Ctrl+Alt+F6组合键可以打开其中任意一个。不过,此时需要重新登录。
虚拟终端是一片黑的文字界面,终端窗口是一个白色的图形窗口。
返回原来的图形桌面环境:Ctrl+Alt+F1
CentOS 7.3中哪一个文件里面存储有系统支持的shell种类?/etc/shells
~:代表用户的主目录,由于当前登陆的用户是root,root的主目录是/root,则此处为/root
切换用户:su 用户名: 进入root账户,与进入sjh账户演示
su 与 su - 的区别在于: 前者只是切copy换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切百换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。度su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看问一下su和su -以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该答使用su -命令。
1.拷贝文件——cp [-n -i -r] 源文件 目标文件,可能会出现重名现象,可询问是否覆盖。
复制整个目录加上-r选项,-r是递归复制该目录及其下面的子目录和文件
3-拷贝当前文件夹.c后缀的文件
cp /etc/passwd /tmp
cp -r /etc/yum /tmp
cp *.c /home/sjh
2.移动文件——mv,与cp类似
4-实际上就是重命名操作
mv /tmp/passwd /etc
mv /tmp/yum /etc
mv *.c /home/sjh
mv test.txt test222.txt
3.文件和目录列表——ls [-a -A -d -l -i -Z ]
1-显示当前目录下的文件和目录名称
2-长格式显示当前目录下的文件和目录的详细信息(-l)
3-显示所有文件包括隐藏文件(-a)理解为all
4-显示这个文件自身的详细信息(-d)和inode索引号(-i)
ls
ls -l
ls - a /root
ls -dil /root
4.删除文件或目录——rm [-i f r],-r删除目录
1-只删除文件,不删除子目录,且征求意见
2-删除全部的东西,不征求意见
rm /tmp/*
rm -rf /tmp
5.创建目录——mkdir [-p]-p创建多级空目录
1-当前用户主目录下创建
mkdir ~/foo
mkdir -p zzti/cs/wl16 //创建三级空目录
6.删除空目录——rmdir类似mkdir,rmdir只能删除空目录,删除非空的用rm命令
rmdir foo
rmdir –p zzti/cs/wl16
删除非空目录用命令 rm -r dirname
7.查看当前工作目录——pwd
8.切换目录——cd
cd 等价于 cd ~ //进入当前用户的主目录
cd .. //进入当前目录的上一级目录,即当前目录的父目录
cd - //返回刚才的工作目录
cd / //进入根目录 这个是绝对路径1情况,其他是相对路径
cd /root //进入/root 这个是绝对路径2情况,其他是相对路径
9.查找文件或目录——find
find是最常见和最强大的查找命令,你可以使用它找到任何你想要的文件。
find的使用格式如下
find <指定目录> <指定条件> <指定动作>
<指定目录>:所要搜索的目录及其所有子目录。默认为当前目录。
<指定条件>:所要搜索的文件的特征。
<指定动作>:对搜索结果进行特定的处理。
如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。
find的使用实例:
find / –name wl11.txt //在根目录中查找名称为wl11.txt的文件。
find . -name ‘my*’ -ls //搜索当前目录(含子目录)中,所有文件名以my开头的文件,并列出详细信息。
find / -user sjh //在根目录中查找所有者为sjh的文件。
find / -perm +4000
find /etc -newer /etc/passwd
10.查找文件或目录——locate [-i] keyword
List item
locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/mlocate/mlocate.db),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
List item
locate命令的使用实例:
$ locate /etc/sh //搜索etc目录下所有以sh开头的文件。
$ locate ~/m //搜索用户主目录下,所有以m开头的文件。
$ locate -i ~/m //搜索用户主目录下,所有以m开头的文件,并且忽略大小写。
11.寻找“执行文件”——which [-a] command
根据PATH这个环境变量所规范的路径去查询“执行文件”的文件名。
例如:which ls
which ifconfig
which cd(找不着cd的原因是cd是bash内置的命令,使用type cd试试)
注意:which后面接的是完整文件名。
12.寻找特定文件——whereis
whereis [-bmsu] 文件或目录名
-b:只找二进制格式的文件
-m:只找在说明文件manual路径下的文件
-s:只找source源文件
-u:查找不在上述三个选项当中的其他特殊文件
例如:whereis ifconfig
whereis passwd
13.查询命令的作用——whatis 相当于man –f
例如:whatis ls(等价于man -f ls)
14.查看文件的类型——file
例如:file /bin/ls
运行级别3默认不启动X Window图形界面服务,运行级别5默认启动X Window图形界面
runlevel:返回两个数字,第一个为上一次的运行级别(没有上次返回的数为n),第二个为当前的运行级别。
切换成其他模式:init 3或init 5,或者是1。
温馨提示:千万不要0跟6,不要怪我没提醒你嗷~
因为单用户模式只能登陆root账户。reboot 可以重启电脑。
1.【Tab】按键:
①命令补全
②文件名或目录名补全
③连续按下两次【Tab】,显示以输入字符开头的所有命令
2.【Ctrl】+c按键:
①结束目前正在运行的程序
②取消当前命令行的编辑
3.【Ctrl】+d按键:
①结束键盘的输入
②让用户离开文字界面,相当于输入exit
③在命令行中向右删除,相当于按下Del键
4.【Ctrl】+l:终端清屏(实际上是下翻,使界面整洁)
5.【Ctrl】+z:将正在运行的程序送到后台
6.【Ctrl】+r:搜索历史命令
7.【Ctrl】+a:移动光标到所在行的行首
8.【Ctrl】+e:移动光标到所在行的行尾
9.【Ctrl】+u:输入了错误的命令,使用该快捷键会擦除从当前光标位置到行首的全部内容
10.【Ctrl】+k:输入了错误的命令,使用该快捷键会擦除从当前光标位置到行尾的全部内容
11.【Ctrl】+w:擦除光标位置前的单词(以空格划分);如果光标在一个单词本身上,它将擦除从光标位置到该单词词首的全部字母
12.【Ctrl】+y:粘贴使用Ctrl+w,Ctrl+u和Ctrl+k快捷键擦除的文本`
shell章节例题-中
CentOS 7.3默认情况下有两种主要的targets,它们是multi-user.target和( graphical.target )。
Cent OS 7.3 中默认使用的Shell是( /bin/bash )
在CentOS7.3中用来( targets )代替runlevel。
在CentOS 7.3中( multi-user.target )类似于runlevel 3。
在CentOS 7.3中( graphical.target )类似于runlevel 5。
在CentOS 7.3中查看当前默认的target可以使用命令(get-default)。
令电脑关机的命令Ashutdown B.poweroff C.halt
使用下面哪一条命令可以显示系统内核的版本号?( uanme -r )
只显示当天的年-月-日使用下面哪一条命令?(date +%Y-%m-%d)
下列命令中哪些可以用来查看文本文件( more cat head tail)
CentOS 7.3支持的五种shell中,哪一种shell不可以登录计算机( /sbin/nologin)
新建文件的命令有( touch ,cat,> ,vim )
linux系统支持的shell写在(/etc/shells)文件中,linux系统支持的shell有(5)种,目前使用的shell是(/bin/bash)
关机命令:init 0、halt、poweroff、shutdown –h 0;重启命令:init 6、reboot、shutdown –r +15。
使用locate命令查找之前应该首先使用(updatedb)命令更新数据库文件/var/lib/mlocate/mlocate.db