Linux笔记


www.netcraft.com 能够查询所访问的网站的服务器类型和操作系统 --- 当防火墙不允许访问时就查不出
https://www.kernel.org/  linux内核版本号下载
50个最常用的Linux命令 https://gywbd.github.io/posts/2014/8/50-linux-commands.html
www.top500.org 记录运算速度排行前500的服务器

Linux在嵌入式发展很好 如手机和平板电脑 android、IOS底层操作系统是Linux

虚拟机安装过程要打开cpu的虚拟机功能
安装Ubuntu系统后继续安装VMware tools 实现本地电脑与虚拟机之间的文件拷贝

vmware tools安装方法:https://blog.csdn.net/colin_lisicong/article/details/70193552
共享文件夹打开命令: cd /mnt/hgfs/UbuntuShareFolder/
创建root用户


-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
一、Linux系统分区
1、硬盘分区:
主分区 最多4个 可以为普通分区分区和扩展分区
扩展分区 最多只能有一个 可以分作逻辑分区

2、格式化
格式化是将硬盘隔断作等大小的数据块(block),参照衣柜
是为了将数据方便的写入硬盘,将每个数据块进行编号,方便查找和使用

3、每个硬件都要设备文件名,即Windows中的分配盘符,用于对磁盘储存设备的标识符
Linux中所有数据以文件保存和操作
Windows 分区-格式化-分配盘符即可使用 Linux在分配盘符之间需要将硬件和设备进行命名并以文件保存
如 IDE硬盘的设备文件名  /dev/hd[a-d] 表示硬盘a-d h表示hard d表示硬盘
--------------
分区设备文件名 在硬件标注文件名后也需要将分区文件进行命名
如 /dev/hda1 表示第一个硬盘的第一个分区

4、挂载
挂载是一个过程  在Windows中称为分配盘符 被分配的盘符称作挂载点
------
必须分区的有:
/ 根分区 如果根不分区,很多数据没有地方可写,根分区写满了系统不能正常运行
swap分区 虚拟内存、交换分区 当内存不够用时,把它当作内存来用 大小为内存的2倍 不超过2G
推荐分区
/boot 共同空间、启动分区 只写入启动时数据不可它用 大小为200M 
-----
Linux的所有储存设备在挂载后才能使用
Windows将CDEF字母作为盘符 而Linux将空的目录文件作为盘符
Windows中 CDE盘并列 每个分区下只能储存当前分区下的文件 磁盘按照树状结构进行分配
在Linux中 
/ ls ---假设根目录下的分区有下列三个子文件 
/ boot /etc /home
根分区 / 和二级目录 /boot /etc /home 可能是在磁盘上连续的分割 
(为什么是这样???)

虚拟机网络配置
如果是网线直连,选择桥接/如果是WiFi选择 选择NET
只要虚拟机和主机能相互ping通,则能建立远程连接 可以用虚拟机打开浏览器,如果浏览器能够运行,那么侧面反映可以ping通
---------
Linux与Windows有很多的不同
Linux系统中命令和文件全都是小写,如果是大写会报错
Windows的dos不区分大小写
Linux中所有内容都是文件 对文件的更改必须写到文件里面,命令行的更改都是临时的
Linux中的文件没有扩展名依靠权限区分文件类型  而Windows中绝大多数文件都有文件名 
但是Linux中也有些帮助管理员理解和管理文件的后缀名,它是为管理员设计的,不写后缀名操作系统也能识别
压缩包:.gz  .bz2  tar.bz2  .tgz
二进制软件包: .rpm
网页文件:  .html  .php
脚本文件:  .sh
配置文件: .conf
-------
Windows中的文件(除文本文件)传入Linux,基本不会被识别,所以就避免了病毒的传染,但是就需要为Linux单独开发维护
Windows中的程序也不能之间在Linux中安装和运行

------------
cd /bin/    cd /sbin/  cd /usr/bin/   cd /usr/sbin   
usr代表单用户模式 作系统修复用  bin是所有用户都能执行的 sbin只有root能执行
cd /boot/ 系统启动目录 不要在里面添加数据 
cd /dev/ 设备文件  需要备份
cd /etc/ 配置文件保存的目录 需要备份 
/home/ 用户目录
/lib/ 函数库
/lost+found/  fsck文件检测修复 平时打开什么都没有,当断电或其他造成文件丢失时执行命令时使用
挂载目录  相当于Windows系统中的CDE盘 空目录
/media/  多媒体设备
/mnt/    U盘
/misc/    NFS设备 
----
/usr/local/ 保存外来软件的目录
虚拟文件目录,存在于内存中,断电后消失,所有不要将数据保存在此俩目录中
/proc/  /sys/  保存在当前系统内存,保存进程的数据以及cpu的信息等

