Linux简介
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
操作系统介绍
-
常见操作系统:Linux、Windows、Android、iOS
-
内核:内核是与计算机中的硬件接口的最低级别的易于更换的软件。它负责将以“用户模式”运行的所有应用程序连接到物理硬件,并允许进程(称为服务器)使用进程间通信(IPC)从彼此获取信息
-
发行版本:centOS 、 Ubuntu 、 ...
-
解决命令行模式的乱码:LANG=en_US
目录结构
-
bin(binary):存储二进制文件(被运行)
-
Dev:存储外接设备
-
Etc:存储配置文件
-
Home:除了root用户以外其他用户的家目录
-
proc(process):存储Linux运行时候的进程
-
Root:root用户自己的家目录
-
Sbin(super binary):存储一些执行的二进制文件,但是必须有super权限的用户才能执行
-
Tem:存储“临时”文件
-
Usr:存放用户自己安装的软件,类似:program files
-
Var:存放程序/系统的日志的目录
-
Mnt:当外接设备需要挂的时候,就需要挂到mnt目录下
Session
Mbps和MB/s换算
-
1Byte=8bit
-
1KByte=1024Byte
-
1M=1024KByte
-
1MB/s=8Mbps
-
1Mbps=1024Kbps=1024/8KBps=128KB/s
关于路径
-
相对路径:相对首先得有一个参照物(一般就是当前的工作路径) 有两种写法:"/"【表示当前目录】、"../“【表示上一级目录】
-
绝对路径:绝对路径不需要参照物,直接从根"/"开始寻找对应路径
指令格式
-
#指令 【选项(多个)】【操作对象】
基础命令
-
ls(list):列出当前工作目录下的所有文件/文件夹的名称
#ls -l(表示list,以详细列表的形式进行展示) 路径 #ls -la(表示所有的文件/文件夹(包含了隐藏文件/文件夹)) 路径 #"-"表示该行对应的文档类型为文件,"d"表示文档类型为文件夹
#ls -lh(列出指定的文件/文件夹的名称,以列表的形式并且显示文档大小的时候可读性较高的形式显示) 路径
在Linux中隐藏文件一般都是以"."开头
-
pwd(print working directory):打印当前工作目录
-
cd(change directory):用于切换当前工作目录的
"~":表示家的目录
-
mkdir(make directory) 路径【可以是文件名称也可以是包含的一个完整路径】:创建目录
-
ls列出的结果颜色说明:蓝色表示文件夹;黑色表示文件;绿色其权限拥有所有权限 #mkdir -p 路径:一次性创建多层不存在的目录 #mkdir 路径1 路径2 路径3:一次性创建多个目录
-
touch 文件路径【可以是直接的文件也可以是路径】:创建文件
#touch 文件1 文件2:可以同时创建多个文件
-
cp(copy):复制文档/文件夹到指定的位置
#cp 被复制文档的路径 文档被复制到的路径(新文件名可以重命名的) 当用cp来复制一个文件夹,选项要添加"-r【表示递归复制】",否则目录被略过 递归复制:就是将你要复制的文件夹及其里面的文件全部复制过去
-
mv(move):移动文档到新的位置
#mv 需要移动的文件路径 需要保存的位置路径
-
rm(remove): 移除/删除文档
#rm 选项 需要移除的文档路径
选项:-f(force(强制)):强制删除 -r(递归)
注意1:如果删除文件不想频繁的确认,添加选项”-f“
注意2:删除文件夹选项添加”-rf“
删除多个文档简写方法:rm -f xx*
注意3:"*"表示通配符,意思表示任意的字符
-
vim(是一款文本编辑器):打开一个文件
#vim 文件路径
退出打开文件:shift+冒号(英文) 输入q 按回车
-
输出重定向
">":覆盖输出,会覆盖掉原先的文件内容
">>":追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
#正常执行的命令 >/>> 文件路径
注意:文件不存在,则新建
11、cat:直接打开一个文件路径
#cat 文件路径
#cat 待合并文件路径1 待合并文件路径2 ... > 合并文件之后新的路径
12、查看当前文件夹所有的文件:tree 目标文件夹路径
13、跳行:输入行数 + 大写G
14、行尾:大写A
15、多行取消注释:shift+':' normal d #(注释符号)
16、多行注释:shift+':' normal i #(注释符号)
17、复制多行:shift + 'V' y
18、粘贴多行:光标移动位置 p
进阶指令
-
df:查看磁盘空间
#df -h -h表示可读性较高的形式展示大小
-
free: 查看内存使用情况
#free -m -m表示以mb(兆位,兆字节)为单位查看
swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存
-
head :查看一个文件的前n行,不指定,则默认显示前10行
#head -n【表示数字】 文件路径
-
tail:查看一个文件的末n行,不指定,则默认显示末10行
#tail -n【表示数字】 文件路径
#tail -ff(查看一个文件的动态变化) 文件路径
-
less:查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格+上下方向键)来查看更多
#less 查看文件路径
-
wc:统计文件内容信息(包含行数、单词数、字节数)
#wc -lwc 文件路径
-l 表示lines,行数
-w 表示words,单词数
-c 表示bytes,字节数
-
date:表示操作时间日期(读取、设置)
#date
#date +%F (等价于#date "+%Y+%m+%d")
#date "+%F %T"(等价于#date "+%Y-%m-%d %H:%M:%S")
过去:#date -d "-1 day/year/month" "+%Y-%m-%d %H:%M:%S"
未来:#date -d "+1 day/year/month" "+%Y-%m-%d %H:%M:%S"
8、cal:用来操作日历的
#cal 等价于 #cal -1
#cal -3(前-本-后)
#cal -y 年份
9、clear/ctrl+l:清除当前终端的信息
10、管道:| 一般用于”过滤“,”特殊“,”扩展处理“
#ls/|grep y
#cat 文件路径 | less(实现less等价效果)
#ls / | wc -l(统计某个目录下的文档总个数)
高级命令
-
hostname:操作服务器的主机名(读取)
#hostname
#hostname -f(FQDN 全限定域名)
-
id:查看用户基本信息,不指定,则默认当前用户
#id
#id 用户名
验证用户信息:cat etc/passwd
验证用户组信息:cat etc/group
-
who name:显示当前登录的用户名,一般用于sell脚本获取当前用户名,方便记录日志
#whoname
-
ps -aux:查看服务器进程信息
#ps -aux 进程名称
-e:等价”-A“,表示列出全部的进程
-f:显示全部的列(显示全字段)
5、top:查看服务器占的资源
#top
按下方便快捷键:
M:按照内存(MEM)从高到低进行降序排列
P:按照CPU使用率从高到低降序排列
1:当服务器多个cpu,显示各个cpu详细信息
6、du -sh:查看目录真实大小
#du -sh 目录路径
-s:(summaries):只显示汇总大小
-h:较高可读性形式进行显示
7、find:用于查找文件
#find 路径范围 选项 选项值
#find / -name 文件名称
-name:按照文档名称搜索(支持模糊搜索)
-type:按照文档类型搜索
”-“表示文件(使用find用f来替换),”d“表示文件夹
#find / -name *.log(查找所有文件)
#find /文件夹1/文件夹2/... -type f(查找一个目录的所有文件)
#find /文件夹/ -type d(查找一个目录下的所有文件夹)
8、service:控制软件服务启动/停止/重启
#service 服务名 start/stop/restart
9、kill:表示杀死进程
#kill 进程PID
#kill 进程名称
10、ifconfig:操作网卡相关的指令
#ifconfig
11、reboot:重新启动计算机
#reboot
#reboot -w 模拟重启,但是不重启
12、shutdown:关机
#shutdown -h now
#shutdown -h 时间”关机提示“
取消关机:#shutdown -c
13、uptime:输出计算机的持续时间(计算机到下载运行时间)
#uptime
14、uname:获取操作系统的行信息
#uname 获取类型
#uname -a 全部信息
15、netstat -tnlp:查看网络连接信息
-t 列出tcp协议连接
-n :表示字母组合化成ip地址,将协议化成端口号来显示
-l :表示过滤”state(状态)"列中值为LISTEN(监听)的连接
-p:表示显示进程pid和进程名称
16、man(manual):手册(包含Linux全部指令)
#man
附加题
-
如何通过命令重启Linux操作系统?
#reboot
-
如何在命令行中快速删除光标前/后的内容?
前:ctrl+u 后:ctrl+k
-
如何删除/tmp下所有的A开头的文件?
#rm -f /root/tmp/A*
-
系统重要文件需要备份,如何把/etc/passwd备份到/tmp目录下?
#cp /root/etc/passwd /root/tmp/
-
如何查看系统最后创建的3个用户?
#tail -3 /root/etc/
-
什么目录统计当前系统中一共有多少账户?
#wc -l
-
如何创建/tmp/test.conf文件?
#touch test.conf
-
如何通过vim编辑打开/tmp/test.conf?
#vim test.conf
-
如何查看/etc/passwd的头3行和尾3行?
#head -3 /root/etc/passwd/
#tail -3 /root/etc/passwd/
-
如何一次性创建目录/text/1/2/3/4?
#mkdir -p /root/text/1/2/3/4/
-
如何最快的返回到当前账户的家目录?
#cd ~
-
如何查看/etc所占的磁盘空间?
#du -sh /root/etc/
-
如何删除/tmp下所有的文件?
#rm -f /root/tmp/
-
尝试启动Apache的服务,并且检查是否启动成功。
#service Apache start
-
使用已学命令杀死Apache的进程。
#kill Apache
Vi 介绍
在Unix及Linux系统的如何版本,vi编辑都是完全相同的,vi 也是Linux最基本的文本编辑器,尤其是在终端中
关于vim
vi和vim都是Linux中的编辑器,vim比较高级,视为vi的升级版,vi使用于文本编辑,但是vim更适用于coding(写代码的)
vim三种模式
-
命令模式:不能对文件直接编辑,可以输入快捷键进行一些操作(删除行,复制列,移动光标,粘贴光标,粘贴等等)【打开文件之后进入模式】
-
编辑模式:在改模式下可以对文件的内容进行编辑
-
末行模式:可以在末行输入命令对文件进行操作【搜索、替换、保存、退出、撤销、高亮等等】
-
Vim打开文件方式:
#vim 文件路径
#vim +数字 文件路径
#vim +/关键词 文件路径
#vim 文件路径1 文件路径2 文件路径3
-
重点:先复制一个/etc/passwd到当前家的目录
命令模式
-
光标移动到行首
按键:shift+6
-
光标移动到行尾
按键:shift+4
-
光标移动到首行
按键:gg
-
光标移动到末行
按键:G
-
翻屏
向上翻屏:按键ctrl+b(before)/PgUp
向下翻屏:按键ctrl+f(after)/PgDn
复制模式
-
复制光标所在行
按键:yy
粘贴:按下q键
-
以光标所在行为准(包括当前行),向下复制指定的行数
按键:数字 yy
-
可视化复制
按键:ctrl+v,如何按下方向箭头需要复制的区块,按下yy键进行复制,最后按下粘贴
剪切/删除
-
剪切/删除光标所在行
按键:dd
注意:dd严格意义是剪切
-
剪切/删除光标所在行为准,向下剪切/删除指定的行
按键:数字 dd
-
剪切/删除光标所在当前行,但是删除之后下一行不上移
按键:D
撤销/恢复
-
撤销:输入:u(undo)
-
恢复:ctrl+r
光标的快速移动
-
快速移动到指定行
按键:数字 G
-
向上/向下移动n行
按键: 数字 向上箭头 数字 向下箭头
-
向左/向右移动n行
按键: 数字 向左箭头 数字 向右箭头
-
末行模式移动到指定的行
按键:“:’”,输入行数数字,按下回车
模式间的切换
末行模式
-
进入方式:命令式进入,按下“:”可进入
-
退出方式:
a:按下esc
b:连接2次esc键
c:删除末行全部输入字符
-
保存操作(write)
输入:":w"
输入:”:w 路径“
-
保存并退出:”wq“
-
强制(!)
输入:”:ql“(不做保存)
-
调用外部命令
输入:”:!外部命令“
-
搜索/查找
输入:”/关键词“
切换上/下一个结果:N/nset
注:取消高亮 输入:”nohl“[no highlight]
-
替换
:s/搜索关键词/新的内容 替换光标所在行的内容
:s/搜索关键词/新的内容/g(替换光标所在全部符合条件的内容)
:%s/搜索关键词/新的内容 替换整个文档中第一个符合条件的内容
:%s/搜索关键词/新的内容/g 替换整个文档中的内容
% 表示整个文件
g 表示全局(global)
-
显示行号
输入:”set nu“
取消显示:”set nonu“
-
使用vim打开多个文件,在末行模式进行切换文件
输入:”:files“
%a :a=active,表示当前正在打开的文件
%#:表示上一个打开的文件
切换指定文件:”open group“
切换下一个文件:”:bn“(back next)
切换上一个文件:”:bp“(back prev)
编辑模式
实用功能
-
代码着色
显示:”syntax on“
关闭显示:”syntax off“
-
vim计算器使用
vim自身集成了一个简易的计算器
按键:ctrl+R
扩展
Vim配置三种情况:
-
在末行模式输入个人配置(临时)
-
个人配置文件(~/vimrc,如果没有可以自行新建)
-
全局配置文件(vim自带,/etc/vimrc)
进入编辑-->输入文件配置信息
起别名机制
-
依靠一个别名映射文件:~/.bashrc
-
#vim ~、。bashrc
-
注意:创造命令生效,必须重新登录当前用户
退出方式
-
vim退出可以使用”q“或者”wq“,还支持一种退出方法”:x“
-
注意1:文件未修改情况下,使用”:x“,文件修改时间不会被更新
-
注意2:不要使用‘X”,”X“表示对文件进行加密操作
运行模式(运行级别)
-
存在一个init(initialize,初始化),进程id是1
-
#ps -ef |grep init
-
对应的配置文件,initab(系统运行级别配置文件)
-
注意:init指令需要超级管理员的权限,普通用户无法执行
-
相关几个命令:
-
#init 0 表示关机
-
#init 3 表示切换不带桌面模式(纯命令行模式)
-
#init 5 切换到图形界面
-
#init 6 重启电脑
用户与用户组管理(重点)
/etc/passwd 存储用户的关键信息
-
/etc/group 存储用户组的关键信息
-
/etc/shadow 存储用户的密码信息
-
添加用户
#useradd
选项:
-g:用户主组,选项可以是用户组id,也可以是组名
-G:用户附加组,选项可以是用户组id,也可以是组名
-u(uid):用户id(标识符)
-c(comment):添加注释
-
创建用户
#useradd 用户名 不带任何选项
-
指定附加组
#useradd -g 500 -G 500 -u 666 用户名
查看主组:passwd文件
查看附加组:group文件
-
修改用户
#usermod -l 新的用户名 旧的用户名
选项:
-g:用户主组,选项可以是用户组id,也可以是组名
-G:用户附加组,选项可以是用户组id,也可以是组名
-u(uid):用户id(标识符)
-l:修改用户名
-
设置密码
#passwd 用户名
切换用户名
#su(switch user) 用户名
注意:普通用户没有办法访问root用户家目录,反之可以
-
删除用户
#userdel(user delete) 选项 用户名
选项:
-r:表示删除家目录
-
用户组管理
文件结构:用户组名:密码:用户组ID:组内用户名
密码:X 表示占位符
用户组添加
#groupadd 选项 用户组名
修改用户组ID和用户组名
#groupmod -g 新的id -n[相当l]新用户组名 旧用户组名
网络设置
-
配置文件位置:etc/sysconfig/network-scripts/
-
网卡的配置文件命名格式:ifcfg-网卡名称
重启网卡
#service network restart
#etc/init.d/network restart
#ln -s 原始路径 快捷方式路径
停止某个网卡:#ifdown 网卡名
开启某个网卡名:#ifup 网卡名
ssh服务
-
ssh(secure shell,安全外壳协议)
-
两个作用:远程连接协议,远程文件传输协议
-
协议端口号默认22
-
注意1:端口范围:0-65535
-
注意2:不能使用服务已经占用的端口
-
配置文件位置:etc/ssh/ssh_config
-
服务启动/停止/重启
-
#service sshd start
-
#service sshd stop
-
#service sshd restart
-
远程终端
工具:Xshell、secureCRT、Putty
-
获取IP地址
-
在Putty输入IP连接
扩展 解包
tar -zxvf *tar.gz
tar -jxvf *tar.bz2