运维开发网

Linux基础知识梳理

运维开发网 https://www.qedev.com 2020-04-23 12:42 出处:网络
Linux基础知识梳理 Linux内核最初只是由芬兰人林纳斯?托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务

Linux基础知识梳理

Linux内核最初只是由芬兰人林纳斯?托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。

它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE

------------------

Linux的特点:

Linux中一切都是文件.Linux中不根据文件的后缀区分文件的类型

能说出Linux中常见的系统目录及作用

/bin:是Binary的缩写,这个目录存放着系统必备执行命令

/boot:这里存放的是启动Linux时使用的一些核心文件

/dev:Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/etc:所有的系统管理所需要的配置文件和子目录。

/home:存放普通用户的家目录,在Linux中每个用户都有一个自己的家目录,

/lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备默认挂载到这个目录下。

/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

/root:系统管理员的家目录

/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

/seLinux:类似于Windows上的防火墙

/tmp:存放临时文件的目录

/usr: 用户的应用程序安装的默认目录,类似与windows下的program files目录。

/var:存放一些经常被修改的目录放在这个目录下。包括各种日志文件。

----------------------------

vim编辑器

yy 复制当前光标所在行

y数字y 从第几行复制到第几行

u 撤销上一步的操作

dd 删除当前光标所在行

d数字d 从光标开始删除到第几行

Shift + $ 移动到行尾

Shift + ^ 移动到行头

a 在光标后插入

i 在光标前插入

o 在当前光标的下一行插入

ESC 退出编辑模式

-------------------------

vi命令模式下操作:

/被查找的关键词 n 查找下一个 shift+n 向上查找

?被查找的关键词 n 查找上一个 shift+n 向下查找

:wq! 强制保存后退出

:wq 保存后退出

-------------------------

查看防火墙状态 service iptables status

临时关闭防火墙 service iptables stop

关闭防火墙开机启动 chkconfig iptables off

开启防火墙开机启动 chkconfig iptables on

查看防火墙开机启动状态 chkconfig iptables --list

-------------------------

linux系统有7个运行级别(runlevel)

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

运行级别2:多用户状态(没有NFS)

运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式

运行级别4:系统未使用,保留

运行级别5:X11控制台,登录后进入图形GUI模式

运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

-------------------------

sync (功能描述:将数据由内存同步到硬盘中)

-------------------------

shutdown [选项] 时间

shutdown -h 关机 halt : 关闭系统

shutdown -r 重启 reboot:就是重启

设置系统在10分钟后关机,并将此次关机提示显示在屏幕上

shutdown -h 10 ‘This server will shutdown after 10 mins’

-------------------------

远程登录到Linux

linux系统中是通过SSH服务实现的远程登录功能,默认ssh服务端口号为 22

常用的Linux远程登录终端:

SecureCRT, Putty, SSH Secure Shell,XShell

-------------------------

man 帮助文档命令

help 查看Shell内置命令的帮助信息

-------------------------

Linux中常用的快捷键

ctrl + c:停止进程

ctrl+l:清屏

彻底清屏是:reset

-------------------------

Linux中常用的命令

pwd:显示当前工作目录的绝对路径)

打印/home 的工作路径 pwd /home

ls 列出目录的内容

-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来

-l :长数据串列出,包含文件的属性与权限

mkdir 创建一个新的目录

-p:创建多层目录,递归的创建目录

rmdir 删除一个空的目录

touch 创建空文件

d ~或者cd :回到当前用户自己的家目录)

cd - :回到上一次所在目录

cd .. :回到当前目录的上一级目录)

cp 复制文件或目录

cp -r 递归的复制整个文件夹

rm 移除文件或目录

rmdir deleteEmptyFolder :删除空目录)

rm -rf deleteFile :递归删除目录中所有内容)

mv 移动文件与目录或重命名

cat 查看文件内容

tac查看文件内容,从最后一行开始显示

more 查看文件内容,一页一页的显示文件内容

less 查看文件内容

/字串 :向下搜寻『字串』的功能;n:向下查找;N:向上查找;

?字串 :向上搜寻『字串』的功能;n:向上查找;N:向下查找;

head查看文件内容

head -n 10 文件 (功能描述:查看文件头10行内容,10可以是任意行数)

tail 查看文件内容

-------------------------

重定向命令

> 覆盖写入重定向

>> 追加写入重定向

-------------------------

echo 打印字符串到屏幕上

ln软链接

history 查看所敲命令历史

date显示当前时间

(1)date :显示当前时间)