/root/ root的home目录
/tmp/ 临时文件目录
/usr/ 软件资源目录 Unix software resource 不存放用户数据,用来存放系统软件资源
/var/ 动态数据保存位置,即存放日志邮件草稿等的目录

远程服务器不允许关机,只能重启 重启时应该关闭服务
在服务器访问高峰(数据量较大的)不要与运行高负载命令  
防火墙是 IP地址加端口,远程配置时不要操作错误把自己放在防火墙之外
给用户分配的权限越小越好 因为做得事情越多,犯错误的可能性越大。
所以,学习的时候,不能同时做几件事情 
将自己的数据定期备份
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------

二、Linux常用命令处理
1、文件处理命令
命令格式与目录处理命令 
ls
格式  命令 [-选项]  [参数]  ls -la  /etc
ls -l /ls -h  查看文件详情 有所有者/所有组/其他人/文件大小/时间/文件名等
权限包括 r/w/x 读/写/执行
所有者/所有组/ 数据库权限管理、会计等都使用到
-all 列出目录下所有文件 包括以 . 开头的隐藏文件
-l  查看文件详情
-d 将目录像文件一样显示,而不说显示其下的文件 
-h 文件详情人性化,给人看的文件详情
-i  查看文件编号
mkdir
创建一个目录 make directions
madir tmp/firstfile
使用-p递归创建目录
 madir -p/tmp/firstfile/secondflie/thirdfile
cd / pwd / . /..      分别表示 切换目录/显示当前目录绝对路径/点表示上级目录/点点表示上上级目录
rmdir
删除目录,需要把目录下的文件清空才能删除这个目录
cp
复制 copy 
cp /[源文件]/[目标文件路径下]
cp -r  (复制文件)   /[源文件] /[目标路径]  此方法的文件创建时间会发生变化  可以在目标路径下直接修改文件名
cp -r /tmp/sichuan/chengdu/sicnu/shishan    /root/chenglong
cp -p 保留原文件属性,完全拷贝
mv 
剪贴、改名 move
mv /tmp/sichuan/chengdu/sicnu/shishan    /root/chenglong
mv shishan chenglong
rm 
删除 remove
删除文件 rm 文件 删除目录 rm -r 不询问rm -rf
ctrl+l 清屏 ctrl+C 终止操作 


touch
创建文件 如果没有指明绝对路径则是在当前目录下创建文件
touch program file 不是创建了program file 而是创建了 program和file 两个文件
touch “program file”创建带空格的的文件

cat 直接查看文件
cat -n 查看文件行数
cat只显示长内容的最后一行命令
tac 可以反向显示

more 查看多行文件 空格或f翻页 回车换行 q退出 
但是不能page up 
less 命令不仅可以page up 还可以进行搜索  /搜索关键词 n/next显示所有匹配内容

head -n 7/文件名 显示文件前7行 默认显示前10行
tail -n -f 显示文件末尾的内

链接命令
ln -s 原文件 目标文件
ln -s /etc/issue /tmp/issue.soft
ln -s /etc/issue /tmp/issue.hard
软链接和硬链接文件
软链接很像是Windows中的快捷方式
软连接文件有三个rwx权限 但是源文件的权限与其无关

硬链接 除了文件位置不同,其他的都相同  当源文件修改后,硬链接同步更新,因为i节点相同,内核是对相同的i节点进行操作

touch
创建文件 如果没有指明绝对路径则是在当前目录下创建文件
touch program file 不是创建了program file 而是创建了 program和file 两个文件
touch “program file”创建带空格的的文件

cat 直接查看文件
cat -n 查看文件行数
cat只显示长内容的最后一行命令
tac 可以反向显示

more 查看多行文件 空格或f翻页 回车换行 q退出 
但是不能page up 
less 命令不仅可以page up 还可以进行搜索  /搜索关键词 n/next显示所有匹配内容

head -n 7/文件名 显示文件前7行 默认显示前10行
tail -n -f 显示文件末尾的内容
 -------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
三、Linux权限管理命令

