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:存放一些经常被修改的目录放在这个目录下。包括各种日志文件。
对Linux系统中的目录和作用特别的熟悉
vim编辑器
yy 复制当前光标所在行
y数字y 从第几行复制到第几行
u 撤销上一步的操作
dd 删除当前光标所在行
d数字d 从光标开始删除到第几行
Shift + $ 移动到行尾
Shift + ^ 移动到行头
a 在光标后插入
i 在光标前插入
o 在当前光标的下一行插入
ESC 退出编辑模式
-------------------------
vi命令模式下操作:
/被查找的关键词 n 查找下一个 shift+n 向上查找
?被查找的关键词 n 查找上一个 shift+n 向下查找
:wq! 强制保存后退出
:wq 保存后退出
Linux防火墙
查看防火墙状态 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
Linux帮助查看
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查看日历
Linux系统中用户与组管理
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 过滤查找
-------------------------
Linux进程
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
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
Linux计划任务
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,不检测依赖进度
Linux中的Shell脚本
写一个简单的脚本
脚本以 #!/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})
$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$# (功能描述:这个变量代表命令行中所有参数的个数)
写一个简单的参数小脚本
#!/bin/bash
echo "$0 $1 $2"
echo "$*"
echo "$@"
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 "$@"
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软件仓库
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)
-------------------------
Linux基础知识梳理的更多相关文章
-
MySQL 基础知识梳理
MySQL 的安装方式有多种,但是对于不同场景,会有最适合该场景的 MySQL 安装方式,下面就介绍一下 MySQL 常见的安装方法,包括 rpm 安装,yum 安装,通用二进制安装以及源码编译安装, ...
-
[SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
-
[SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
-
[SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
-
[SQL] SQL 基础知识梳理(四) - 数据更新
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...
-
[SQL] SQL 基础知识梳理(五) - 复杂查询
SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...
-
Anliven - 基础知识梳理汇总 - 软件测试
基础知识梳理 - 软件测试 - 概念 基础知识梳理 - 软件测试 - 分类 基础知识梳理 - 软件测试 - 流程 基础知识梳理 - 软件测试 - 用例 基础知识梳理 - 软件测试 - 方法 基础知识梳 ...
-
[C# 基础知识梳理系列]专题六:泛型基础篇——为什么引入泛型
引言: 前面专题主要介绍了C#1中的2个核心特性——委托和事件,然而在C# 2.0中又引入一个很重要的特性,它就是泛型,大家在平常的操作中肯定会经常碰到并使用它,如果你对于它的一些相关特性还不是很了解 ...
-
java基础知识梳理
java基础知识梳理 1 基本数据类型
随机推荐
-
5.0 JS中引用类型介绍
其实,在前面的"js的六大数据类型"文章中稍微说了一下引用类型.前面我们说到js中有六大数据类型(五种基本数据类型 + 一种引用类型).下面的章节中,我们将详细讲解引用类型. 1. ...
-
关于struts2中的相对路径与绝对路径
从昨天开始复习了struts2的课程,之所以重新走上java的道路,是觉得写了一年的go程序,并没有感觉到学习了什么,反而把java给忘得干干净净的.想想我的计划,年后就要换工作了,至于要换到什么方向 ...
-
WinForm 快捷键设置(转载)
1.Alt+*(按钮快捷键) 按钮快捷键也为最常用快捷键,其设置也故为简单.在大家给button.label.menuStrip等其他控件的Text属性指定名称时,在其后面加上‘&’然后在加上 ...
-
Python包的相对导入时出现错误的解决方法
在练习Python中package的相对导入时,即 from . import XXX 或者 from .. import XXX 时会遇到这样两个错误: SystemError: Parent mo ...
-
《linux备份与恢复之一》.tar.bz2与.tar.gz格式的文本压缩率比较
对于文本压缩,据说bzip的算法要优于gzip,从而拥有更好的压缩比.特地找了两个文件来做一下测试,以下为测试结果: (1)源文件为591MB, .tar.bz2文件为61MB(10.32%), ...
-
Runtime 、 Block
1 使用Block方式,对学生对象进行排序. 1.1 问题 在iOS4.0+ 和Mac OS X 10.6+ 中添加了Block概念,以对C语言进行扩展.在Block中可以定义参数列表.返回类型,还可 ...
- 【英语】Bingo口语笔记(66) - 美式发音特点
-
GXPT(一)——UI设计
通过长时间的积淀.TGB再次開始GXPT模式,JAVA版..NET版两条线同一时候进行. 纯面向对象的底层架构的搭建:easyUI+MVC的界面设计:工作流的再次雄起.云平台的构想:Confluenc ...
-
php代码20个实用技巧 ------ 转发自菜鸟教程
1.不要实用相对路径 常常会看到: require_once('../../lib/some_class.php'); 该方法有很多缺点:它首先查找指定的php包含路径,然后查找当前目录,因此会检查过 ...
-
webapi 异步返回
两年前我遇到一个难题: https://q.cnblogs.com/q/78177 WebAPI中使用socket如果在server端回复了再返回值? 现在终于做出一种实现了: [HttpGet] ...