项目2 初试Shell
2.1 Shell概述
1.Shell是介于使用者和操作系统核心程序(Kernel)间的一个接口;是Linux的命令行
2.Shell
- Bourne Shell(/bin/sh,/bin/bash)
- C Shell(/bin/csh,/bin/tcsh)
- Korn Shell
3.Bash:包括早期的Bourne Shell和Korn Shell的所有功能,并且加入了C Shell的某些功能(它是各种Linux操作系统的默认Shell)
4.使用Shell方法
-
图形界面
- 终端窗口
- 虚拟终端(打开:Ctrl+Alt+F2或Ctrl+Alt+F6,返回:Ctrl+Alt+F1)
-
文字界面
5.终端前面的内容-- [root@sjh-com ~]#
- 当前登录用户名为root
- 主机名为sjh-com
- 当前目录为~(为主目录)
- #为提示符(超级用户,如果是 $提示符,则为普通用户)
6.切换账户的命令:su
命令格式:su [-] [用户名]
su 等价于 su root
su sjh
扩展部分: - 选项的作用
**彩蛋1**
2.2 文件及目录管理命令
命令列表
-
拷贝文件:cp
- 命令格式:cp [-f i r] 源文件 目标文件
- -f 表示直接覆盖
- -i 表示征求用户意见(y/n)
cp /etc/password /tmp
cp -r /etc/yum /tmp
-
移动文件:mv
- 命令格式:mv [-f i] 源文件 目标文件
mv /tmp/yum /etc
mv *.c /home/sjh
mv test.txt test2.txt
- 命令格式:mv [-f i] 源文件 目标文件
-
删除文件或目录:rm
- 命令格式:rm [-f -i -r] 文件名或目录名
rm /tmp/*
rm -rf /tmp/*
- 命令格式:rm [-f -i -r] 文件名或目录名
-
列出文件和目录:ls
- 命令格式:ls [-l i d a] [文件名或目录名]
ls
ls -l
ls -a /root
ls -dil /root
- 命令格式:ls [-l i d a] [文件名或目录名]
-
创建目录:mkdir
- 命令格式:mkdir [-p] 目录名
mkdir ~/tools
mkdir -p zzti/cs/wl15
- 命令格式:mkdir [-p] 目录名
-
删除空目录:rmdir
- 命令格式:rmdir [-p] 目录名
rmdir -p zzti/cs/wl15
- 命令格式:rmdir [-p] 目录名
-
查看当前工作目录:pwd
-
切换目录:cd
- 命令格式:cd [路径名]
cd等价于cd ~ //进入当前用户的主目录
cd .. //进入当前目录的上一级目录,即父目录
cd - //返回刚才的工作目录
cd / //进入根目录
cd /root //进入/root
cd /boot/grub
- 命令格式:cd [路径名]
-
查看文件和目录:find、locate
- find是最常见和最强大的查找命令,你可以使用它找到任何你想要的文件
+ 使用格式:find <指定目录> <指定条件> <指定动作>
-<指定目录>:所要搜索的目录及其所有子目录,默认为当前目录
-<指定条件>:所要搜索的文件的特征
-<指定动作>:对搜索结果进行特定的处理
如果什么参数都不加,find默认搜索当前目录及其子目录,并且不过滤任何结果
+ locate命令其实是“find -name”的另一种写法,但是要比后者快很多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/mlocate/mlocate.db),这个数据库含有本地所有文件信息。Linux自动创建该数据库,并每日自动更新一次,所以使用locate查不到最新变动过的文件。为避免,可以在使用locate前,先使用updatedb命令手动更新数据库
- find是最常见和最强大的查找命令,你可以使用它找到任何你想要的文件
-
寻找“执行文件”--which [-a] command
根据PATH这个环境变量所规范的路径去查询“执行文件”的文件名(注意:which后面接的是完整的文件名) -
寻找特定文件--whereis [-bmsu] 文件或目录名
-b:只找二进制格式的文件
-m:只找在说明文件manual路径下的文件
-s:只找source源文件
-u:查找不在上述三个选项中的其他类型文件 -
查询命令的作用--whatis(相当于man -f)
-
查看文件类型:file
- 命令格式:file 文件名
file /bin/ls
file /etc/passwd
- 命令格式:file 文件名
**彩蛋2**
2.3 Linux的运行级别
1.运行级别(runlevel):操作系统当前正在运行的功能级别,定义在/etc/inittab文件中
2.Linux的7种运行级别
0 halt 关机、代表系统停机状态
1 Single user mode 单用户模式,只支持root账户
2 Multiuser,without NFS 不支持网络文件系统的多用户模式
3 Full Multiuser mode 完全多用户模式
4 unused 系统未使用,用作保留
5 X11 图形界面的多用户模式
6 Reboot 重启
3.不同运行级别可以相互切换,本质上并没有级别功能差异
补:如果丢失了root账户的口令,可以让机器启动进入单用户模式,然后使用passwd命令来重置root的密码
4.运行级别原理
在目录/ect/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)
在/etc/rc.d下有7个名为rcN.d(N的取值为0~6)的目录,对应系统的7个运行级别
rcN.d目录下都是一些符号链接文件,这些文件都指向init.d目录下的service脚本文件,这些链接文件命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字
系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件:对于以K(Kill)开头的文件,系统将终止对应的服务;对于以S(Start)开头的文件,系统将启动对应的服务
5.运行级别相关操作
- 查看运行级别:runlevel
- 进入其他运行级别:init N(N的取值为0 1 2 3 4 5 6)
6.CentOS7.3中设置运行级别的命令
- 查看运行级别:systemctl get-default
- 修改为运行级别3:systemctl set-default multi-user.target
- 修改为运行级别5:systemctl set-default graphical.target
2.4 Linux下常用的快捷键
具体见下表
命令 | 功能 |
---|---|
Tab | 命令补全 |
文件名或路径补全 | |
连续按2次Tab键,显示已输入字符开头的所有命令、文件名或路径 | |
Ctrl+D | 退出终端 |
如处于编辑状态,则直接退出编辑状态 | |
从光标处向右删除 | |
Ctrl+C | 结束当前执行的命令 |
取消当前命令行的编辑 | |
Ctrl+L | 终端清屏 |
Ctrl+Z | 将正在运行的程序送到后台 |
Ctrl+R | 搜索历史命令 |
Ctrl+A | 移动光标到所在行的行首 |
Ctrl+E | 移动光标到所在行的行尾 |
Ctrl+U | 输入了错误的命令,使用该快捷键会擦除从当前光标位置到行首的全部内容 |
Ctrl+K | 输入了错误的命令,使用该快捷键会擦除从当前光标位置到行尾的全部内容 |
Ctrl+W | 擦除光标位置前的单词;如果光标在一个单词本身上,它将擦除从光标位置到该单词词首的全部字母 |
Ctrl+Y | 粘贴使用Ctrl+W、Ctrl+U和Ctrl+K快捷键擦除的文本 |
**彩蛋3**
未完,待续 ~