所有者--谁创建这个文件
所有组-拥有文件管理权限
其他人
u-g-o
rwx
更改文件的权限:root 创建者
chmod +/-权限,+/-权限 文件名
r---4
w--2
x---1
数字更改权限
523  rx-wx-w-
在数字前加R 递归修改权限,该目录和其子目录下权限同时被修改
对文件file各个权限的内容是:
r:cat/more/less/head/tail
w.vim
x: script/command
对目录directory
r:ls查看
w:touch/mkdir/rmdir/rm 创建删除
x:cd 进入目录
一般,对目录来说rx同时存在


文件搜索命令
find辅助查找
locate 文件名
能显示出文件所在路径,速度非常快,因为使用 locate locate 可以找到文件资料库
但是不是实时查找,实时使用find ,但是可以使用updatedb更新再进行查找
大小写可以加一个 -i 命令

精准查找
which 命令
如 which useradd
得到/usr/sbin/useradd
alias 查找别名 可以进行执行确认
whereis useradd where可以列出帮助文档

grep 
在文件内容中搜索内容
grep 关键词 文件//使用i不区分大小写  ^# 把注释行全部去掉

find locate -i updatedb  which whereis grep -i -v

帮助命令 当有些不知明的命令查找帮助信息
 man ls
info
最常用 的信息是 第一行 解释命令的
man直接加上配置文件名称 而more加上文件绝对路径
使用man查看所有的信息,而很多信息是用不着的,使用简短命令更加快捷有效
whatis 命令 查看命令的简短信息 apropos 配置文件 查看配置文件的简短信息
touch --help
help 可以查看shell内置命令 shell是只命令解释器
 
用户管理命令
useradd 添加用户
passwd 用户名 设置和修改密码
who 当前用户信息
w  所有用户信息

压缩命令
对文件进行压缩
gzip 文件名 
常见压缩格式   .gz 
在Linux中压缩后源文件就消失的 

对目录进行压缩
tar -cvf 压缩文件名 被压缩目录名//cvf  c表示打包 v表示详细 f必须加
tar -cvf Japan.tar Japan  //不会删除源文件Japan
打包同时进行压缩生成 .tar.gz的文件
tar -zcf Japan.tar.gz Japan //z 表示压缩
压缩解压 tar
tar -zxvf Japan.tar.gz

zip 压缩后能保留原文件
unzip 解压缩
Linux中的压缩格式Windows中都有,反过来不成立

gzip的升级版bzip2
bzip2 -k压缩后仍保留原文件
压缩后文件名。bz2
解压缩 bunzip2

网络命令
write 用户名
给某用户发送信息
wall 给所有用户发信息
ping 
ifconfig 临时改变IP地址
mail 不需要在线就能发送
last 查看过去登陆信息,检测用户登陆的信息
traceroute 查看到目标网站的路径
netstat 
-t TCP
-u UDP
-l 监听
-r 路由
-n 显示IP地址和端口号
netstat -tlun 查看本机服务和端口
netstat -an 查看所有服务
netstat -rn 查看本机路由表
setup命令配置网络
mount挂载命令
mount 【文件系统】设备文件名 挂载点 外接硬件一般才使用

关机和重启命令
shutdown -h/-r now/15:30  //-h关机 -r重启
runlevel

VIm文本编辑器
常用操作
vim没有菜单,只有命令

进入 vi filename
命令模式
 iao 进入插入模式输入内容
a 在光标所在字符后插入
A 行末
i 字符前
I行首
o下行开始写
O上行开始写

:set nu 显示行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG到第n行
:n到第N行
$ 移至行首
0 移至行尾

删除命令
x 删除光标所在字符
nx                 后n个字符
dd/ndd  删除光标所在行/后n行
dG 光标后所有内容
D 删除光标所在处到行尾内容
n1,n2d 删除指定范围的行

 yy-p/p 复制当前行到某行上面和下面
dd-p/p 剪贴
r/R 替换当前字符/后面所有
u取消上一步操作


查找替换
搜索
/关键词  n
替换
:范围/要替换关键词/替换为的关键词

保存退出 
:w 保存文件
:w newfilename 另存为指定文件
:wq/ZZ 保存退出
:wq! 强制保存