(2)date +%Y :显示当前年份)

(3)date +%m :显示当前月份)

(4)date +%d :显示当前是哪一天)

(5)date +%Y%m%d date +%Y/%m/%d … :显示当前年月日各种格式 )

(6)date "+%Y-%m-%d %H:%M:%S" :显示年月日时分秒)

用指定的格式显示时间

date "+%Y-%m-%d %H:%M:%S"

2017-06-19 20:54:58

date -s 字符串时间 设置系统的时间

(1)date -d ‘1 days ago‘ (功能描述:显示前一天日期)

(2)date -d yesterday +%Y%m%d (同上)

(3)date -d next-day +%Y%m%d (功能描述:显示明天日期)

(4)date -d ‘next monday‘ (功能描述:显示下周一时间)

-------------------------

cal查看日历

-------------------------

useradd 添加新用户

passwd 设置用户密码

id 判断用户是否存在

-------------------------

su 与su - 的区别

userdel 删除用户

userdel -r 用户名 删除用户的时候也删除用户的家目录

-------------------------

who 查看登录用户信息

whoami 显示当前登录系统的用户名称

who 查看当前有哪些用户登录到了系统上

cat /etc/passwd 查看创建了哪些用户

usermod修改用户所属组

groupadd 新增组

groupdel删除组

groupmod修改组

cat /etc/group 查看创建了哪些组

-------------------------

chmod 修改文件或目录的权限

文件: r-查看;w-修改;x-执行文件

目录: r-列出目录内容;w-在目录中创建和删除;x-进入目录

删除一个文件的前提条件:该文件所在的目录有写权限,你才能删除该文件。

-------------------------

chown改变所有者

-R:表示递归修改文件夹中的所有文件的所有者和组

-------------------------

chgrp改变所属组

-------------------------

硬盘分区

fdisk -l :查看当前硬盘的分区详情

-------------------------

df查看硬盘信息

-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;

-k :以 KBytes 的容量显示各文件系统;

-m :以 MBytes 的容量显示各文件系统;

-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

-H :以 M=1000K 取代 M=1024K 的进位方式;

-T :显示文件系统类型,连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;

-i :不用硬盘容量,而以 inode 的数量来显示

-------------------------

mount/umount挂载/卸载

Linux 挂载

对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构

Linux中每个分区都是用来组成整个文件系统的一部分,她在用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。

-------------------------

find 查找文件或者目录

管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

grep 过滤查找

-------------------------

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

ps查看系统中所有进程

ps -aux :查看系统中所有进程)

-------------------------

top查看当前系统的健康状态,默认是3秒更新一次命令的执行结果

Swap:交换分区(虚拟内存)

Mem:物理内存

running 正在运行的进程数

sleeping 睡眠的进程

stopped 正在停止的进程

zombie 僵尸进程

-------------------------

pstree查看进程树

kill终止进程

kill -9 pid进程号 表示强迫进程立即停止

-------------------------

netstat显示网络统计信息

netstat -anp (功能描述:此命令用来显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、或是路由表内容)

查看端口50070的使用情况

netstat -anp | grep 50070

-------------------------

tar打包

-c 产生.tar打包文件

-v 显示详细信息

-f 指定压缩后的文件名

-z 打包同时压缩

-x 解包.tar文件

压缩:tar -zcvf XXX.tar.gz n1.txt n2.txt

解压:tar -zxvf XXX.tar.gz -C 解压目的地

-------------------------

service后台服务管理

1)查看指定服务的状态 service network status

2)停止指定服务 service network stop

3) 启动指定服务 service network start

4)重启指定服务 service network restart

5)查看系统中所有的后台服务 service --status-all

-------------------------

chkconfig设置后台服务的自启配置

1)查看所有服务器自启配置 chkconfig

2) 关掉指定服务的自动启动 chkconfig iptables off

3)开启指定服务的自动启动 chkconfig iptables on

-------------------------

crond系统定时任务

crontab

-e: 编辑crontab定时任务

-l: 查询crontab任务

-r: 删除当前用户所有的crontab任务

第一个“*” 一小时当中的第几分钟 0-59

第二个“*” 一天当中的第几小时 0-23

第三个“*” 一个月当中的第几天 1-31

第四个“*” 一年当中的第几月 1-12

第五个“*” 一周当中的星期几 0-7(0和7都代表星期日)

* 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。

, 代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令

- 代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令

*/n 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令

-------------------------

RPM软件包管理

rpm -qa (功能描述:查询所安装的所有rpm软件包)

