linux基础总结

基础命令
ls pwd cd mkdir -p 创建多层目录 touch mv 移动 rm -f强制 -i递归
进阶命令
df free(查看内存使用情况)
查看文件内容 head tail less
统计文件信息 wc -l(行)
cal 日历 passwd 修改用户密码 (passwd a 修改a用户密码)
高级命令
hostname id whoami ps -ef -e全部 -f 全部列
top 服务器进程占用资源 pr 优先级 以大为优
%cpu cpu占用 %MEM 内存占用
du -sh 查看文件真实大小
find 查找文件 find 查找路径 选项(-type [f 文件 d目录]) 值
service 软件服务启动/停止/重启
kill PID 结束进程 killall 进程名
reboot 重新启动
reboot -w 只写入关机与开机的日志信息用于测试
shutdown 关机 shutdown -l 取消
uptime 计算机开机时间
uname 获取操作系统信息
netstat -tnlp 用于查看ip和端口是否占用
ctrl+u 删除光标前
ctrl +k 删除光标后

编辑器 –vi
显示行数末行模式下输入 :set number
模式
命令模式 删除复制粘贴对文件内容操作
便捷模式 内容编辑
末行模式 对文件操作搜索替换撤销

命令模式

  1. 光标移动
    h← j↓ k↑ l→
    shift+ G文件行首
    shift+4 文件行尾
    光标行首gg 光标行尾 G
    翻屏 ctrl+b 上翻页 ctrl + a 下翻页
    2.复制操作
    复制光标所在行
    按键 : yy
    粘贴 : 想要粘贴的地方按p件
    以光标所在行为准(包含当前行),向下复制指定行数
    按键 : 数字yy
    可是可视化复制
    按键 : ctrl+v
    3.剪切/删除
    按键 : dd (删除之后下一行上移)
    注意: dd严格意义上市剪切命令,但是剪切后不粘贴就达到删除效果
    剪切/删除以光标所在行为准,向下删除/剪切指定的行
    按键 : 数字dd (下一行上移)
    剪切/删除光标行,下一行不上移
    按键 : D (删除之后当前行会变成空白行)
    4.撤销/恢复
    撤销 : 命令模式 :u (小u)
    恢复 : ctrl + r 恢复之前的撤销
  2. 扩展
    1:光标的快速移动
    快速将光标移动到指定的行
    按键 : 数字G
    以当前光标为准向下/上移动n行
    按键 : 数字 ,数字
    以当前光标为准向左向右移动n个字符
    按键 : 数字,数字
    末行模式下快速移动光标:移动到指定的行
    按键: :数字 回车
    模式间切换

末行模式
进入方式
按键 : 命令模式下 输入 : 或者 /
退出: esc 两次 或 删除末行所有字符
保存
输入 ‘:w’ 保存文件
输入 ‘:w 路径’ 另存为
退出
输入 ‘:q’ 退出文件
强制退出
输入: ‘!q’ 强制退出不做保存
调用外部命令
输入: ’!外部命令’ 例如!ls
搜索
输入: /关键词
在搜索结果中上/下切换 : N/n
取消高亮
:nohl
替换
:s/搜索的关键词/替换为 替换光标所在行中的第一处 :s/搜索的关键词/替换为/g 替换光标所在行全部 :%s/搜索的关键词/替换为 替换整个文档中第一处符合条件的 :%s/搜索的关键词/替换为/g 替换整个文档符合条件的
%表示整个文档 g表示全局(global)
显示行号
:set number 关闭set nonumber
永久显示
vi /etc/virc
在最后一行添加set nu
拓展 vi打开多个文件 在末行模式下进行文件切换
查看当前已经打开的文件名称’:files’
%a 表示activite’ 当前正在打开的文件

表示上一个打开的文件

切换文件方式:
1.如需要打开指定文件 ‘:open 已经打开的文件名’
2.通过其他命令来切换上/下一个文件
‘bn’切换到下一个文件 ‘bp’ 切换到上一个文件
back next back previous

