linux系统
shell和bash的区别
- sh 跟bash的区别,实际上是bash有没开启POSIX模式的区别
- sh是bash的一种特殊的模式,sh就是开启了POSIX标准的bash, /bin/sh 相当于 /bin/bash —posix
- Linux系统上/bin/sh往往是指向/bin/bash的符号链接
ln -s /bin/bash /bin/sh
- sh 遵循POSIX规范:“当某行代码出错时,不继续往下解释”。bash 就算出错,也会继续向下执行。
shell中&和&&区别
- 使用&来实现并发效果时,实际上是把&左侧的命令丢入后台运行,右侧剩余命令看做整体任务在前台运行,以此来实现并发效果。
- 而&&是串行执行两侧命令,先执行完左侧后再执行右侧。
shell中$(( ))
、$( )
、“与${ }
的区别
Shell 输入/输出重定向
yum和apt-get的区别
- linux系统基本上分两大类:
- 1.RedHat系列:Redhat、Centos、Fedora等
- 2.Debian系列:Debian、Ubuntu等
- RedHat 系列
- 1 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
- 2 包管理工具 yum
- 3 支持tar包
- Debian系列
- 1 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
- 2 包管理工具 apt-get
- 3 支持tar包
yum update和yum upgrade的区别
- yum update和yum upgrade的功能都是一样的,都是将需要更新的package更新到源中的最新版
- 唯一不同的是,yum upgrade会删除旧版本的package,而yum update则会保留,生产环境建议用update
Linux /usr/bin与/usr/local/bin的区别
首先注意usr 指 Unix System Resource,而不是User
- /usr/bin下面的都是系统预装的可执行程序,会随着系统升级而改变。
- /usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件。
- 如果两个目录下有相同的可执行程序,谁优先执行受到PATH环境变量的影响,比如我的一台服务器的PATH变量为echo $PATH
curl和wget区别
- wget是个专职的下载利器,简单,专一,极致
- curl可以下载,但是长项不在于下载,而在于模拟提交web数据,POST/GET请求,调试网页,等等。
- 在下载上,wget可以递归,支持断点;而curl支持URL中加入变量,因此可以批量下载。
- 建议用wget来下载文件,加 -c选项不怕断网;使用curl 来跟网站的API 交互,简便清晰。
which,whereis,locate,find的区别
- which:
常用于查找可直接执行的命令
。只能查找可执行文件,该命令基本只在$PATH路径中搜索,查找范围最小,查找速度快。默认只返回第一个匹配的文件路径,通过选项 -a 可以返回所有匹配结果。 - whereis:
不只可以查找命令,其他文件类型都可以
(man中说只能查命令、源文件和man文件,实际测试可以查大多数文件)。在$PATH路径基础上增加了一些系统目录的查找,查找范围比which稍大,查找速度快。可以通过 -b 选项,限定只搜索二进制文件。 - locate:
超快速查找任意文件
。它会从linux内置的索引数据库查找文件的路径,索引速度超快。刚刚新建的文件可能需要一定时间才能加入该索引数据库,可以通过执行updatedb命令来强制更新一次索引,这样确保不会遗漏文件。该命令通常会返回大量匹配项,可以使用 -r 选项通过正则表达式来精确匹配。 - find:
直接搜索整个文件目录
,默认直接从根目录开始搜索,建议在以上命令都无法解决问题时才用它
,功能最强大但速度超慢。除非你指定一个很小的搜索范围。通过 -name 选项指定要查找的文件名,支持通配符。