rpm -qa | grep rpm软件包 查询指定的软件包

rpm -e RPM软件包 卸载一个软件包

安装一个软件包

rpm -ivh RPM包全名

-i=install,安装

-v=verbose,显示详细信息

-h=hash,进度条

--nodeps,不检测依赖进度

-------------------------

写一个简单的脚本

脚本以 #!/bin/bash 开头

#!/bin/bash

# 脚本的注释:打印helloworld

echo "helloworld"

执行一个脚本前需要先给这个脚本设定一个执行权限

chmod 777 helloworld.sh

./helloWorld.sh

或者

bash helloWorld.sh

-------------------------

Linux Shell中的变量分为,系统变量和用户自定义变量。

系统变量:系统变量:$HOME、$PWD、$SHELL、$USER

-------------------------

设置环境变量

(1)export 变量名=变量值 :设置环境变量的值)

(2)source 配置文件 :让修改后的配置信息立即生效)

(3)echo $变量名 :查询环境变量的值)

-------------------------

Shell脚本中的位置参数

位置参数变量

$n (功能描述:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})

$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)

[email protected] (功能描述:这个变量也代表命令行中所有的参数,不过[email protected]把每个参数区分对待)

$# (功能描述:这个变量代表命令行中所有参数的个数)

写一个简单的参数小脚本

#!/bin/bash

echo "$0 $1 $2"

echo "$*"

echo "[email protected]"

echo "$#"

-------------------------

常用判断条件

-lt 小于

-le 小于等于

-eq 等于

-gt 大于

-ge 大于等于

-ne 不等于

2)按照文件权限进行判断

-r 有读的权限

-w 有写的权限

-x 有执行的权限

3)按照文件类型进行判断

-f 文件存在并且是一个普通文件

-e 文件是否存在

-d 目录是否存在

示例:

23是否大于等于22

[ 23 -ge 22 ]

(2)student.txt是否具有写权限

[ -w student.txt ]

(3)/root/install.log目录中的文件是否存在

[ -e /root/install.log ]

-------------------------

流程控制语句:

if判断

if [ 条件判断式 ]

then

程序

fi

写一个简单的小脚本,判断输入的数是否等于123,是否等于456

#!/bin/bash

if [ $1 -eq "123" ]

then

echo "123"

elif [ $1 -eq "456" ]

then

echo "456"

fi

-------------------------

case $变量名 in

"值1")

如果变量的值等于值1,则执行程序1

;;

"值2")

如果变量的值等于值2,则执行程序2

;;

…省略其他分支…

*)

如果变量的值都不是以上的值,则执行此程序

;;

esac

写一个简单的case判断小脚本

!/bin/bash

case $1 in

"1")

echo "1"

;;

"2")

echo "2"

;;

*)

echo "other"

;;

esac

-------------------------

for循环

for 变量 in 值1 值2 值3…

do

程序

done

写一个简单的小脚本,打印输入的参数

#!/bin/bash

#打印数字

for i in "$*"

do

echo "The num is $i "

done

for j in "[email protected]"

do

echo "The num is $j"

done

第二种for循环

for (( 初始值;循环控制条件;变量变化 ))

do

程序

done

写一个简单的小脚本

#!/bin/bash

s=0

for((i=0;i<=100;i++))

do

s=$[$s+$i]

done

echo "$s"

-------------------------

while循环

while [ 条件判断式 ]

do

程序

done

写一个简单的小脚本

#!/bin/bash

s=0

i=1

while [ $i -le 100 ]

do

s=$[$s+$i]

i=$[$i+1]

done

echo $s

-------------------------

read读取控制台输入

-p:指定读取值时的提示符;

-t:指定读取值时等待的时间(秒)

-------------------------

软件仓库

YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

为什么需要学会配置本地Yum源

YUM源虽然可以简化我们在Linux上安装软件的过程,但是生产环境通常无法上网,不能连接外网的YUM源,所以就无法使用yum命令安装软件了。为了在内网中也可以使用yum安装相关的软件,就要配置yum源。

YUM源其实就是一个保存了多个RPM包的服务器,可以通过http的方式来检索、下载并安装相关的RPM包。

 

yum的常用命令: yum install -y rpm软件包yum list :列出所有可用的package和package组) yum list :列出所有可用的package和package组)yum clean all :清除所有缓冲数据)yum deplist rpm软件包 :列出一个包所有依赖的包)yum remove rpm软件包 :删除httpd)---------------------------------------------------------------------------

0

精彩评论

暂无评论...
验证码 换一张
取 消