linux总结
1.Linux 系统种类
红帽企业版 Linux :RHEL 是全世界内使用最广泛的 Linux 系统。它具有极强的性能与稳定性,是众多生成环境中使用的(收费的)系统。
Fedora :由红帽公司发布的桌面版系统套件,用户可以免费体验到最新的技术或工具,这些技术或工具在成熟后会被加入到 RHEL 系统中,因此 Fedora 也成为 RHEL 系统的试验版本。
CentOS :通过把 RHEL 系统重新编译并发布给用户免费使用的 Linux 系统,具有广泛的使用人群。
Deepin :中国发行,对优秀的开源成品进行集成和配置。
Debian :稳定性、安全性强,提供了免费的基础支持,在国外拥有很高的认可度和使用率。
Ubuntu :是一款派生自 Debian 的操作系统,对新款硬件具有极强的兼容能力。Ubuntu 与 Fedora 都是极其出色的 Linux 桌面系统,而且 Ubuntu 也可用于服务器领域。
2.快捷方式
通过上下方向键 ↑ ↓ 来调取过往执行过的 Linux 命令;
命令或参数仅需输入前几位就可以用 Tab 键补全;
Ctrl + R :用于查找使用过的命令(history 命令用于列出之前使用过的所有命令,然后输入 ! 命令加上编号( !2 )就可以直接执行该历史命令);
Ctrl + L:清除屏幕并将当前行移到页面顶部;
Ctrl + C:中止当前正在执行的命令;
Ctrl + U:从光标位置剪切到行首;
Ctrl + K:从光标位置剪切到行尾;
Ctrl + W:剪切光标左侧的一个单词;
Ctrl + Y:粘贴 Ctrl + U | K | Y 剪切的命令;
Ctrl + A:光标跳到命令行的开头;
Ctrl + E:光标跳到命令行的结尾;
Ctrl + D:关闭 Shell 会话;
3.重定向
把本来要显示在终端的命令结果,输送到别的地方(到文件中或者作为其他命令的输入)。
输出重定向 >
表示重定向到新的文件, cut -d , -f 1 notes.csv > name.csv ,它表示通过逗号剪切notes.csv 文件(剪切完有3个部分)获取第一个部分,重定向到 name.csv 文件。
输出重定向 >>
表示重定向到文件末尾,因此它不会像 > 命令这么危险,它是追加到文件的末尾(当然如果文件不存在,也会被创建)。
再次执行 cut -d , -f 1 notes.csv >> name.csv ,则会把名字追加到 name.csv 里面。
输出重定向 2>
标准错误输出
cat not_exist_file.csv > res.txt 2> errors.log
当我们 cat 一个文件时,会把文件内容打印到屏幕上,这个是标准输出;
当使用了 > res.txt 时,则不会打印到屏幕,会把标准输出写入文件 res.txt 文件中;
2> errors.log 当发生错误时会写入 errors.log 文件中。
输出重定向 2>>
标准错误输出(追加到文件末尾)同 >> 相似。
输出重定向 2>&1
标准输出和标准错误输出都重定向都一个地方
cat not_exist_file.csv > res.txt 2>&1 # 覆盖输出
cat not_exist_file.csv >> res.txt 2>&1 # 追加输出
目前为止,我们接触的命令的输入都来自命令的参数,其实命令的输入还可以来自文件或者键盘的输入。
图片
输入重定向 <
< 符号用于指定命令的输入。
cat < name.csv # 指定命令的输入为 name.csv复
虽然它的运行结果与 cat name.csv 一样,但是它们的原理却完全不同。
cat name.csv 表示 cat 命令接收的输入是 notes.csv 文件名,那么要先打开这个文件,然后打印出文件内容。
cat < name.csv 表示 cat 命令接收的输入直接是 notes.csv 这个文件的内容, cat命令只负责将其内容打印,打开文件并将文件内容传递给 cat 命令的工作则交给终端完成。
输入重定向 <<
将键盘的输入重定向为某个命令的输入。
sort -n << END # 输入这个命令之后,按下回车,终端就进入键盘输入模式,其中END为结束命令(这个可以自定义)
wc -m << END # 统计输入的单词复制代码
前台进程 & 后台进程
默认情况下,用户创建的进程都是前台进程,前台进程从键盘读取数据,并把处理结果输出到显示器。例如运行 top 命令,这就是一个一直运行的前台进程。
后台进程的优点是不必等待程序运行结束,就可以输入其它命令。在需要执行的命令后面添加& 符号,就表示启动一个后台进程。
&
启动后台进程,它的缺点是后台进程与终端相关联,一旦关闭终端,进程就自动结束了。
cp name.csv name-copy.csv &
nohup
使进程不受挂断(关闭终端等动作)的影响。
nohup cp name.csv name-copy.csv
nohup 命令也可以和 & 结合使用。
nohup cp name.csv name-copy.csv &
bg
使一个“后台暂停运行”的进程,状态改为“后台运行”。
bg %1 # 不加任何参数的情况下,bg命令会默认作用于最近的一个后台进程,如果添加参数则会作用于指定标号的进程
实际案例1:
- 执行 grep -r "log" / > grep_log 2>&1 命令启动一个前台进程,并且忘记添加 & 符号
- ctrl + z 使进程状态转为后台暂停
- 执行 bg 将命令转为后台运行
实际案例2:
前端开发时我们经常会执行 yarn start 启动项目
此时我们执行 ctrl + z 先使其暂停
然后执行 bg 使其转为后台运行
这样当前终端就空闲出来可以干其它事情了,如果想要唤醒它就使用 fg 命令即可(后面会讲)
jobs
显示当前终端后台进程状态。
[root@lion ~]# jobs
[1]+ Stopped top
[2]- Running grep --color=auto -r "log" / > grep_log 2>&1 &
fg
fg 使进程转为前台运行,用法和 bg 命令类似。
我们用一张图来表示前后台进程切换:
图片
我们可以使程序在后台运行,成为后台进程,这样在当前终端中我们就可以做其他事情了,而不必等待此进程运行结束。
守护进程
一个运行起来的程序被称为进程。在 Linux 中有些进程是特殊的,它不与任何进程关联,不论用户的身份如何,都在后台运行,这些进程的父进程是 PID 为1的进程, PID 为1的进程只在系统关闭时才会被销毁。它们会在后台一直运行等待分配工作。我们将这类进程称之为守护进程 daemon 。
守护进程的名字通常会在最后有一个 d ,表示 daemon 守护的意思,例如 systemd、httpd 。

浙公网安备 33010602011771号