vim使用技巧
-r 导入到当前文件
定义快捷键 :map 快捷键 触发命令
 :ab a,b  
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
四、linux 软件安装
----------
RPM包管理-rpm命令管理
命名规则
包全名:软件包名-软件版本-软件发布次数-适合的Linux平台-适合的硬件平台=rpm包扩展名
没有安装的包使用包全名并且要注意路径
操作已经安装的软件包时,使用包名
手工操作 rpm
安装
rpm -ivh 包全名
-i install
-v verbose  显示详细信息
-h hash  显示进度
--nodeps 不检测依赖性 
-Uvh 升级 //u- upgrade更新
-e 包名  卸载  erase
查询
rpm -q 包名
-qa 查询全部已安装包
-qi 查询已安装包信息
-p 包全名  查未安装包信息
-ql 查询包位置
-qf 查询文件属于哪个包 如果文件不是通过包安装产生则查询不到,如自己写的
-R 查询软件包的依赖性
依赖性
树形依赖
环形依赖
模块依赖:模块依赖查询网站
校验
将一个现在的包与刚开始安装的包进行比较,查找有什么不同
输出结果,可以查找对应表看改变了什么内容
如:S 文件大小是否改变
       5 文件完整性
       T 修改时间
文件提取
常用用途是文件修复 过程是误删某个文件后,查找被删除文件的包的位置(可以Google),找到包里的信息再提取(cp)到被删除位置

在线管理  yum在线管理 //解决依赖性
可以使用光盘做yum/网络yum源
yum命令
查询 
yum list

软件包安装
yum -y install gcc //gcc是C语言编译器
卸载
yum -y remove gcc
软件包组安装与卸载
yum groupinstall "软件包名"
yum groupremove "软件包名"

光盘yum源搭建
优点是下载更快,使用更方便,但软件版本不能更新。
挂载光盘→让网络yum源失效→修改光盘yum源文件
让网络yum源失效 :通过mv命令 mv CentOS-Base.repo \ CentOS-Base.repo.bak 将repo文件改为bak文件使其失效
主要是通过将 enabled打开,即使其值从0变为1

源码包安装管理
--源码包与RPM包的区别
    --概念区别
源码包能查看源代码,RPM包不能查看源代码
    --安装位置区别 
RPM包安装再默认位置中
可以使用 service httpd restart这样的命令
源码包是指定安装位置 一般是 /usr/local/软件名/
只能使用绝对路径
--源码包安装
apache安装
https://www.osetc.com/archives/20369.html

脚本安装--类似Windows下软件的安装方式
webmin 软件
针对小白使用

Apathe的安装问题:
致命错误 expat.h
致命错误 pcre.h
需要安装插件库不足

bulid/rules.mk:75: all-recursive
可能是httpd的版本与Linux系统版本不兼容
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
五、Linux用户管理
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
六、Linux权限管理
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
七、Linux文件系统管理
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
八、Linux编写shell脚本
shell 交互层 
Windows的图形交互界面 Linux中的终端
也是一种脚本编程语言

shell脚本的执行方式
echo 输出

bash基本功能 
history 可以看到写过的指令
!n 重复调用某条命令

shell基本功能 
别名 alias alias alias A ='B' 使用简单A就能执行和复杂的B相同的功能
执行顺序
绝对路径/相对路径>alias别名>Bash内部命令>环境变量定义的目录下的第一个命令(比如别名覆盖前的系统命令)
如果要使alias永久生效 则在/root/.bashrc中添加别名 否则只是暂时生效

常用快捷键
ctrl+A 把光标移动到开头
ctrl+E  把光标移动到行尾
ctrl+C  结束当前命令
ctrl+U 删除或贴切光标之前的内容
ctrl+K                 光标之后的内容
ctrl+Y  粘贴
ctrl+R  搜索
ctrl+D 退出终端

输入重定向
使用文件作为输出源 不常用

输出重定向
只有命令可以输出内容的时候可以使用输出重定向 常把错误输出到屏幕改为输出到文件保存
将正确和错误输出保存在同一文件中
格式:命令 &>> 文件
 可以重定向到 /dev/none中(垃圾箱)
将不同输出保存至不同文件中
命令 >> 保存正确文件 2>> 保存错误文件

dd命令 磁盘复制
date ; dd if=/dev/zero of=/root/textfile bs=1k count=100000 ; date
将A文件复制为B文件 并记录创建该文件的时间

多命令顺序执行
A ; B AB顺序执行 
A && B A不报错B再执行B A报错B不执行
 || 逻辑或 A成功执行B不执行

管道符 |
A | B    命令A作为命令B的输入对象,但A命令一定要能正确执行并有正确输出  
grep 将搜索出的关键词用颜色标出
netstat -a | grep ESTABLISHED 将连接的信息都显示出来并标红

通配符
? 匹配一个字符
*   匹配任意字符
[abc]  abc中任意一个字符
[^0-9] 匹配不是数字的字符
echo '$name'   输出字符串
echo "$name"  输出name的值 
echo $()// 将命令执行再输出

