一、Linux历史
- Unix 1970年1月1日,即1970年又称为Unix元年。
- Linux 1990年诞生。
- Linux 于1991年加入了GNU(革奴计划),所以Linux的全称是:GNU/Linux。
- GCC 为C语言编译器。
二、Linux目录
目录 | 说明 |
/ | 正斜杠代表Linux的根目录。 |
/bin (binaries) | 这个目录存放二进制文件,但在Linux中二进制文件是可以被执行的。这个目录是给非root用户使用的。 |
/boot | 存放Linux引导启动的一些文件 |
/dev (Device) | 该目录存放Linux的外部设备文件,Linux中访问设备跟访问文件是相同的。 |
/etc | 存放系统配置文件,这是不指定目录情况下配置文件的默认目录。 |
/home | 存放所有非root用户的用户主目录集合。 |
/root | root用户的用户主目录 |
/sbin (super bin) | 同bin目录类似,只是这里存放的二进制文件只有超级管理员才能执行。 |
/usr (unix shared resources) | 存放系统应用程序,类似windows的Program Files目录。注:/usr/local/ 本地管理员程序安装目录。 |
/var (variable) | 存放可变的文件,如:系统运行文件(日志)或者是一些经常需要修改的文件。 |
/lib (Library) | 这个目录存放着系统最基本的动态链接库,几乎所有的应用程序都会用到这些库。 |
/lose+found | 系统非法关机(如:系统崩溃)把没有保存的文件就会放到该目录下。 |
/proc (Processes) | 虚拟文件系统,它是系统内存的映射,我们可以直接访问这个目录来获取系统信息。 |
/temp | 存放一些临时文件,是公用的临时文件存储点。 |
/opt (optional) | 这个给主机额外安装软件所摆放的目录,如:oracle、tomcat 等。 |
三、命令行(Shell)
- 常见的shell有:
- csh
- tcsh
- zsh
- bash (最常使用的)
四、Linux常用命令
1. 基本命令
指令:ls
作用:列出指定路径下的文档列表
语法:#ls [选项] 路径
常见选项:
- -l 使用长格式列出文件及目录信息
- -a 代表all,显示所有文件及目录(含隐藏文件,即以“.”开头的文件)
常见用法:
- #ls -l 路径
- #ls -la 路径
指令:clear
作用:清空当前屏幕中的全部命令(本质是没有清空的只是把这些内容顶到上面去了)
语法:#clear
快捷键:快捷键:ctrl + L
指令:su(switch user)
作用:切换用户
语法:#su 用户名
备注:不写用户名,则表示切换到root用户。
- 高权限用户 切换到 低权限用户不用输入密码。
- 低权限用户 切换到 高权限用户需要输入密码。
指令:cd(change directory)
作用:切换当前工作目录
语法:#cd 路径
常见用法:
- #cd ~ 切换到当前用户的用户主目录
- #cd - 切换到上一次的工作目录
- #cd .. 切换到上一级目录
注意:路径可以是相对路径也可以是绝对路径;相对路径:只要不是以“/”开头的就是相对路径;绝对路径:只要是以“/”开头的就是绝对路径。
指令:pwd(print work directory)
作用:打印当前工作路径
语法:#pwd
2. 文档操作
指令:touch
作用:创建文件
语法:#touch 文件名(创建到当前目录下就写文件名,若创建到其它目录下需要带上路径+文件名)
例如:
- #touch tem.txt -- 当前工作目录下
- #touch /var/tem.txt -- /var/ 目录下
指令:mkdir(make directory)
作用:创建目录
语法:#mkdir [选项] 路径
常见选项:
- -p 递归创建多级目录
- -v 显示目录的创建过程
指令:cp(copy)
作用:复制文档
语法:#cp [选项] 被复制文件的路径 文件黏贴的路径
常见选项:
- -r 标识递归(recursion)
备注:如果copy的是文件夹,则选项 -r 是必须的。
指令:mv(move)
作用:移动文档(剪切/重命名)
语法:#mv 被剪切文档的路径 文档黏贴的路径
指令:rm(remove)
作用:删除文档
语法:#rm [选项] 路径
常见选项:
- -r 标识递归(recursion)
- -f 表示强制(force), 即没有删除提示
例子:#rm -rf /var/test/ 删除/var/test/目录
3. 文档查看
指令:head
作用:查看文件头n行
语法:#head [选项] 文档路径
常见选项:
- -n 为数字,表示看多少行,不写默认是10行。
指令:tail
作用:查看文件末n行
语法:#tail [选项] 文档路径
常见选项:
- -n 为数字,表示看多少行,不写默认是10行。
指令:cat
作用:查看文档的全部内容(正序 - 从上至下)
语法:#cat 路径1 路径2 ...
指令:tac
作用:查看文档全部内容(倒序 - 从下至上)
语法:#tac 路径1 路径2 ...
指令:vim
作用:用vim编辑器打开文件(查看)
语法:#vim [参数] 文档路径
常见用法:
- #vim +数字 文档路径 -- 表示打开文档并将光标定位到某行
- #vim +/关键词 文档路径 -- 表示打开文档并高亮显示关键词(搜索)
4. 关机&重启
指令:reboot
作用:重启计算机
语法:#reboot
指令:shutdown
作用:关机
语法:#shutdown [选项] 参数
常见用法:
- #shutdown -h now -- 立即关机
- #shutdown -h +m -- m为minutes,为数字。如:+5 表示五分钟后关机
指令:halt
作用:关机(不切断电源)
语法:#halt
5. 进阶指令
指令:du(Disk Usage)
作用:显示指定目录或文件所占的磁盘空间
语法:#du [选项] 文档路径
常见选项:
- -s summarize 总计(即统计)
- -h 以易读方式显示文档大小
例如:查看/var/test/目录所占磁盘空间大小。 #du -sh /var/test/
指令:df(Disk Free)
作用:显示系统磁盘使用情况的统计信息
语法:#df [选项] 参数
常见选项:
- -h 以易读方式显示
- -m 以MB为单位显示
指令:free
作用:查看系统内存使用情况
语法:#free [选项]
常见选项:
- -m 以MB为单位显示
指令:find
作用:查找和搜索文件
语法:#find 查找范围 [选项] 选项值
常见选项:
- -name 按文件名查找,支持通配符(*)
- -type 按文件类型查找,常见类型:d - 目录、f - 文件、s - socket、l - 连接文件、c - 字符设备文件、b - 块状设备文件
- -size 按大小查找
- -user 按所有者查找
- -group 按用户组查找
- -atime 按文件最后读取时间查找,单位是:天
- -mtime 按文件最后变更时间查找(内容被修改)
- -ctime 按文件最后修改时间查找(元数据或权限发生变化)
示例说明:find /var/test/ {-atime/-mtime/-ctime/-amin/-mmin/-cmin} [-+] num
1)第二个参数(花括号内)分两部分:a、c、m 代表操作类型;time表示日期(单位:天),min 为分钟。
2)第三个参数 [-+],- 代表 num 内(未超过),+ 代表 num 外(超过),未填 - 或 + 表示第 num(刚刚好)。如单位天(time), -2 表示两天内,+2 表示两天前,2 表第2天。
指令:ps(process show)
作用:查看进程
语法:#ps [选项]
常见选项:
- -e 等价于 -a(All),表示全部
- -f 表示full,显示全部的列
例如:#ps -ef
指令:service
作用:服务操作,如:重启服务、停止服务、启动服务
语法:#service 服务名称 start/stop/restart
备注:service指令对服务名的存在是有要求的,服务名必须存在/etc/init.d/目录下。
扩展:由上可知服务的操作还可以是:#/etc/init.d/服务名称 start/stop/restart
指令:grep
作用:文本搜索
语法:#grep 关键字 文件路径/文件内容
常见选项:
- -v 排除
扩展用法:
- #grep -E "keyword1|keyword2..." 文件路径/文件内容。(备注:-E表示Extension,该语法表示多条件筛选,即使用正则表达式筛选)
- #egrep "keyword1|keyword2..." 文件路径/文件内容。(备注:跟上面作用相同)
指令:wc
作用:统计文档信息(行,单词数,字节数)
语法:#wc -lwc 文档路径
常见选项:
- -l 行数(Lines)
- -w 单词数(words)
- -c 字节数(chars)
备注:-lwc选项的顺序不影响结果输出的顺序,结果顺序一定是:行、单词、字节。
指令:|(管道)
作用:批处理命令连接执行
语法:指令1 | 指令2...(备注:指令1要求在终端中有输出内容,指令2要求有内容输入的指令)
管道的核心:管道前面指令的输出其实就是管道后面指令的输入
指令:exec
作用:调用并执行指定的命令
语法:#exec [选项] 参数
常见选项:
- -c 在空环境中执行指定的命令
指令:xargs(eXtended ARGuments)
作用:过滤器,xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。
语法:xargs [参数]
常见选项:
- -n 多行输出
- -d 自定义一个边界符
- -I 指定一个替换字符串
- -t 打印xargs执行的命令
- -p 执行每一个命令时弹出确认
五、Vim编辑器
vi/vim中存在三种模式(大众认知):命令模式、编辑模式(输入模式)、末行模式(尾行模式)。
- 命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键(命令)进行一些操作,如:删除行、复制行、移动光标、粘贴等。这也是打开文件默认进入的模式。
- 编辑模式:在该模式下可以对文件的内容进行编辑。
- 末行模式:可以在末行输入命令来对文件进行操作,如:搜索、替换、保存、退出、撤销、高亮等。
Vim打开文件的方式:
- #vim 文件路径 作用:打开指定的文件,可以是不存在的,不存在即新建。
- #vim +数字 文件路径 作用:打开指定文件,并将光标移动到指定行。
- #vim +/关键字 文件路径 作用:打开指定文件 ,并高亮显示关键字(即搜索)。
1)命令模式
光标移动:
- 光标移动到行数,快捷键:shift + ^(6)。
- 光标移动到行尾,快捷键:shift + $(4)。
- 光标移动到首行行数,按键:gg。
- 光标移动到末行行数,按键:G。
- 快速定位到指定行,按钮:数字 + G。
翻屏:
- 向上翻看,快捷键:ctrl + b (before) 或 pgup
- 向下翻看,快捷键:ctrl + f (after)或 pgdn
复制:
- 复制光标所在的行,按钮:yy
- 以光标行为准向下复制指定行,按键:数字 + yy
粘贴:
- 按键 p ,将复制内容粘贴在光标所在行的下一行。
- 按钮 P ,将复制内容粘贴在光标所在行的上一行。
剪切/删除:
- 剪切/删除光标所在行(下一行会上移),按键:dd。
- 剪切/删除以光标所在行为准,向下剪切/删除指定行,按键:数字 + dd。
- 剪切/删除光标所在行,但下一行不会上移,按键:D。(备注:不支持 数字 + D)
撤销/恢复:
- 撤销,按键:u(undo), 或进入末行模式输入(:u)。
- 恢复,按键:ctrl + r(redo),恢复之前的撤销操作,即撤销多了。
2)编辑模式
进入方式:
- i: 在光标所在的字符前开始插入。
- a: 在光标所在的字符后开始插入。
- o: 在光标所在行的下面另起新行插入。
- I: 在光标所在行的行首插入,行首如果有空格则在空格之后插入。
- A: 在光标所在行的行尾开始插入。
- O: 在光标所在行的上面另起一行开始插入。
- S: 删除光标所在行并开始插入。
-
- 末行模式进入的特征:光标在最后一行上。
- 编辑模式进入的特征:在最后一行有了类似 "---插入(INSERT)---"。
- 末行模式和编辑模式之间无法直接切换,必须经过命令模式中转。
3)末行模式
保存(write):
- 输入 :w ,保存文件
- 输入 :w 路径,另存为
退出(quit):
- 输入 :q ,退出文件(注:默认情况下需对已修改的文件进行保存操作:w,才能退出)
保存并退出:
- 输入 :wq , 保存并且退出。
强制(!):
- 输入 :q! ,表示强制退出,刚才做的修改操作不做保存。
搜索:
- 输入 :/关键字 ,再按下回车。(备注:按键 / 也是进入末行模式的方式之一)
- 在搜索结果中(上面操作),按键 n 切换到下一个结果;按键 N 切换到上一个结果。
- 如果要取消搜索高亮,则输入 :nohl ,即 no highlight。
替换:
- :s/搜索关键字/要替换的新内容 替换光标所在行的第一处符合条件的内容。
- :s/搜索关键字/要替换的新内容/g 替换光标所在行的全部符合条件的内容。
- :%s/搜索关键字/要替换的新内容 替换整个文档每一行第一处符合条件的内容。
- :%s/搜索关键字/要替换的新内容/g 替换整个文档中符合条件的内容。
备注:% ----- 表示整个文件;g ----- 表示全局(global)。
行号:
- 显示行号输入 :set nu ,代表 set number
- 取消行号输入 :set nonu,代表 set no number
备注:要想永久显示行号,则需要对Vim进行配置,其中建议创建文件:“~/.vimrc”,该文件内容为:set nu 然后保存即可。改配置是针对用户的,每个用户的主目录下可以自己配置一个独立的.vimrc文件。
4)部分命令模式操作可使用末行模式实现
复制:
- 语法,: 开始行号,结束行号 y,例::1,10y。
剪切/删除:
- 语法,:开始行号,结束行号d,例::1,10d。
复制粘贴:
- 语法,:开始行号,结束行号 co 粘贴开始行号,例::1,10 co 15。
剪切粘贴:
- 语法,:开始行号,结果行号 m 粘贴开始行号,例::1,10 m 15。
5)Vim异常退出
什么是异常退出?即在编辑文件后最后没有正常保存退出,而是遇到突然关闭(关闭终端、断电等),再次进入到上次编辑的文件就会显示异常退出信息。
解决方案:1. 按照提示操作进行;2. 删除 .文件名.swp 文件即可,这个文件相当于我们windows下操作word生成的临时文件一样,删掉就能恢复正常。
六、用户与用户组