操作系统小知识
现代操作系统通常都有一个使用绘图设备的图形用户界面(GUI),并附加如鼠标或触控版等有别于减半的输入设备。旧的OS或性能导向的服务器通常不会有如此亲切的接口,而是以命令行界面(CLI)加上键盘为输入设备。以上两种接口其实都是所谓的壳,其功能为接受并处理用户指令(例如按下一个按钮,或在命令提示列上键入指令)
shell入门
一切都是文件
在Linux系统中,一切都是文件。对于Linux来说,文件只是比特和字节流。Linux并不关心这些二进制和字节最终组成了什么格式;相反,在Linux上运行的程序才关心它们组成的格式。
文件名的最大长度
Linux(和�Unix)文件名最多可以长达255个字符。事实上,将文件名的长度控制在80个字符以内比较好,因为大部分显示终端都是这个宽度,文件名能在一行显示完,不用换行。
文件名区分大小写
与Windows和Mac OS不同,Linux对于文件名是区分大小写的。区分大小写也意味着必须准确输入命令和文件名。例如,如果要运行rm命令来删除文件,就不要输入RM,Rm或者rM,只能输入rm。
命名时不要使用的特殊字符
在Linux中能够安全使用的字符:数字,字母(大写字母和小写字母),圆点(.),以及下划线(_)。键盘上的有些其他字符也可以正常使用;有些虽然能够使用,但实际情况则比较复杂,因为shell对它们的解释方法可能各不相同;而还有一些则根本不能使用。
如果你愿意,也可以在文件名中使用空格,如books to buy.txt,但是必须得让shell知道这些空格是文件名的一部分。shell通常是将空格作为参数之间的分隔符。试图直接删除books to buy.txt会让shell产生误解,它尝试先删除名为books的文件,然后删除名为to的文件,最后删除名为buy.txt的文件。最终的结果是你不能删除books to buy.txt这个文件,反而可能无意间删除那些原本不想删除的文件。
| 符号 | 使用方法 |
|---|---|
| / | 绝对不能使用。不能被转义 |
| \ | 必须转义。避免使用 |
| - | 不能作为文件名或者目录名的开始 |
| [ ] | 必须转义。避免使用 |
| { } | 必须转义。避免使用 |
| * | 必须转义。避免使用 |
| ? | 必须转义。避免使用 |
| ' | 必须转义。避免使用 |
| " | 必须转义。避免使用 |
通配符及其含义
| 通配符 | 含义 |
|---|---|
| * | 匹配0或多个任意字符 |
| ? | 匹配单个字符 |
| [ ] | 可以匹配一组单个字符(例如,[12]) ,或者是匹配用连字符("-")指定的某一范围内的字符(例如,[1-3]) |
基本命令
| 命令 | 作用 |
|---|---|
| ls | 列出文件和文件夹 |
| ls music(也可写其他文件名) | 列出其他文件名的内容 |
| ls ~/videos/*.wmv | 使用通配符列出文件夹的内容 |
| ls -R | 查看多个子目录的内容 |
| ls -l | 以单独一列显示内容 |
| ls -m | 用逗号分隔的列表显示内容 |
| ls -a | 查看隐藏的文件和文件夹 |
| ls -F | 显示文件的类型 |
| ls -l | 显示权限、所有者等详细信息 |
| ls -r | 以相反的顺序显示列表内容 |
| ls -X | 按文件的拓展名排序 |
| ls -t | 按日期和时间排序 |
| ls -S | 按文件的大小进行排序 |
| ls -h | 用K,M和G显示文件大小 |
| pwd(print working directory) | 显示当前目录的路径 |
| cd | 切换到不同的目录 |
| cd ~ | 切换到home目录 |
| cd - | 切换到以前的目录 |
| touch | 将文件时间修改为当前时间,若文件不存在,它将会使用你指定的文件名来生成一个空文件 |
| mkdir | 创建新的目录 |
| mkdir -p | 创建新目录和任何必要的子目录 |
| cp | 复制文件 |
| cp * | 使用通配符复制文件 |
| cp -v | 复制文件时显示执行过程 |
| cp -i | 防止复制时覆盖重要的文件 |
| cp -R | 复制目录 |
| cp -a | 复制文件到其他目录以作为完整备份 |
| mv | 移动和重命名文件 |
| rm | 删除文件 |
| rm * | 使用通配符一次删除多个文件 |
| rm -v | 删除文件时显示执行过程 |
| rm -i | 防止删除重要文件 |
| rmdir | 删除空目录 |
| rm -Rf | 删除文件和非空的目录 |
参考资料
[操作系统-维基百科]https://zh.wikipedia.org/wiki/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F)
图书《Linux命令速查手册》 作者 : Scott Granneman
