=== 标准目录结构 ===
* bin --- 系统启动时需要的执行文件(二进制)
* boot --- 引导加载器所需文件,系统所需图片保存于此
* dev --- 设备文件目录
* home --- 存储普通用户的个人文件
* lib --- 根文件系统目录下程序和核心模块的公共库
* mnt --- 临时用于挂载文件系统的地方。一般情况下这个目录是空的,而在我们将要挂载分区时在这个目录下建立目录,再将我们将要访问的设备挂载在这个目录上, 这样我们就可访问文件了。
* proc --- 虚拟,存在linux内核镜像;保存所有内核参数以及系统配置信息
* root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。
* sbin --- 可执行程序的目录,但大多存放涉及系统管理的命令。只有root权限才能执行
* srv --- 服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内
* tmp --- 临时文件目录,系统启动后的临时文件存放在/var/tmp
* usr --- 应用程序存放目录
* var --- 放置系统执行过程中经常变化的文件,如随时更改的日志文件
==== 文件管理 ====
* cat ---查看文件内容
* head ---查看文件的前几行
* tail [-n]---查看文件后几行,一般用于查看日志
* nl ---显示的时候显示行号
* more、less ---分页显示文本文件内容,区别是less可以往回卷动
* mkdir ---创建目录
---参数mkdir:[-p]
*cp -r ---复制文件
* rm ---删除文件
---参数rm:[-r][-f]
* rmdir ---删除空目录
* find ---在文件系统中搜索某文件
==== 磁盘管理 ====
* ls、ll ---显示文件目录
---参数ls: [-a] [-l]
* stat ---显示指定文件的详细信息,比ls更详细,显示访问时间,修改时间等
* cd ---切换目录
cd ..---返回上一级目录
cd - ---返回上一次所在目录
* du ---查看目录大小
* df ---查看磁盘大小 df -h 带有单位显示磁盘信息
* tree ---树形结构显示目录,需要安装tree包
* pwd ---显示当前目录
==== 文档编辑 ====
* vi [文件名] ---打开文件
:w ---保存文件
:w text ---保存至yext文件
:q ---退出编辑器,如果文件已修改请使用下面的命令
:q! ---退出编辑器,且不保存
:wq ---退出编辑器,且保存文件
* wc [-c][-l][-w]---统计文本中行数、字数、字符数
* sort ---将文本文档内容排序
==== 系统管理 ====
* who: ---显示在线登陆用户
* whoami---显示当前用户名
* hostname ---显示主机名
* uname ---显示系统信息
* jps ---查看当前进程
* top ---动态显示当前耗费资源最多进程信息
---[-n] 更新的次数,完成后将会退出 top
---[-i] 不显示任何闲置 (idle) 或无用 (zombie) 的行程
---[-s] 安全模式,将交谈式指令取消, 避免潜在的危机
* ps ---显示瞬间行程 (process) 的动态
---参数:ps [-A](显示所有行程) [-w] [au](显示详细信息) [aux]
* vmstat -w 1 ----查看负载
* man ---显示所有命令
* kill --杀死进程
---参数:kill [-9] [-l] [-s]
* ./[文件名] ---启动程序(到文件所在目录下)
* chmod +x [文件名] ---将文件变成可执行文件
* netstat -nltp|grep [进程号pid] ---查看此进程所用端口号
* sudo ---以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行
---参数:sudo [-h] [-l] [-v][-k][-s][-H]
*shutdown
-r ---关机重启
-h ---关机不重启
now ---立刻关机
*halt ---关机
*reboot ---重启
* history ---查看历史执行命令
* echo $LANG ---查看当前操作系统的字符集
==== 系统设置 ====
* clear ---清屏
* tty ---显示终端机连接标准输入设备的文件名称
==== 压缩备份 ====
* bizp2 [文件名] ---压缩文件
bzip2 -k [文件名] ----压缩文件,保留源文件
bzip2 -d [文件名] ----解压缩文件
* zip 、gzip ---压缩文件,与bzip2用法相似
==== 软件包管理 ====
* dpkg (Debian Package)管理工具,软件包名以.deb后缀。这种方法适合系统不能联网的情况下。
---sudo dpkg -i tree.deb 安装软件
---sudo dpkg -r tree 卸载软件
* APT(Advanced Packaging Tool)高级软件工具。这种方法适合系统能够连接互联网的情况
---sudo apt-get install tree 安装tree
---sudo apt-get remove tree 卸载tree
---sudo apt-get update 更新软件
---sudo apt-get upgrade
* .rpm为RedHat使用的软件格式。在Ubuntu下不能直接使用,所以需要转换一下。
---sudo alien tree.rpm
=== 注意使用的命令 ===
==== 危险命令 ====
* 下面的命令会删除你硬盘上的文件,rm 的 -r 递归删除,和 -f 强制删除是很危险的选项,即使日常操作,也会遇到误删文件的情况
---sudo rm -rf / 删除根分区全部的文件
---sudo rm -rf . 删除当前目录下的所有文件
---sudo rm -rf * 同上
---rm -rf * or rm -rf *.* 同上
---rm -rf ~ / & 删除根分区和家目录,即使你不是root,家目录还是不能幸免
* mkfs.xxxx (xxxx 可以是 vfat、ext2、ext3、bfs……) 是格式化命令
---sudo mkfs.xxxx 运行此命令会擦除硬盘分区
* dd 是强大的 IO 输入输出定向工具,如果使用不当,破坏性很大,不仅仅是当前分区,当前系统,有的时候是整个硬盘
---sudo dd if=/dev/zero of=/dev/sda 全部硬盘清零。
---sudo dd if=/dev/sda of=/dev/sdb 用第一块硬盘的内容覆盖第二块的内容。
---sudo dd if=something of=/dev/sda 往硬盘上写垃圾数据
* fork 命令打开一个子进程,如果把 fork 放在无限循环中,最终子进程会耗尽所有内存资源
---:(){:|:&};:
---fork while fork
* 有时候,压缩包也是一个破坏来源,有的压缩包要求你解压到某个系统中已经存在的目录中,压缩包里面可能有成千上万的小文件,以各种文件名尝试覆盖你现有的文件。
==== 如何避免运行恶意程序 ====
* 不要用 root 作为日常使用的用户,上面的程序,如果当前用户不是 root,危害的波及范围就会小很多
* 要知道哪些命令是干什么用的,不知道的命令不要冒然运行。运行有潜在破坏能力的程序,要小心检查自己的输入
* 保证软件、脚本的来源正规
=== 参考 ===