竖行分屏显示
:vs
命令行模式,然后输入下面的命令:“:vertical res 20” 。进入命令行模式前,光标所在的窗口宽度将变成全部宽度的20%。
光标窗口切换:
Ctrl+w 循环切换
Ctrl+w+L
把光标移到右边的屏中。
Ctrl+w+H
把光标移到左边的屏中。
Ctrl+w+K
把光标移到上边的屏中。
Ctrl+W+J
把光标移到下边的屏中。
编辑模式
进入方式: i光标所在前 a光标所在后 o光标所在行下面另起一行插入
I行首 A行尾 O上
理解记忆i (insert ) a (after)
扩展内容

  1. 代码着色
    显示着色: :syntax on
    关闭着色: :syntax off
  2. vi 计算器使用
    进入编辑模式 按下 ctrl+R →输入= → 光标会变到最后最后一行 →输入需要计算的内容按下回车
    扩展
    1.VI配置
    配置文件有三种情况:
    a. 在文件打开时在末行模式下输入的配置(临时的)
    b. 个人配置文件 (~/.vimrc)
    c. 全局配置文件 (/etc/vimrc)
    冲突以个人配置文件优先
    针对同一配置设置,个人配置文件中存在,则以个人配置文件为准,如果个人配置文件不存在这一项,则以全局配置文件为准
    2.异常退出
    在编辑文件后没有正常的退出,遇到突然关闭终端或者异常断电
    解决方式: 将交换文件删除即可(在编辑文件过程中的临时文件)
    文件名.swp
    3.别名机制
    文件位置~/.bashrc
    alias rm=’rm -i ’
    注意:如果想新创造的命令生效,必须重新登录当前用户
  3. 退出方式
    之前退出使用 q 或wq
    现在使用x退出,有修改x相当于wq 无相当于q
    大X用于文件加密(末行模式下)

Linux 自有服务
自有服务不用用户安装,系统安装好后就可以直接使用的服务(内置)

  1. 运行模式
    运行模式也称为运行级别
    在Linux中存在init 进程id是1
    该进程配置文件 inittab(系统运行级别配置文件, 位置/etc/inittab)
    对应关系
    0 - 表示关机级别(不要将默认的运行级别设置成这个值)
    1 - 单用户模式
    2- 多用户模式,不带NFS(networkfile system)
    3- 多用户模式,完全的多用户模式(不带桌面的,纯命令模式)
    4- 没有被使用的模式(被保留模式)
    5- X11,完整的图形化界面模式
    6- 表示重启级别(不要将默认的运行级别设置成这个值)
    与该级别相关的命令
    init 0 表示关机 init 3 表示切换到命令行模式 init 5 切换到图形界面
    init 6 重启电脑
    这些命令其实都是调用init进程,将数字(运行级别)传递给进程,进程去读配置文件执行相应的操作.
  2. 用户与用户组管理(重点)
    注意三个文件
    /etc/passwd 存储用户的关键信息
    /etc/group 存储用户组的关键信息
    /etc/shadow 存储用户的密码信息
  3. 用户管理
    ①添加用户
    常用语法: useradd 选项 用户名
    常用选项:
    -g : 表示指定用户的用户组,选项可以是用户组id,也可以是组名
    -G : 表示指定用户的用户附加组
    -u : uid用户的id(用户的标识符),系统默认从500之后按顺序往后分配uid,可通过自定义.
    验证是否成功
  4. 验证/etc/passwd的最后一行,查看是否有新加用户
  5. 验证是否存在家目录
    passwd文件
    用户名 : 密码 : 用户id : 用户组id : 注释:家目录 : 解释器shell
    注意: 在不添加选项的时候,执行useradd 会执行一系列操作
  6. 创建同名的家目录 2.创建同名的用户组
    查看用户主组去passwd 查看附加组可以查看group文件.

②修改用户
常用语法: usermode 选项 用户名
常用选项:
-g -G -u
-l (小写L)修改用户名 usermod -l 新用户 旧用户
[-l 新用户] 理解为选项
③设置密码
Linux不允许没有密码的用户登录到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登陆计算机.
常用语法: psswd 用户名
切换用户 su 用户名 输入用户密码 (su指 switch user)
④删除用户
常用语法:userdel 选项 用户名
常用选项: -r 表示在删除用户的同时删除其家目录
删除其他已经登陆的用户, kill 其他登陆用户的全部进程后再进行用户删除.
2. 用户组管理
系统对一个用户组中的所有用户集中管理,用户组的管理涉及用户组的添加删除和修改,组的操作实际上是对/etc/group文件更新
文件结构 用户组名 : 密码 : 用户组id
组内用户名表示附加组是该组的用户名称
①用户添加
常用语法 groupadd [选项] [组id] 用户组名
常用选项 -g 类似用户添加的-u -g表示自己设置一个用户组id ,如果不指定,则默认从500之后递增
②用户组的编辑
常用语法 groupmod 选项 用户组名
选项 -g : 修改组id
-n: 类似于用户修改的 -l ,表示修改用户组的名称
③用户组删除
常用语法 groupdel 用户组名
网络设置
网卡配置文件位置 /etc/sysconfig/network-scripts
网卡命名格式ifcfg-网卡名称
网卡重启 service network restart
在有的分支版本中可能没有service 命令来快速启动,但有一个共性目录:/etc/init.d,这个目录存放着很多对服务的快捷方式
此处重启网卡还可以使用 /etc/init.d/network restart

