1.学习Linux的原因
学习Linux/Unix的原因是它们适合作为服务器,它们不是针对一个人的,是多用户的。
2.操作系统OS
OS主要包括:
内核 kernel: 通常将一些与硬件紧密相关的模块、各种常用设备的驱动程序以及运行频率较高的模块,都安排在紧密程度较高的软件层次中,将它们常驻内存,即内核。驱动程序属于内核的一部分,是内核的扩展组件,用来帮助内核实现硬件的连接和操控,不包含驱动的内核也叫内核。内核通过提供统一的驱动操作接口供用户层使用,驱动就是在这层统一的接口下实现硬件的操控的中间层。内核可以管理虚拟内存(Linux叫交换空间)。 虚拟内存:匀出一部分硬盘空间来充当内存使用,在需要时进行数据交换。
shell:相当于一个用户与内核交互的接口。例,DOS
DOS:Windows的黑框控制台(cmd)== shift+鼠标右键会出现在此处打开PowerShell窗口的提示== DOS==Windows+r+cmd
文件系统:
①Windows:
绝对路径:从盘符开始的路径
相对路径:从当前路径开始的路径。其中 .表示当前路径,…表示上一级路径
②Linux:
无文件夹的概念,只有目录的概念,无盘符的概念,最顶层目录为/(根目录),各级目录:
opt:第三方应用程序文件的常用存放地
etc:系统配置文件,作用相当于windows的注册表。注意,其中有一个/etc/shadow里面保存着用户的登录密码,/etc/passwd里面保存着用户的信息
dev:就是device的意思,代表计算机的所有硬件设备
usr:用户级别的文件,包含许多系统管理命令和实用程序,其中比较重要的:
/usr/bin ;应用程序的可执行文件部分,相当于windows的*.exe文件
/usr/lib;应用程序的共享动态连接库部分,都是一些*.so的文件,linux下各个应用程序的库文件都是可共享的。所以都存放在一个文件夹中
/usr/share;存放的是应用程序需要的字体、图片、文档等资源文件
/usr/src; linux的源代码存放处
/usr/games;游戏软件的存放区域
/usr/include;Linux下开发和编译应用程序需要的头文件
kernel:内核文件
var:日志文件
home:存放用户家的目录
绝对路径:以/开头
相对路径:从当前路径开始的路径。其中,.表示当前路径,…表示上一级路径
Windows与Linux路径的区别:前者为 \ 后者为 /
3.用户
Ubuntu在刚开始使用时可以设置多个普通用户,但是只能设置一个管理员root。 设置root的密码:sudo passwd root
用su来切换到root用户,此时需要密码,再用su+用户名直接切换到普通用户,此时不需要密码
ctrl+alt+f2-f6:进入没有图形化界面的命令行
ctrl+alt+f7:返回图形化界面
登入:
图形化界面
非图像化界面的命令行
登出:
exit
sudo shutdown -h now
sudo poweroff
sudo: 让当前用户暂时以管理员的身份root来执行后面的命令
4.Linux常见的命令
bash具有命令自动补全功能,当用户输入了命令、文件名的一部分时,按键就可将剩余部分补全
语法:
Command [option(s)]选项,前面有- [argument(s)]参数
命令行的每一部分之间必须有空格
单行命令不能超过256个字符
区分大小写
notePad:Windows下新建记事本的命令
clear:终端清屏,并没有真正清除前面的命令 ==Windows(cls)
pwd:当前目录的绝对路径展示
cd:修改目录 ~=家目录的绝对路径
ls:展示文件的目录列表,后面可以跟多个路径,会展示多个路径的目录列表 ==Windows(dir)
常用选项:
-a 显示隐藏文件(以.开头的文件)
-R 递归显示所有文件的信息,包括子目录里的文件信息,两个选项可以连在一起使用,例-aR,还可以加参数如路径
-l 以长格式显示文件的详细信息。输出的信息分成多列,依次是文件类型与权限、链接号、文件所有者、所属组、文件大小、建立或最近修改的时间、文件名
文件类型为第一个字符:
d:目录
-:普通文件
c:字符设备文件
b:块设备文件
l:链接文件
s:socket文件
p:管道文件
权限:第一个字符后的9个字符,前三个字符代表拥有者的权限,中间三个字符代表同一组用户的权限,最后三个字符代表其他人的权限 r:读权限 w:写权限 x:可执行权限,可以搜索该目录 -:没有权限
u:拥有者
g:同组人
o:其他人
a:所有人
chmod:修改用户的权限,例为拥有者加上写权限,同组人减去写权限 chmod u+w,g-w 文件名
权限代表的数字:r 代表读,w 代表写,x 代表执行:
如果可读,权限是二进制的100,十进制是4;
如果可写,权限是二进制的010,十进制是2;
如果可运行,权限是二进制的001,十进制是1;
上面的例子可以写成 chmod 754 文件名
链接号: 软链接=Windows快捷方式
-F 目录文件 /
可执行文件 *
文本文件 (无任何标识)
file 文件名(可以是多个文件):查看文件类型
-t按时间进行排序
touch:
mkdir:==Windows(md)
cp:
mv:
rm/rmdir:==Windows(rd 目录) ==Windows(del 文件/目录)
man:
man 命令名(例,ls)
提供帮助
b:返回当前屏幕第一行
f:返回当前屏幕最后一行
q:退出man命令
/string:以字符串格式搜索信息
n:下一个要搜索的字符串信息
元字符:
vi:
命令行模式进入输入行模式:i,a,o
命令行模式进入底行模式:/,:,?
输入行/底行模式进入命令行模式:ESC
vi 文件名:打开或创建一个文件
vi : 打开一个新文件,最后命名
i: 在光标当前位置前插入
a: 在光标当前位置后插入
o: 在光标所在行下插入一个空行
I:在光标所在行首插入
A:在光标所在行尾插入
O:在光标所在行上插入一个空行
x: 删除一个符
dw: 删除当前词字
3dw: 删除三个词
dd: 删除当前行
5dd: 删除5行
:5,10d(底行模式): 删除5到10行
r: 替换一个字符
cw: 替换一个单词(直接进入插入模式)
cc: 替换一行(直接进入插入模式)
C: 替换从光标至行尾(直接进入插入模式)
yw: 拷贝词
yy: 拷贝行
p: 当前行下粘贴
:1,2co2 拷贝行1,行2在行2之后
:4,5m6 移动行4,行5在行6之后
:w 保存
:w 新文件名 保存成新文件
:wq 保存并退出
:q! 不保存但退出
~: 改变大小写
J: 把当前行和下一行连起来
u: =ctrl+z
:set nu: 显示行数(不显示为nonu)
:数字: 光标停在指定行
数字G: 光标停在指定行
G:最后一行
gg:=1G,移到第一行
数字n+Enter:光标处往下n行
Ctrl+r:重做上一个动作
.:重复前一个动作
/string: 从当前行往下查找
?string: 从当前行往上查找
n: 查找继续
:r 文件名: 在光标当前位置下一行插入另一个文件
:1, s / 旧 串 / 新 串 / g ( 全 文 ) : 替 换 全 文 ( s/旧串/新串/g(全文): 替换全文( s/旧串/新串/g(全文):替换全文(=%,两者可替换)
解压缩:
tar -zxvf xx.tar.gz -C dir 指定目录
tar -zxvf xx.tar.gz ./ 当前目录
配环境/配初始化文件:
echo $变量名 =变量值
提示符PS1
环境变量PATH:
PATH=$PATH:…
初始化文件(Bourne-Again):
系统:/etc/profile
用户:HOME(用户的家目录)/.bashrc
source:
source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
source filename or . filename
find:
find 查找的路径 -选项 参数
-name:按照文件名查找
-iname:忽略名字的大小写
-atime -n +n:按照文件更改时间查找。-n指n天内;+n指n天外
-type:查找某一类文件 f:一般文件
-size: 查找指定大小的文件
-user: 按照文件所有者查找文件
head:
head 命令可用于查看文件的开头部分的内容,有一个常用的选项 -n 用于显示行数,默认为 10,即显示 10 行的内容。n是数字。
tail:
tail -n(n为数字) 文件名
显示文件的尾部n行内容