Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。它的建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。
一,linux的特点
1.开放性
开放性是指系统遵循世界标准规范,特别是遵循开放系统互连(OSI国际标准),凡遵循国际标准开发的硬件和软件都能兼容,可方便实现互连。
2.多用户
3.多任务
4.良好的用户界面
5.设备的独立性
6.提供了丰富的网络功能
7.可靠的系统安全
8.良好的移植性
linux的内核版本
内核版本指的是在Linus Torvalds领导下的开发小组开发出的系统内核的版本号,通常,内核版本号的第二位是偶数表示是稳定的版本,如2.6.25;是奇数表示有一些新的东西加入,是不稳定的测试版本,如2.5.6。
任务:进程调度、内存管理、配置管理虚拟文件系统、提供网络接口以及支持进程间通信。像所有软件一样,Linux的内核也在不断升级。
linux的发行版本
一个完整的操作系统不仅仅只有内核,还包括一系列为用户提供各种服务的外围程序。
Linux的发行版本大体可以分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的RedHatLinux为代表,后者以Debian为代表。
中国大陆的linux发行版本:
红旗Linux(RedflagLinux) ,冲浪Linux(Xteam Linux) ,蓝点Linux , GNU/Linux,OpenDesktop等等 。
Linux命令
shell是一种用来实现用户和内核交互的接口(命令解释器),shell接收用户的命令,然后把它送入内核执行,完成用户与系统的交互。
#代表root用户 $代表普通用户
命令 | 说明 |
---|---|
ls | 显示文件或者目录 |
ls -l | 列表形式显示文件详情信息** |
ls -a | 列出当前目录所有文件及隐藏的文件 |
ls -al | 显示所有文件和目录的详情(包括隐藏文件) |
ls [0-9] | 显示包含数字的文件名和目录名 |
cd | 切换目录 |
cd - | 返回上一次进入的目录 |
~ | 用户目录 |
/ | 根目录 |
touch xxx.php | 创建一个xxx.php文件 |
echo | 打印内容 |
echo hello world >one.php | 将内容替换到文件内** |
echo hello world >>one.php | 将内容添加到文件内并换行 |
cat one.php | 查看one.php的内容 |
mv | 移动或重命名 注意:在移动的过程中 如果没有该文件夹 它不会自动创建文件夹 |
more / less | 分页显示文本文件内容 |
mkdir | 创建目录 |
mkdir -p | 创建目录,若无父目录则创建 |
find | 在文件系统中搜索某个文件 |
find / file1 | 开始进入根文件系统搜索文件和目录 |
find / -user user1 | 搜索属于用户 ‘user1’ 的文件和目录 |
find /home/user1 -name *.bin | 在目录 ‘/ home/user1’ 中搜索带有’.bin’ 结尾的文件 |
wc -l/-w/-m | 统计文本中行数,字数,字符数 |
grep | 在文本文件中查找某个字符串 |
rmdir | 删除空目录 |
pwd | 显示当前目录 |
head,tail | 显示文件头,尾内容 |
rm | 删除文件时,提示确认 |
rm -r | 递归删除,可删除子目录及文件 |
rm -rf | 强制删除,包含递归等 |
rm -f | 强制删除 |
passwd | 修改密码 |
useradd | 添加用户 |
userdel -r xxx | 删除xxx用户 |
groupadd xxx | 创建组xxx |
useradd -G 组名 用户名 | 创建一个用户并加入组 |
file | 查看文件类型 用法 file 文件名 |
uname -r | 显示正在使用的内核版本 |
uname -a | 显示更详细的内核、版本等信息 |
shutdown -h now | 关闭系统 |
init 0 | 关闭系统 |
init 6 | 重启 |
shutdown -h hours:minutes | 按预定时间关闭系统 |
shutdown -c | 取消按预定时间关闭系统 |
shutdown -r now | 重启 |
reboot | 重启 |
logout | 注销 |
su | 切换用户,root切换到其他用户需要指定名称,低用户向高用户切换时不需要输入** |
systemctl | 查看开机启动的内容 |
service 服务名 restart | 重启服务 |
service 服务名 start | 启动服务 |
service 服务名 stop | 停止服务 |
service 服务名 status | 查看服务状态 |
systemctl enable 服务名 | 将服务加入到启动项 |
systemctl disable 服务名 | 将服务移出启动项 |
kill -9 id | 强制杀死进程 |
ln file1 file2 | 建立硬链接,两个文件同时指向同一块硬盘空间 修改一个后,另一个会改变,删除一个另一个依然存在,连接数变为1 |
ln -s file1 file2 | 建立软链接(符号链接),类似快捷方式,file2指向了file1文件(相当于快捷方式) |
df | 列出文件系统的整体磁盘使用量 |
命令参数: | -a: 列出所有的文件系统,包括系统特有的 /proc等文件系统 |
-k: 以KBytes的容量显示各文件系统 | |
-m:以MBytes的容量显示各文件系统 | |
-h:以人们较易读的GBytes,MBytes,KBytes等格式自行显示 | |
du | 检查磁盘空间使用量 |
命令参数: | -a:列出所有的文件与目录容量,因为默认仅统计m目录d底下的文件量而已 |
-h:以人们较易读的容量格式(G/M)显示 | |
-s:列出总量而已,而不列出每个各别的目录占用容量 | |
-S:不包括子目录下的总计,与-s有点差别 | |
-m:以MBytes列出容量显示 | |
fdisk | 用于磁盘分区 |
Linux文件与目录
目录 | 内容说明 |
---|---|
bin | 存放二进制的可执行程序 |
boot | 存放用于系统引导时使用的各种文件 |
dev | 用于存放设备文件,用户可以通过这些文件访问外部设备 |
etc | 存放系统的配置文件 |
home | 存放所有用户文件的根目录,有一个用户在该目录下就有一个与该用户名相对应的子目录,当用户登录时就进入其用户名对应的子目录 |
lib/lib64 | 存放根文件系统中的程序运行所需要的共享库及内核模块 |
lost+found | 存放一些系统检查结果, 发现不合法的文件或数据都存放在这里,通常此目录是空的,除非硬盘遭受了不明的损坏 |
mnt | 临时文件系统的挂载点目录 |
media | 即插即用型存储设备的挂载点自动在这个目录下创建,如CD/DVD等 |
opt | 第三方软件的存放目录 |
proc | 是一个虚拟文件系统,存放当前内存的映射,主要用于在不重启机器的情况下管理内核 |
root | 超级用户目录 |
sbin | 类似/bin目录,也存放二进制可执行文件, 但是只有root才能访问 |
srv | 系统对外提供服务的目录,如Web虚拟主机等 |
tmp | 用于放置各种临时文件 |
usr | 用于存放系统应用程序 |
var | 用于存放需要随时改变的文件,如系统日志、脱机工作目录等 |
文件的基本属性:
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限,为了保护系统的安全性,linux系统对不同的用户访问同一文件的权限做了不同的规定 。
在linux中我们可以使用ll或者ls -l 命令来显示一个文件的属性以及文件所属的用户和组
权限对文件的重要性:
r(read):可读取此文件的实际内容,如读取文本文件的文字内容等 —— 4
w(write):可以编辑,新增或者是修改该文件的内容(但不包含删除该文件) —— 2
x(execute):该文件具有可以被系统执行的权限 —— 1
第一个字符代表这个文件是“目录,文件或链接文件等”
[d] ——目录
[-] ——文件
[|] —— 链接文件(linkfile)
[b] ——设备文件里面的可提供存储的接口设备
[c] ——设备文件里面的串性端口设备,例如键盘,鼠标(一次性读取设备)
后面的字符就以三个为一组 分三组 ,以图为例
第一组:”文件所有者的权限”
第二组:”同用户组的权限”
第三组:”其他用户组的权限”
每个组的所有权限加起来是 7
读: 4
写: 2
执行:1
使用 chmod 去改变权限
chmod 777 xxx.php 爆满权限 每个组都是 可读、可写、可执行 注意合理配置权限!
Linux文本编辑命令
Vim使用
Vim三种模式:命令模式,插入模式,编辑模式 esc 退出 i编辑
使用的命令行模式 命令有如下:
:q 退出
:q! 强制退出
:wq 保存并退出
:set number 显示行号
:set nonumber 隐藏行号
/Google 在文档中查找到Google 按(next)n跳到下一个,shift+n返回到上一个
yy p 复制光标所在行,并粘贴
h(左移一个字符) j(下一行) k(上一行) l(右移一个字符)
a | 在当前光标位置之后插入内容。 |
---|---|
A | 在光标所在行的末尾(行尾)插入内容。 |
i | 在当前光标位置之前插入内容。 |
I | 在光标所在行的开头(行首)插入内容。 |
o | 在光标所在行的后面插入一个新行。 |
O | 在光标所在行的前面插入一个新行。 |
移动光标方法 | |
光标方向的移动 | 使用键盘中的四个方向键↑、↓、←、→完成相应的光标移动。 |
+ 光标移动到非空格符的下一行 | |
- 光标移动到非空格符的上一行 | |
H 光标移动到这个屏幕的最上方那一行的第一个字符 | |
M 光标移动到这个屏幕的中央那一行的第一个字符 | |
L 光标移动到这个屏幕的最下方那一行的第一个字符 | |
n n 为数字。光标向下移动 n 行(常用) | |
翻页移动 | 使用Page Down键或Ctrl+F组合键向下翻动一整页内容。 |
使用Page Up键或Ctrl+B组合键向上翻动一整页内容。 | |
使用Page Down键和Page Up键同样适用于vi的输入模式。 | |
行内快速跳转 | 按Home键或^键、数字0键将光标快速跳转到本行的行首。 |
按End键或$键将光标快速跳转到本行的行尾。 | |
行间快速跳转 | 使用按键命令1G或者gg可跳转到文件内容的第1行。 |
使用按键命令G可跳转到文件的最后一行。 | |
使用按键命令#G可跳转到文件中的第#行(其中“#”号用具体数字替换)。 | |
复制 | yy 复制光标所在的那一行。 |
nyy n 为数字。复制光标所在的向下 n 行。 | |
yG 复制光标所在行到最后一行的所有数据。 | |
y1G 复制光标所在行到第一行的所有数据。 | |
y0 复制光标所在的那个字符到该行行首的所有数据。 | |
y$ 复制光标所在的那个字符到该行行尾的所有数据。 | |
粘贴 | 按p键即可将缓冲区中的内容粘贴到光标位置处之后。 |
按P键则会粘贴到光标位置处以前。 | |
删除 | 使用x键或Del按键删除光标处的单个字符。 |
使用dd删除当前光标所在行。 | |
使用#dd删除从光标处开始的#行内容。 | |
使用d^删除当前光标之前到行首的所有字符。 | |
使用d$删除当前光标处行尾的所有字符。 | |
查找文件内容 | 在命令模式中,按/键后可以输入指定的字符串,从当前光标处开始向后进行查找(如果按?键则向前查找)完成查找后可以按n、N键在不同的查找结果中进行选择。 |
指令行的储存、离开等指令 | |
---|---|
:w | 保存文件及退出vi编辑器 |
:w /root/XXX | 将当前编辑的文件另存到/root目录下,文件名为XXX。 |
:q | 退出编辑器。 |
:q! | 不保存并退出。 |
:wq或x | 保存并退出。 |
:set nu | 显示行号,设定之后,会在每一行的前缀显示该行的行号 |
:set nonu | 与 set nu 相反,为取消行号! |
man linux系统在线求助手册
语法:man 命令