user账号 hzh hzh0671
root账号 hzh huzhenghui119
1、500GB的硬盘指的是十进制,转化成二进制大概是466GB左右,
2、8M/1M ASDL指的是下载和上传速度。
3、计算机架构有X86架构(8086/80286/80386)以及ARM架构
4、在Intel中,北桥与CPU、内存、显卡相连,速度较快(系统总线)而南桥与键盘、USB、网卡相连,速度较慢。
对于AMD,CPU直接与内存通信,速度较快。
5、超频问题
外频*倍频=CPU频率
其中外频是可修改的,而倍频是固定的,如外频是333MHZ,CPU频率是3.0GHZ.
这样可以将外频设置为400MHZ使得CPU频率为3.6GHZ
6、内存
对于服务器而言,内存容量有时比CPU速度还要重要。
操作系统就是管理驱动的。
7、CPU 1GHZ说的是1秒钟可以进行10的9次方次工作,若每个程序只有1000.。。的运行周期,则可以切换10的6次方次。
多任务,切换需要时间
8、Linux最强的地方在于网络,vi文本编辑器,shell脚本,这些是要掌握的。
Shell相关
9、命令别名设置功能 alias
alias 可以列出目前命令别名有哪些
alias lm='ls-al' <==设置命令别名
unalias lm <==取消设置别名
10、type 这个命令可以知道每个命令是否为bash的内置命令。
11、echo显示变量
(1)$变量名如 echo $PATH或者是echo ${PATH}
(2)变量的设置规则
◆变量与变量内容用=连接,等号两边不能直接接空格
◆变量名称只能是字母或数字,但是不能以数字开头
◆变量内容若有空格符可以用“” 或者’‘将变量内容结合起来。但是双引号内的特殊字符如$可以保持本来的特性,而''内$则为一般字符如:
LANG=en_US var="lang is $LANG"<== 显示为lang is en_US var='lang is $LANG'<<span style="font-family: Arial, Helvetica, sans-serif;">==</span><span style="font-family: Arial, Helvetica, sans-serif;">显示为lang is $LANG</span>◆可以用转义字符将特殊符号如($、 /、空格、! )等变为一般字符
◆若需要获取其它命令提供的信息,可以使用反单引号`命令` 或者$(命令)如要取得内核版本的设置为:version=$(uname-r) ,echo $version
◆若改变量为了增加内容时,可以用"$变量",或者${变量}来累加内容如 PATH="$PATH":/home/bin
◆若改变量需要在其它子进程中执行,则需要以export来使变量变成环境变量如 export PATH
◆一般系统变量为大写,而用户自定义为小写。
◆取消变量 unset 变量名称 如 unset myname
12、变量键盘读取、数组与声明:read,array,declare
◆read [-pt] variable,其中-p:后面可以接提示符。 -t:后面可以接等待的秒数,这两个参数为可选,如
# read -p “please key in you name” -t 30 named
◆declare [-aixr] variable ,其中,-a:将后面的变量定义为数组,-i为整数,-x为export为环境变量,-r是readonly不允许被改变如:
declare -i sum=100+300+50 ,echo $sum结果为450
sum=100+300+50 ,echo $sum结果为100+300+50
对于数组而言,用法为:var [1]="small" echo ${var[1]}
13、通配符与特殊符号
* 代表0个到无穷多个任意字符
? 代表一定有一个任意字符
[abc] 一定有abc中的任意一个
[0-9] 为数字
[^0-9] 非数字
# 批注
\ 转义
| 分隔两个管道命令的界定
; 连续命令执行
~ 用户的主文件夹
$ 变量符
& 作业控制
! 非
/ 目录符号
>,>> 数据流重定向,输出导向
<,<< 数据流重定向,输入导向
' ' 单引号,不具备变量置换功能
“” 双引号,具备变量置换功能
`` 反向单引号,也可以使用$(),获取由命令返回的信息,见变量设置规则那一节
()
{}
14、正则表达式,grep的一些高级参数
◆grep [-A] [-B] [--color=auto] '搜寻字符串' filename
-A: 后面加数字,列出本行和之后的那些行
-B:同上
--color=auto 可将搜寻到字符串的行标上颜色
-n: 列出行号
如 demesg | grep -n -A3 -B2 --color=auto 'eth'
◆查找特定字符串方法
# grep -n 'the' regular.txt <==选择the的行
# grep -vn 'the' regular.txt <==反向选择
# grep -in 'the' regular.txt <==不论大小写都匹配
◆[]的用法
# grep -n 't[ae]st' regular.txt <==[]匹配
# grep -n '[^g]oo' regular.txt
# grep -n '[^a-z]oo' regular.txt
◆行首与行尾字符^$
# grep -n '^the' regular.txt <==只在行首出现的the
# grep -n '^[a-z]' regular.txt <==以小写字母开头的行
# grep -n '\.$' regular.txt <==以.结尾的行,\为转义字符
# grep -n '^$' regular.txt <==空行
# grep -v '^$' regular.txt | grep -v '^#' <==不要空白行以及以#开头的行
◆任意一个字符.与重复字符*
.为一定有任意一个字符的意思
*为重复前面一个字符0次到无穷多次
.*代表0个或者任意多个字符的意思,如g.*g在两个g之间可以随便填充,也可以不填充
# grep -n 'g..d' regular.txt <==可以匹配如good以及glad等
# grep -n 'g*g' regular.txt <==可以匹配如good以及big等
◆限定连续RE字符范围{}
# grep -n 'o\{2\}' regular.txt <==重复2个o
'o\{2,5\}’<==重复2到5个o
'o\{2,\}’<==重复2个及以上的o
15、sed工具
添加 sed '2a drink tea' <==在第二行后面加上drink tea
删除 sed '2,5d' <==删除2-5行
替换 sed '2,5c no content'
显示 sed '2,5p'
替换字符 sed 's/要被替换的/新的字符串/g' 如
's/#.*$'/ /g' <==为去掉所有注释行
's/^$'/d' <==删除所有空行
16、shell script
◆第一个script
vi sh01.sh #!/bin/bash <==声明这个script使用的shell名称 <pre name="code" class="cpp"><pre name="code" class="cpp">PATH=/bin:/...:~bin<==利用变量PATH功能将shell.sh放在PATH指定的目录内,这里是~/bin/export PATHecho -e "hello world \n"<==加-e是有声音提示exit 0 执行用 sh sh01.sh 或者 bash sh01.sh
◆简单的加减乘除
echo $ ((13 % 3))
◆test的测试功能
test -e filename 改文件名是否存在
test -r filename 是否可读
test file1 -nt file2 判断file1是否比file2新
test n1 -eq n2 判断两数相等
test str1 = str2 判定两字符串相等
如test -e /dmtsai && echo "exist" || echo "not exist",其中&&是表达式为true执行,而||是表达式为false执行
◆vi的一些操作
:w 保存
:wq! 保存并退出
:q! 退出
:w filename 另存为
:x 保存并退出
◆利用判断符号[]
这个的作用和test是一样的,其用法为:
中括号内的每个组件都需要有空格键来分隔
在中括号内的变量,最好都以双引号括起来
在中括号内的常量,最好都以单引号或双引号括起来。
[ "$yn" == "N" -o "$yn" == "Y" ] && echo "ok,continue" && exit 0;
[ -z "$name" ] <==判断变量是否为空
◆shell script 的默认变量
$0 文件名
$# 参数个数
$@ 所有参数内容
$1 第一个参数,以后的类似
shift 次数,进行参数偏移
sh sh01.sh one two three <==执行并传入参数
◆ 条件判断式
if [ ]; then
elif[]; then
else
fi
如 if [ "$yn" == "N" ] || [ "$yn" == "Y" ]; then
◆利用case……esac判断,如:
case $1 in
"hello")
echo "hello,how are you"
;; <==注意这里的分号
"")
echo "the input is null"
;;
*) <==其它
echo "others"
;;
esac
◆利用function的功能
function ptint()
{
echo "you choice is $1"
}
调用方式为 print 1;<==传入实参1
◆循环(LOOP)
while [ ] <==还有一种方式为 until [ ]
do
done
<==
for var in con1 con2 ...
do
done
<==
for sit in $( seq 1 100)
do
done
还有一种为:
s=0
for ( ( i=1; i<=$nu; i=i+1) )
do
s=$( ($s+$i) )
done
◆shell script的追踪与调试
sh -n sh01.h
-n 检查脚本
-v 打印
-x 执行脚本,并显示过程
17、系统信息查看命令大全
◆系统
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
◆资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
◆磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
◆网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
◆进程
# ps -ef # 查看所有进程
# top # 查看进程动态
# pstree # 查看进程间的相关性
◆用户
# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务
◆服务
# chkconfig --list # 列出所有系统服务
# chkconfig --list | grep on # 列出所有启动的系统服务
◆程序
# rpm -qa # 查看所有安装的软件包