Linux概述
Linux是一个通用操作系统。一个操作系统要负责任务调度、内存分配、处理外围设备I/O等操作。操作系统通常由内核(运行其他程序,管理像磁盘、打印机等硬件设备的核心程序)和系统程序(设备驱动、底层库、shell、服务程序等)两部分组成。
Linux内核是芬兰人Linus Torvalds开发的,于1991年9月发布。而Linux操作系统作为Internet时代的产物,它是由全世界许多开发者共同合作开发的,是一个自由的操作系统。
Linux系统的优点(熟知)
- 通用操作系统,不跟特定的硬件绑定。
- 用c语言编写,移植性高,有内核编程接口。
- 支持多用户和多任务,支持安全的分层文件系统。
- 大量的实用程序,完善的网络功能以及强大的支持文档。
- 可靠的安全性和良好的稳定性,对开发者更友好。
Linux系统的发行版本
- Redhat
- Ubuntu
- CentOS
- Fedora
- Debin
- openSUSE
基础命令
Linux系统的命令通常都是一下所示格式:
命令名称[命令参数] 【命令对象】
- 获取登陆信息 -w / who /last
- 查看自己使用的Shell - ps
- 查看命令的说明 -whatis
- 查看命令的位置 -which / whereis
- 查看帮助文档 -man / info / apropos
- 切换用户 - su
- 以管理员身份执行命令 - sudo
- 登入登出相关 - logout / exit / adduser / userdel / passwd / ssh
- 查看系统和主机名 -uname / hostname.
- reboot / init 6 / shutdown / init 0 .
- 查看历史命令 - history。
实用程序
文件和文件夹操作
- 创建/删除目录 -mkdir / rmdir
- 创建/删除文件 -touch / rm
- touch命令用于创建空白文件或修改文件时间。在Linux系统中一个文件有三种时间:
- 更改内容的时间 -mtime。
- 更改权限的时间 -ctime。
- 最后访问时间 -atime。
- rm的几个重要参数:
- -i : 交互式删除,每个删除项都会进行询问
- -r : 删除目录并递归删除目录中的文件和目录
- -f : 强制删除,忽略不存在的文件,没有任何提示
- touch命令用于创建空白文件或修改文件时间。在Linux系统中一个文件有三种时间:
- 切换和查看当前工作目录 - cd /pwd
- 查看目录内容 -ls
- -l : 以长格式查看文件和目录
- -a : 显示以点开头的文件和目录(隐藏文件)
- -r : 遇到目录要进行递归展开(继续列出目录下面的文件和目录)
- -d:只列出目录,不列出其他内容
- -S/-t:按大小/时间排序
- 查看文件内容 -cat / head / tail / more / less .
- 拷贝/移动文件 -cp / mv 。
- 查找文件和查找内容 - find / grep。
说明:grep在搜索字符串时可以使用正则表达式,如果需要使用正则表达式可以用grep -E或者直接使用egrep。 - 链接 -ln
链接可以分为硬链接和软链接(符号链接)。硬链接可以认为是一个指向文件数据的指针,就像Python中对象的引用计数,每添加一个硬链接,文件的对应链接数就增加1,只有当文件的链接数为0时,文件所对应的存储空间才有可能被其他文件覆盖。软链接类似于Windows系统下的快捷方式,当软链接链接的文件被删除时,软链接也就失效了。 - 压缩 / 解压缩和归档 / 解归档 - gzip / gunzip /xz ( -xvf) / tar
- 其他工具 -sort / uniq / diff / tr / cut / paste / file / wc
管道和重定向
- 管道的使用 - | 。(把前面命令输出的结果作为后一条命令的开头)
例子:查找当前目录下文件的个数。
find ./ | wc -l
例子:查找record。log中包含AAA,但不包含BBB的记录的总数
cat record.log | grep AAA |grep -v BBB | wc -l - 输出重定向和错误重定向 -> / >> /2>.
例子:cat readme.txt | sort | uniq > result.txt - 输入重定向 -<。