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’-------------------------远程登录到Linuxlinux系统中是通过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:58date -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)查看所有服务器自启配置 chkconfig2) 关掉指定服务的自动启动 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
# 脚本的注释:打印helloworldecho "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/bashecho "$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/bashif [ $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/bashcase $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 " donefor j in "[email protected]"
do echo "The num is $j" done 第二种for循环for (( 初始值;循环控制条件;变量变化 )) do 程序 done写一个简单的小脚本
#!/bin/bashs=0
for((i=0;i<=100;i++))do s=$[$s+$i]doneecho "$s"-------------------------while循环while [ 条件判断式 ] do 程序 done写一个简单的小脚本
#!/bin/bashs=0i=1while [ $i -le 100 ]do s=$[$s+$i] i=$[$i+1]doneecho $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)---------------------------------------------------------------------------
精彩评论