1-shell命令简介 快捷键
shell
两层意思shell语言、shell解释器
在os接口的基础上进行了封装得到的命令,命令的本质是软件。
系统/shell命令-》shell解释器-》系统接口-》内核-》硬件
python-》python解释器-》系统接口-》内核-》硬件
应用程序(go/c/c++)-》系统接口-》内核-》硬件
其他语言可以直接与系统接口打交道。
shell是解释器的统称,bash是具体的一种解释器
shell可以实现对linux系统的管理,后期用shell语言写出的程序称为脚本程序,实现对linux的自动化管理,例如定时备份数据文件。
1.文件管理
2.用户、权限管理
3.进程管理
4.磁盘管理
5.网络管理
6.软件管理
命令行模式登录后立刻执行一个shell解释器,进入家目录,一个交互式环境。(图形界面不同)
非交互式
改密码
passwd root会出提示框让你输入密码,如何一步到位呢?即非交互式,将要做的事一行命令敲完,或者一个脚本文件执行。
echo "123" | passwd root --stdin
|的左边是一个进程,|右边是一个进程,而|就像是一个共享内存空间
echo 默认将右面的内容输入到屏幕上,有了|则丢入管道中,目的是让另一个命令拿。
命令:也是软件,只不过是封装的结果,运行的结果是进程,|左右两个进程内存彼此隔离。|提供共享内存机制。
命令运行完,进程就结束了,占用的内存空间被释放。
systemd这种祖宗进程不会关闭,除非服务器关闭。
shell命令格式
由命令 选项 参数组成。
命令:一个单词或多个单词缩写的组合,对应一个程序完成某功能。
选项:对命令的描述,更精细、精准的控制程序的运行,
参数:命令操作的对象。
分区
hdd的概念,在windows os层面为用户的是一个个文件夹,分区后的文件夹都是顶级文件夹。
在linux os中,没有那么复杂,顶级文件夹只有一个,就是根分区 /
而linux分区时有,/boot /swap / ,/boot /swap是/的子目录,那么如何存呢?
一个文件/boot/a.txt, /a/b/c.txt应该存到哪个分区呢?
linux os从头找,/a是不是挂载点,是则去那个挂载点的分区,都不是则放入根分区挂载点。
存是这样,找也一样。
bash快捷键
bash是一种shell
ctrl+c:强制终止命令程序的执行,例如top,或者命令不想执行了
ctrl+d:退出bash交互式环境。
ctrl+l:清屏
ctrl+a:行首
ctrl+e:行尾
ctrl+r:搜索历史命令,
history显示所有历史命令,!2执行历史命令序号2
history -c 清空内存中的历史命令
cat ~/.bash_history:历史文件保存在当前用户的私人文件下,退出当前用户时,会把内存里面的历史命令记录到文件中
alt+.:引用上一命令的的最后一个参数 ls -l /a/b/c.txt /a/1.txt /b/2.txt,远程连接工具xshell不好用,必须到真正终端上才好用,所以意义不大。
ls !$:!$表示取上一条命令的最后参数
ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.
ctrl+c是强制中断程序的执行,进程已经终止。
ctrl+z的是将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,
用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行.
命令别名
命令本身也是文件,存放在某个目录下
如which ls:查看命令文件的位置。
centos7中, rm -rf / 无法删根了,因为对命令做了处理。
alias rm='rm -i'做了提示
linux根据用户的权限不同,默认提供不同的命令别名。
取消别名:绝对路径运行命令,或者在开头加右斜杠
unalias 取消别名
命令分类
type echo:显示为内嵌,shell启动后自带的
type ls:显示为已被哈希,下次执行从哈希表中拿。
从环境变量PATH中找到的,能从内存取不从硬盘PATH找,执行过一次后缓存到哈希表中,hash命令后可以看到命令被命中几次。hash -r 清空hash缓存。
下载的三方包,如果不在PATH中,只能用绝对路径运行。
type ifconfig:显示为一个路径,是一个三方包nettools的安装路径,也会被哈希。
帮助命令
man cd:manual人工手册
help cd :help是一个命令。
cd --help:属于命令的一部分,看开发者是否有加入--help选项,没有则不好用。
命令存在优先级,绝对路径优先级最高,次之别名,所以别乱起别名。

浙公网安备 33010602011771号