linux相关笔记

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 # 查看所有安装的软件包





 





你可能感兴趣的:(linux相关笔记)