1. Linux学习路线
- 操作命令
- 进程
- 进程之间进行数据的交互
- 线程
- 网络(跨机器的数据交互)
2. Linux历史
百度上全有。
3. 操作系统定位
操作系统是管理计算机软件与硬件的系统软件。
操作系统接口->程序员使用->函数(API Aplication Programning Interface) ->运维使用->命令 ->普通用户使用->图像界面
4. Linux基本命令
- 1. ls [选项] [目录或文件]
ls[list]:查看目录下面的内容(不一定为当前目录)
1.
ls 文件目录 :查看指定目录
2.
ls -a : 显示目录所有的内容(可以查看到隐藏文件,Linux下隐藏文件以"."开头,在命名时以"."开头的文件就是隐藏文件)
ls -l :详细列出当前目录下文件信息,建立时间,行数,由谁创建等等信息
ls -l -h 文件名:文件大小以千字节KB单位,文件过小时,还是以字节为单位
ls -F :显示该目录下文件类型
"filename1*" :可执行文件
"filename2/" :目录
"filename3@" :符号链接
"filename4I" :FIFOs
"filename5=" :套接字
ls -k 文件名 : 显示目录中包含文件
ls -t 文件名 : 以时间排序(由近到远)显示目录中的文件
ls -R 文件名 : 列出所有子目录下的文件(递归)
ls -r :逆序显示
ls -1 :一列显示,一行只输出一个文件
- 2. pwd[print working dir]
查看当前工作目录
- 3. cd[change dir]
cd:改变当前所在位置
1.
cd / :进入根目录
/bin 二进制可执行命令。该目录下存放着普通用户的命令
/dev 系统的设备文件,即设备的驱动程序
/home 用户主目录的基点
/lost-found 这个目录平时是空的,当系统非正常关机而留下的“无家可归”的文件便会储存在这里
/misc 储存着一些特殊的字符的定义
/net 存放着和网络相关的一些文件
/proc 存放着用户与内核的交互信息
/sbin 系统的管理命令,这里存放的是系统管理员使用的程序
/srv 系统启动服务时可以访问的数据库目录
/tmp 临时文件,重启后自动清空
/var 某些大文件的溢出区,比如各种服务的日志文件
/boot 启动linux的核心文件
/etc 系统所有的配置文件都在这个目录中
/lib 存放着和系统运行相关的库文件
/media 存放着可移除的设备,比如软盘,光盘
/mnt 挂载目录,是系统管理员临时安装文件的系统安装点
/opt (option : 自由选择)主要给源码安装软件时选择的安装目录位置
/root 超级用户的目录
/selinux 主要用来加固操作系统,提高系统的安全性
/sys 管理设备文件
/usr 最大的目录,存放着应用程序和文件
2.
cd 路径 :
绝对目录
cd 所要去的目录
相对目录
cd .. 返回上一级目录
cd ../../.. 可以一直返回,直到根目录
cd . 返回本级目录
每个文件中都会有"."".."两个目录
".":本目录
"..":上一级目录
3.
cd :缺省值,直接回到当前用户目录下
root下回到root目录下
4.
cd - :切换到上一次的目录
- 4. whoami
whoami:查看当前用户是哪一个
who am i : 查看更多的当前用户信息
- 5. touch 文件名
创建文件(不是目录)
- 6. mkdir(->make dir) 目录名
创建一个目录
mkdir -p 路径:若路径中的某些目录上不存在,加上-p选项,系统将自动建立那些并不存在的目录,即可以一次建立多层目录结构
mkdir -p a/b/c //在当前目录下递归建立a/b/c目录
mkdir -p /a/b/c //在根目录下建立
- 7. rmdir 目录名
删除空目录
-p :当子目录被删除后,其父目录若变为空目录,就继续递归删除
//rmdir 只删除空目录
- 8. rm 文件名/目录名
删除文件或目录
1.
rm -r(recursive递归) 目录名 :递归删除
// 目录中每个文件的删除都需要确认删除(root下),麻烦
2.
rm -r -f 目录名 :强制递归删除,不进行删除确认
3.
rm -f :技术文件属性为只读(写保护),也直接删除
- 9. tab
自动补全,补全命令或者文件名
- 10. man(manual) 命令
linux帮助手册
j 向下滚动
k 向上滚动
q 退出
1.
man man :manual手册的帮助手册
// man手册目录及举例
// man num 关键字 ,只在当前章节下查找
1. 命令
man 1 ls:查看ls命令的帮助手册
2. 系统API
man 2 fork:查看fork函数的帮助手册
3. C库函数
man 3 printf:查看printf函数的帮助手册
4. 特殊文件,驱动相关
5. 配置文件相关
6. 游戏相关
7. 某一个主题
8. 系统管理员(root)使用的命令
- 11. 关机(root下)
shutdown -h now //给该机器下所有用户广播关机提示
↓调用
init 0 //关机启动,即为关机
init 1 //单用户,登陆不需要密码
init 2 //启动除了网络以外的服务(当然不启动图形界面)
init 3 //启动除了图形界面以外的服务
init 4 unused
init 5 x-window//图形化界面
init 6 //重启
↓调用
halt -p //关闭电源
一般关机使用halt -p即可
- 12. cp [选项] src dest
把src拷贝到dest,复制文件或目录
cp ../test . -r :递归拷贝上一届目录中的test目录到当前目录
-r/R :递归拷贝,将指定目录下的文件及子目录一并处理
- 13. su - username
切换用户到username,从普通用户切换到root用户需要root密码;从root用户切换到普通用户不需要密码,再切换到root时,直接 su
exit :中止当前用户
- 14. mv
mv src sest :从src移动到dest
mv name newname :把文件name改名为newname
可以在移动的同时进行改名
mv ./a ../b
1.
-f : 如果目标文件存在,不会询问直接覆盖
2.
-i : 如果目标文件存在,询问是否覆盖
- 15. cat [选项] [file]
查看file的内容,如果无file,则输入来自键盘文件(一切皆文件),将结果写到显示器文件
tac [file] : 逆序显示
-n :对输出的所有行进行编号
-s :不输出多行空行
-b :对非空输出行进行编号(文件中如果有多行空行,只输出一行空行)
- 16. more file
分屏显示,会将内容一次性加载到内存中
-n :对输出的所有行进行编号
"空格"向下翻屏
"b" 向上翻屏
"Q" 退出
- 17. less file
阅读前不会全部加载(高效)
/ :向后查找内容
?:向前查找内容
-i :忽略查找时的大小写
n :重复前一个查找
N :反向重复前一个查找
-N :显示行号
"空格"向下翻屏
"b" 向上翻屏
"Q" 退出
- 18. head [-n 行数L]
显示该文件前L行,缺省显示十行
- 19. tail [-n 行数L]
显示该文件后L行,缺省显示十行
-f :循环读取
- 20. 输出重定向
//echo "输入内容" :将输入内容显示到屏幕
1.
"输入内容" > file
重新定向输出内容的目标位置(目标位置内容被覆盖)
2.
"输入内容" >> file
重新定向输出内容的目标位置(在目标位置原有内容后追加,不覆盖)
若重定向文件不存在,则创建
- 21. ”|” 管道
1 | 2 :将1的执行结果放到管道,2从管道里取出数据继续进行处理
KISS原则的核心,使用管道将单一的命令组合在一起形成强大的功能
- 22. seq start end
输出从start开始到end为止的数字序列
- 23. wc(word count) file
统计文件中行数,单词,字符的个数
-l :行数
-c :字符数
-w :单词数
- 24. date
显示年月日星期时间时区
1.
date +格式 :自定义格式输出,格式符使用时查询 man date
%Y 年
%m 月
%d 日
......
2.
格式中如果有自定义符号,需在格式两侧加""
date +"%Y-%m-%d" ==>年-月-日
3.
时间戳 date +%s
date -d @时间戳 :将时间戳转化为时间
- 25. cal
显示当前月历(阳历)
cal -3 :显示前一,当前,后一月月历
cal year :显示某一年年历
cal -j year :将year年年历按天数顺序显示出来
- 26. find
查找文件
find 路径 搜索条件(按名字,修改时间,文件大小等各种搜索条件)
1.
查找库文件 stdarg.h
find /usr/include/ -name "stdarg.h"
2.
找到一个星期以前被修改过的日志文件
find . -mtime 7 -name "*.log"
如果找到后,还需要执行动作,则在命令之后紧接
-exec 命令 {} \;
若执行的动作每次都需要加上提醒,则
-ok 命令 {} \;
- 27. grep 要找的范围 文件
在指定范围中查找特定内容,这个内容可以是文件名也可以是文件的内容
1.
xargs
xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行
2.
常用组合
find . -name "*.c" | xargs grep "main"
查找当前目录下所有.c文件中的"main"
3.
grep -n :输出行号
- 28. tar
-c :建立一个压缩文件的参数指令
-x :解开一个压缩文件的参数指令
-t :查看tarfile里面的文件
-z :使用gzip压缩
-j :使用bzip2压缩
-v :压缩过程中显示文件
-f :使用档名,f之后要立即接档名,不能再加参数
-C :解压到指定目录
常用命令
1.
tar -cvf [生成文件名称] [源文件名称] :打包 //*.tar
tar -xvf [生成文件名称] [源文件名称] :解包
2.
tar -czvf [生成文件名称] [源文件名称] :打包并压缩 //*.tar.gz
tar -xzvf [生成文件名称] [源文件名称] :解包解压缩
- 29. bc
计算器,ctrl + d 结束
- 30. uname -a
显示所有系统信息
-r
- 31. file 文件
详细显示该文件是个什么类型文件