软连接
ln -s 原文件路径 快捷方式路径
ls -l 显示 连接名->源文件位置
如何开启单个网卡:
停止某个网卡ifdown 网卡名
开启某个网卡 ifup 网卡名
ssh服务
ssh (secure shell,安全外壳协议),2种常用作用:远程连接协议 远程文件传输协议
协议使用端口号 默认22
可以被修改:修改需要修改ssh服务的配置文件: /etc/ssh/ssh_config
服务启动 停止 重启
service sshd start/stop/restart
/etc/init.d/sshd start/stop/restart
可视化传输FileZilla 软件
Linux自有服务(2)
设置主机名
1、临时设置主机名 hostname 设置的主机名 (需要切换用户使之生效)
2、永久设置主机名(需要重启生效)
先找到一个文件 /etc/sysconfig/network
hosts位置 /etc/hosts
修改后保证hostname -f 能看到否则去修改 hosts文件

FQDN:(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称。(通过符号“.”)
例如:主机名是bigserver,域名是mycompany.com,那么FQDN就是bigserver.mycompany.com。
主机名修改不在hosts中修改会导致apache无法启动,会影响本地域名解析
chkconfig
作用: 管理启动项服务 并不是所有linux 下都有该服务,有的可能需要自己去添加.

  1. 开机启动项查询
    chkconfig --list
  2. 删除服务
    chkconfig --del 服务名 例chkconfig --del httpd
    3.添加开机启动服务
    chkconfig --add 服务名
    4.设置服务在某个级别下开机 启动或关闭
    chkconfig --level 连在一起的启动级别 服务名 on/off
    例 chkconfig --level 35 httpd on (apache 在3 5 等级下启动)

设置开机自启动
1.centos6使用chkconfig
chkconfig --list 查看开机启动项
chkconfig servicename on/off /设置服务开机自启动开/关
如果服务尚未被添加到 chkconfig 列表中,则现需要使用 –-add 参数将其添加进去:chkconfig --add servicename
只想看指定的服务: chkconfig --list servicename
2.centos7 使用systemctl
systemctl disable servicename 开机不自启动
systemctl enable servicename 开机自启动`

ntp服务
作用:用于计算机同步时间
同步方式: 一次性同步手动同步 和 自动同步

  1. 一次性同步
    ntpdate 时间服务器或ip

  2. 设置时间同步服务
    服务名 ntpd
    启动时间服务器 service ntpd start 或 /etc/init/ntpd start
    防火墙服务

  3. 查看iptables 是否开机启动
    chkconfig --list | grep iptables

  4. iptables 服务启动/重启/关闭
    /etc/init.d/iptables start/restart/stop

  5. 查看iptables 规则
    service iptables status 如果防火墙没启动显示未启动,如果已经启动,则显示防火墙的相关规则信息.

  6. 查看规则命令
    iptable -L -n -L表示列出规则 -n 以数字方式显示

  7. 简单设置防火墙规则
    iptabls -A INPUTE -p tcp --dport 80 -j ACCEPT
    -I将规则添加到最前 -A 添加到最后
    -p 协议 INPUTE 进站 --dport 指定端口
    -j 指定行为结果允许 accept 禁止 reject
    添加完成后需要保存操作 /etc/init.d/iptables save
    rpm管理(重点)
    作用:类似于windows的软件管家 .Linux服务器上的软件包进行管理操作,管理分为:查询 卸载 安装

  8. 查询某个软件的安装情况
    rpm -qa|grep 关键词
    -q 查询(query) -a 全部

  9. 卸载某个软件
    rpm -e 软件的名称 当存在依赖关系时不能卸载,只能通过强制卸载
    强制卸载 rpm -e 软件包名 --nodeps

  10. 软件的安装
    想装软件先找到安装包
    查看块状设备的信息 lsblk (list block devices )
    U盘挂载 和 解挂
    a. 解挂操作 umount 当前设备挂载点
    b. 挂载操作 mount 设备原始地址 要挂在的路径(建议/mnt)
    设备的原始地址: 地址同一都在/dev下,根据大小确定name值拼在一起组成原始地址

  11. 安装软件
    rpm -ivh 软件包的完整名称
    -i install
    -v显示进度条 -h 表示以#号形似显示进度条
    cron/crontab 计划任务(重点)
    systemctl enable 服务名
    作用:在指定的时间点执行指定的任务
    语法:crontable 选项
    -l list列出指定用户的计划任务列表
    -e edit编辑指定用户的计划任务列表
    -u user 指定用户,如果不指定则表示当前用户
    -r remove 删除指定用户的计划任务
    计划任务的规则语法格式:以行为单位,一行为一个计划
    分 时 日 月 周 需要执行的命令
    crontable -e
    例:每天0点0时执行 reboot 0 0 * * * reboot
    取值范围 分 :0-59 时 0-23 日 0-31 月 1-12 周 0-6 0指星期天
    四个符号: *取值范围的每一个数字 - 表示一个连续的区间
    / 表示每多少个 每10分钟一次 */10
    ,表示多个取值 1点 3点 1,3
    Crontab权限问题 : 本身是用户就可以创建自己的计划任务
    超级管理员可以通过设置来禁止某些用户设置计划任务
    配置文件位于: /etc/cron.deny(黑名单) 在文件中加入用户名
    /etc/cron.allow (白名单) 本身不存在,需要手动创建.使用在文件中
    加入用户名
    白名单优先级高于黑名单: 对于同一用户在黑白名单中,白名单效果生效
    Linux 权限管理(重点)
    1.Linux权限针对用户 用户组
    三个身份 owner group othes 权限 read write execute (数字表示4 2 1)

2.身份介绍

3.Linux权限介绍
首字母: d 表文件夹 –表文件 l表软连接

4.权限设置
用法: chmod [选项] [ + | - | = ] 文件 选项-R 递归设置权限
u 用户 g 用户组 o 其他用户 a所有用户
例子chmod -R u+r,g+w,o+w test
chmod 124 test
文件所有者加上执行权限 ,用户组加写权限,其他人加读权限
当任何一个具有读写执行权限文件会变成绿色 (-rwx------ dong dong 文件)
注意:设置写权限时需加上读权限(对文件只有写入不能读这种权限没意义)
4.注意事项
Linux 中删除一个文件不是看文件是否有权限,而是看问价你所在的目录是否有写权限.

属主与属组的设置
属主: 所属的用户 属组: 所属用户组
在文件创建的时候会使用创建者的信息
1.chown 改变文件所属用户
chown 用户名 文档路径
chown – R 用户名 文件夹路径
2.chgrp 改变文件所属用户组
chgrp 用户组 文档路径
chgrp -R用户组 文件夹路径
3.同时修改用户和用户组
chown 用户名:用户组名 文档位置
4.扩展
用户需要管理员权限,但是root不能把自己的密码告诉用户
解决: 使用sudo命令 sudo(switch user do )可以让管理员事先定义某些特殊命令谁可以执行
默认sudo中是没有除root用户之外的用户规则,要想使用必须配置sudo
配置文件/etc/sudoers
a.配置sudo文件使用 ‘visudo’
b.配置普通用户的权限
默认 root ALL=(ALL) ALL root用户名 如果是用户组表示%用户组
ALL允许登录主机
(ALL) 表示以谁的身份去执行,ALL表示root身份 ALL表示当前用户可以执行的命令,多个命令可以使用用’,’(逗号隔开)


编写sudo规则的时候不建议直接写命令的形式,建议写命令的完整路径,

路径可以使用which来查找


案例:将dong设置为可以添加用户,可以修改用户密码但是不能修改root密码
Dong ALL=(ALL) useradd路径, /user/bin/passwd, !/user/bin/passwd root
普通用户怎么查看自己具有哪些权限 sudo –l
网络相关概述
A类 10.0.0.0-10.255.255.255 B类172.16-172.31 C类 192.168.X.X
Ping arp tracerout
Shell
Linux 默认的shell 在/bin/bash
Shell入门
代码规范:
#!/bin/bash 告知系统当前的脚本需要使用的shell解释器
Shell相关命令

使用流程: 创建.sh文件 touch .sh
编写shell脚本
执行脚本 必须具有执行权限
执行在运行时一定要写成./test.sh而不是test.sh,直接写test.sh Linux 会去PATH(环境变量)里去寻找test.sh,而只用/bin/sbin /usr/bin /usr/sbin 等在PATH里,当你的目录通常不在PATH里,所以写成test.sh,是不会找到命令的,要用./test.sh告诉系统说,就在当前路径找

例:test.sh
#!/bin/bash
echo 'hello word’
useradd shelltest
touch /home/shelltest/try.html
echo 'success’
执行 ./test.sh 或者 /bin/bash test.sh
Shell进阶

  1. 变量
    先定义后使用 使用需要加$
    =左右不能有空格
    单双引号问题: 单引号不能识别变量,只会原样输出,单引号不能转义
    双引号可以实现转义
    `反引号 (esc下面的键) 当在脚本中需要执行一些指令并将执行结果赋给变量的时候需要使用反引号
    1.1只读变量 readonly
    #!/bin/bash
    str=10
    readonly str
    str=20
    echo $str =>10
    1.2接收用户输入
    语法: read -p 提示信息 变量
    1.3删除变量
    unset 变量名
  2. 条件判断语句
    if [ 条件 ] if [ 条件 ] if [ 条件 ]
    then then then
    指令 指令 指令
    else elif 条件
    fi 指令 then
    fi 指令
    fi
    单行写法 if 条件;then 命令;fi;
  3. 运算符
    3.1算数运算符 (表达式与运算符之间必须有空格)
    `expr $a + $b` (反引号)
    if [ $a == $b ] [ ] 中括号与变量间也有空格
    then
    fi 注意:除了赋值不加空格 其余都加空格
    3.2关系运算符
    -eq 相等 -ne 不相等 -gt 大于 -lt 小于
    ge 大于等于 -le 小于等于

e equal g great l less
3.3逻辑运算符
! 非 -o 或 -a 且
3.4 字符串运算符
= 相等 [ a = a= a=b ]
!= 不相等
-z 检测字符串的长度是否为0,为0返回true
-n 判断字符串长度是否为0,不为0返回true
str 检测字符串是否为空,不为空返回true

3.5文件测试运算符(重点)
文件测试运算符用于检测Linux 文件的各种属性
操作符 说明 举例
-b file 检测文件是否为块设备,如果是返回true [ -b $file ]
-c file 检测文件是否是字符设备文件,如果是返回true [ -c $file ]
-d file 检测是否为目录,是返回true [ - d $file ]
-f file 是否为普通文件(不是目录也不是设备文件)
是 返回true [ -f $file ]
-w file 检测文件是否可写,是返回true [ -w $file ]
-r file 检测文件是否可读,是返回true [ -r $file ]
-x file 检测文件是否可以执行,是返回true [ -x $file ]
-s file 检测文件是否为空(文件是否大于0)不为空返回true [ -s $file ]
-e file 检测文件(包括目录)是否存在,存在返回true [ -e $file ]
注意 ; 权限部分,有一个部分符合,则认为是有权限的
4. shell 脚本附带选项(重点)
问题描述:在Linux shell 中如何处理tail -10 test.txt 这样的命令选项
步骤:
调用tail命令 -> 系统把后续选项传递给tail -> tail先去打开指定文件 -> 取出最后的10行

$1 接收第一个参数

#!/bin/bash
echo $1 $2 执行 ./文件 参数1 参数2
$1表示接收第一个参数 $0 表示执行的脚本自身

mysql基础
备份
Linux下执行
完全备份(数据+结构): #mysqldump -uroot -p密码 -A >备份文件路径
指定库备份(数据+结构)#mysqldump -uroot -p密码 库名 >备份文件路径
多个库备份(数据+结构)#mysqldump -uroot -p密码 --databases db1 db2 >备份文件路径

案例:每一分钟备份整个数据库
编写shell
#!/bin/bash
filename=”mysql”date +%y%m%d”.sql”
mysqldump -uroot -p密码 库名 > $filename
编辑计划任务
crontab -r (进入计划任务编辑)

          • 脚本路径
            还原
            设置mysql连接字符集 set names=utf-8;
            还原 (1)mysql source方法和 (2)系统命令方法
  1. 还原全部数据
    (1) mysql命令行:
    msql> use库名
    mysql> source 备份文件路径
    (2) 系统命令行: mysql -uroot -p密码 <备份文件路径
  2. 还原单个数据库(需要指定数据库)
    (1) mysql > use 库名;
    (2) mysql source 备份文件路径
  3. 还原单个数据库的多个表(需要指定)
    扩展(mysql远程管理工具)
    解决远程登录问题
    a. 进入数据库选择mysql数据库
    b. 执行sql语句:select host,user from user;
    c 修改 update user set host=’%’where name=’值’
    d.刷新权限表或者重启mysql
    刷新权限表: mysql> flush privileges;

查看red版本
cat /etc/redhat-release
查询某个进程id pidof 服务名称

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值