Bash变量
变量是计算机内存的单元,其中存放的值可以改变
变量名不能以数字开头
默认变量类型是字符串类型,如果要进行数值运算,则必须将变量指定数值型
环境变量大写,
变量查看 set 
变量删除 unset name

用户自定义变量
本地变量
只能在当前shell 执行

环境变量
主要保存和系统操作环境相关的数据
可以在子shell执行
常用环境变量
pstree 查看当前进程
PATH="$PATH":/root 将root目录添加到环境变量中
PSI 命令提示信息 提示当前用户名、文件路径等,可以进行修改

位置参数变量
向脚本中传递值的变量
$n 
$0为命令本身 $1-$9代表第一个到第九个参数,10以上的参数用 ${10}
$* 代表命令行中所有的参数,$*把所有的参数看成一个整体 
$@ 也代表命令行中所有的参数,但把每个参数区别对待
$# 这个参数代表参数个数

预定义变量
bash已经定义好的变量,作用也是固定的,只能赋值
预定义变量
$? 判断上一条命令是否正确执行
$$ 显示当前进程号(PID)
$!  后台运行的最后一个进程的进程号

接受键盘参数 read[选项]【变量名】
-p 在等待read输入时,输出提示信息
-t 描述 在t时间内,read命令会一直等待用户输入
-n read接受指定的字符数,就会执行
-s 隐藏输入,适用于机密信息输入

数值运算
declare 声明变量类型
export cc 先将cc设为环境变量
decalre -i cc 将cc变量声明为数值型
-x 声明为环境变量
-p  显示变量类型
- 设定类型属性 + 取消类型属性 

$((运算式))+$((运算式))

变量替换和测试
表格留好,不需要背,用的时候参考即可

环境变量配置文件
永久性更改保存环境变量
方法
source 配置文件
. 配置文件

现环境变量的保存位置
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
对所有用户生效
Surene/.bash_profile
Surene/.bashrc
对当前用户生效
环境变量配置

字符截取
cut字段提取命令
不能使用在以空格为分隔符的字符串
-f  提取第几列
-d 分隔符


printf命令
awk中最常用的格式化输出,需要调整输出格式
%ns 输出字符串,n是数字指代输出几个字符
%nf  输出整数 n是数字代表输出几个数字
%m.nf: 

awk命令
格式
awk '{} {}' 文件 //{}表示一个动作,可以是函数和操作等
awk '{printf $2"\t" $4"\n"}' student.txt=awk '{print $2"\t" $4}' student.txt
printf与print的差别是 print自带一个换行符\n

FS内置变量 用来指定分隔符 默认分隔符是空格 可以根据文本类型做出修改 
可以指定为冒号形如{FS=":"}
BEGIN 在命令开始之前执行
END 在命令结束之后执行
awk'BEGIN {FS=":"} {print $....} END {}' student.txt

sed命令
sed是一种轻量级流编辑器,可以将数据或文件(尤其是文本文件),进行选取替换删除新增的命令
sed 选项 '[动作]' 文件名
选项 -n 把所有数据输入到屏幕 如果加入此选择,则只会把经过sed命令出来的行输出到屏幕
    -e 运行对输入数据应用多条sed命令编辑
    -i 用sed的修改结果直接修改读取数据的文件 
sed不会对文件本身进行操作,只对输出结果进行操作,并显示在屏幕上,所以今生使用-i

字符处理命令
sort 排序命令
默认使用字母排序

test 判断
test不会返回值 但执行结果有值,可以用$?进行查看,0代表为真,1代表为假
可以使用下面的操作直接输出内容进行判断
[] && echo yes || echo
-f -d .... 判断文件类型是否为空等
数值判断
-ep 判断相等
-ne 判断不等
-gt 判断大于
-lt 判断小于
-ge 大于等于
-le 小于等于

字符串判断
-z 是否为空
-n 是否为非空
== 是否相等
+!是否不等

逻辑控制 
if   case  for while util 略
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
九、Linux服务管理

RPM包默认安装的服务 
    独立服务  //速度快
        启动 : 服务绝对路径 start   service 服务 start //原理是去找文件
        自启动 :chkconfig 运行级别 独立服务名 on/off
            修改/etc/rc.d/rc.local文件  推荐使用 只要在开机后该文件就会被阅读,将命令写入文件中,实现自启动
            ntsysv 命令管理  跟setup类似的图形管理节目 用来开关服务 红帽子专属,可以centos中可以yum
    后台管的  //服务急于xinetd 的服务 超级守护进程 不占内存 但速度慢
        
        
源码包安装的服

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值