- 浏览: 117311 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (131)
- J2EE (5)
- 系统配置 (2)
- eclipse (3)
- MySQL (3)
- 数据库 (1)
- log4j (2)
- hibernate (5)
- JBOSS (3)
- https (2)
- Struts2 (7)
- javascript (2)
- CSS (4)
- HTTP (2)
- J2SE (1)
- apache (6)
- XML (1)
- android (3)
- session (3)
- Spring (3)
- 前端优化 (2)
- Drools (2)
- java笔试题 (8)
- SVN (2)
- linux (19)
- linux命令 (3)
- memcache (1)
- Servlet (2)
- Java RMI (1)
- 领域模型 (1)
- LVS (4)
- Linux shell (2)
- WEB (1)
- F5 (2)
- WinRAR (1)
- TCP (1)
- MQ (2)
- weblogic (1)
- winxp安装FTP (1)
- WebLogic和Tomcat (1)
- 虚拟机 (1)
- nexus-maven (1)
- jstl (1)
- jvm (1)
- Redis (2)
- mongodb (3)
- JAVA (2)
- mybatis (1)
- SQLserver (1)
- GC (1)
- zabbix (1)
- node (1)
最新评论
-
huosange:
简单明了,通俗易懂
JAVA为什么只允许单继承
selinux:
传统权限:以人为单位,chmod,chown;对用户做授权。
selinux权限:以对象为单位,(服务,文件,人),安全性更加细,到
达文件级别;至今还没有一套很好的管理工具。
ls -Z 查看文件或目录的selinux的信息。
ps -Z
ps -ef -Z 查看进程的selinux的信息。
getenforce 查看selinux的状态。
状态:
enforcing:强制,主动进行权限审核。
permissive:被动的进行权限审核。会记录权限的信息。
disabled:关闭。
设置selinux的状态:
[root@test ~]# vim /etc/selinux/config
SELINUX=disabled ##将enforcing更改为disabled
SELINUXTYPE=targeted
临时关闭:
[root@test ~]# setenforce 0 临时关闭
[root@test ~]# setenforce 1 临时打开
[root@test ~]# getenforce
Disabled
iptables防火墙。
[root@test ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
IPTABLES防火墙共有4个表。
:filter 数据包过滤包的表。
:nat 地址转换的表。
:mangle 数据包处理的表
:raw 制定的规则的表
在每一个表中都有相应的链:
INPUT 输入的链,数据通过网卡进入系统。
FORWARD 转发的链
OUTPUT 输出的链,数据通过网卡出系统。
PREROUTING DNAT地址转换的链。
POSTROUTING SNAT地址转换的链。
所有规则都必须设置在指定的链上。
允许172.16.4.100主机访问本地的21端口。
iptables -t filter -A INPUT -s 172.16.4.100 -p tcp --dport 21
-j ACCEPT
拒绝172.16.4.47主机访问本机的22号端口。
iptables -t filter -A INPUT -s 172.16.4.47 -p tcp --dport 22
-j DROP|REJECT
配置iptables防火墙的规则。
方法一:setup 向导式配置。
方法二:通过shell脚本配置。 sh iptables.sh
方法三:通过iptables命令配置。
[root@test ~]# setup
[root@test ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
state NEW tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
state NEW tcp dpt:2049
REJECT all -- 0.0.0.0/0 0.0.0.0/0
reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
REJECT all -- 0.0.0.0/0 0.0.0.0/0
reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@test ~]#
关闭iptables防火墙:
[root@test ~]# service iptables stop #关闭iptables防火墙
iptables:清除防火墙规则: [确
定]
iptables:将链设置为政策 ACCEPT:filter nat [确
定]
iptables:正在卸载模块: [确
定]
[root@test ~]#
[root@test ~]# chkconfig iptables off #设置防火墙开机不自动运
行
NAS:网络附加存储;传统的一个文件服务器
支持nfs,cifs,iscsi协议
支持ftp,http,rsync协议
SAN:FC-SAN,FC协议。
nfs协议的配置,nfs服务器的配置。
[root@test ~]# rpm -qa |grep nfs
nfs-utils-1.2.3-26.el6.x86_64
nfs4-acl-tools-0.3.3-6.el6.x86_64
nfs-utils-lib-1.1.5-4.el6.x86_64
nfs服务器的配置文件。
[root@test ~]# vim /etc/exports
共享目录 允许访问此共享目录的主机或网段(选项) 主机(选项)
eg:(以空格做为分隔符)
/tmp 192.168.10.100(rw,sync) 192.168.10.0/24(ro)
选项:
ro 只读
rw 读写
sync 同步
async 异步
root_squash 将远程客户端的root用户降级为匿名用户
no_root_squash 不将远程客户端root用户降级
all_squash 将远程客户端的普通用户降级为匿名用户
no_all_squash 不将远程客户端普通用户降级。
实例:将/var/ftp目录共享,允许172.16.4.0/24网段以只读的方式访问,允许172.16.4.48主机可读写,root权限不降级。
[root@test ~]# cat /etc/exports
/var/ftp 172.16.4.0/24(ro) 172.16.4.48(rw,sync,no_root_squash)
[root@test ~]# service rpcbind restart
停止 rpcbind: [确定]
正在启动 rpcbind: [确定]
[root@test ~]# service nfs restart
关闭 NFS 守护进程: [确定]
关闭 NFS mountd: [确定]
关闭 NFS quotas: [确定]
关掉 NFS 配额: [确定]
启动 NFS mountd: [确定]
启动 NFS 守护进程: [确定]
[root@test ~]# cat /etc/exports
[root@test ~]# showmount -e 172.16.4.49
Export list for 172.16.4.49:
/var/ftp 172.16.4.48,172.16.4.0/24
在172.16.4.43主机上操作。
[root@rhel65 ~]# mount 172.16.4.49:/var/ftp /data
[root@rhel65 ~]# cd /data/
[root@rhel65 data]# ls
10.27.txt 10.29.txt pub webmin-1.680.tar.gz
10.28.txt proftpd-1.3.5.tar.gz putty.exe winscp554setup.exe
[root@rhel65 data]# cp *.txt /root/
[root@rhel65 data]# ls /root/
10.27.txt foremann puppett
10.28.txt foreman-new
rubygem-multi_json-1.7.7-2.fc20.noarch.rpm
10.29.txt install.log rubygem-rabl-0.8.0-2.fc20.noarch.rpm
anaconda-ks.cfg install.log.syslog ruby-libs-2.0.0.247-15.fc20.x86_64.rpm
[root@rhel65 data]# cp /root/install.log* .
cp: cannot create regular file `./install.log': Read-only file system
cp: cannot create regular file `./install.log.syslog': Read-only file system
在172.16.4.48主机上操作。
[root@server2 /]# mount 172.16.4.49:/var/ftp /data
[root@server2 /]# cd /data
[root@server2 data]# ls
10.27.txt 10.29.txt proftpd-1.3.5.tar.gz putty.exe webmin-1.680.tar.gz
10.28.txt 777 pub test winscp554setup.exe
[root@server2 data]# cd test/
[root@server2 test]# ls
[root@server2 test]# touch aa
[root@server2 test]#
nfs服务器
[root@test ~]# cat /etc/exports
/var/ftp 172.16.4.0/24(ro) 172.16.4.48(rw,sync,no_root_squash)
/tmp *(rw)
[root@test ~]# service rpcbind restart
[root@test ~]# service nfs restart
nfs客户端:
[root@test ~]# mount /data
[root@test ~]# mount 172.16.4.49:/tmp /data
[root@test ~]# df -Ph
cifs服务器:
1、windows和Linux之间的共享。
2、linux和linux之间的共享。
安装cifs服务器(samba服务器)
[root@test ~]# yum install samba.x86_64 -y
[root@test ~]# rpm -qa |grep samba
samba-common-3.5.10-125.el6.x86_64
samba-client-3.5.10-125.el6.x86_64
samba-3.5.10-125.el6.x86_64
samba-winbind-clients-3.5.10-125.el6.x86_64
samba服务器的配置文件
/etc/samba/smb.conf
配置匿名共享。
[root@test ftp]# vim /etc/samba/smb.conf
101 security = share (将原来的user更改为share)
[public]
comment = Public Stuff
path = /var/ftp
public = yes
writable = yes
用户级的共享。
/data 允许work1组和abc用户访问,work1组中的用户只读,abc可读写。
[root@test ftp]# mkdir /data
[root@test ftp]# chmod 777 /data
[root@test ftp]# ls -ld /data
drwxrwxrwx 2 root root 4096 10月 29 17:05 /data
[root@test ftp]# groupadd work1
[root@test ftp]# useradd user1
[root@test ftp]# useradd -s /sbin/nologin user2
[root@test ftp]# cat /etc/group|grep work1
work1:x:0:user1,user2
[root@test ftp]# useradd -s /sbin/nologin abc
[root@test ftp]# passwd abc
更改用户 abc 的密码 。
新的 密码:
无效的密码: 过短
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@test ftp]# usermod -s /sbin/nologin user1
[root@test ftp]# passwd user1
更改用户 user1 的密码 。
新的 密码:
无效的密码: 过短
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@test ftp]#
[root@test samba]# vim /etc/samba/smb.conf
102 passdb backend = smbpasswd
103 smb passwd file =/etc/samba/smbpasswd
104
297 [doc]
298 path = /data
299 public = no
300 write list = abc
301 read list = +work1
302 valid users = +work1,abc
[root@test samba]# service smb restart
[root@test samba]# smbpasswd -a user1
[root@test samba]# smbpasswd -a user2
[root@test samba]# smbpasswd -a abc
在windows上测试。
postfix邮件服务器:(实现25端口,smtp协议) pop3 110
安装postfix邮件服务器
[root@test samba]# rpm -qa |grep postfix
postfix-2.6.6-2.2.el6_1.x86_64
[root@test samba]# cd /etc/postfix/
[root@test postfix]# ls
access generic main.cf relocated virtual
canonical header_checks master.cf transport
[root@test postfix]#
[root@test mail]# vim /etc/hosts
172.16.4.49 mail.abc.com abc.com
[root@test mail]# vim /etc/postfix/main.cf
75 myhostname = mail.abc.com
83 mydomain = abc.com
99 myorigin = $mydomain
113 inet_interfaces = all (打开all)
116 #inet_interfaces = localhost (关闭localhost)
164 mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost
(添加$mydomain)
264 mynetworks = 172.16.4.0/24, 127.0.0.0/8
[root@test postfix]# service postfix restart
[root@test postfix]# netstat -atnup|grep :25
[root@test postfix]# mail user1@abc.com
Subject: test mail
this is test mail..
.
EOT
[root@test postfix]# cd /var/spool/mail/
[root@test mail]# ls
abc admin jake root rpc test user user1 user2
[root@test mail]# ll
总用量 12
-rw-rw---- 1 abc mail 0 10月 29 17:06 abc
-rw-rw----. 1 root mail 0 10月 27 22:12 admin
-rw-rw---- 1 jake mail 0 10月 28 22:09 jake
-rw-------. 1 root mail 6215 10月 29 16:01 root
-rw-rw----. 1 rpc mail 0 10月 27 18:17 rpc
-rw-rw----. 1 test mail 0 10月 27 22:52 test
-rw-rw----. 1 user mail 0 10月 27 22:05 user
-rw-rw----. 1 user1 mail 543 10月 29 17:52 user1
-rw-rw----. 1 user2 mail 0 10月 27 22:37 user2
[root@test mail]# cat user1
From root@abc.com Wed Oct 29 17:52:43 2014
Return-Path: <root@abc.com>
X-Original-To: user1@abc.com
Delivered-To: user1@abc.com
Received: by mail.abc.com (Postfix, from userid 0)
id 89286C2C1F; Wed, 29 Oct 2014 17:52:43 +0800 (CST)
Date: Wed, 29 Oct 2014 17:52:43 +0800
To: user1@abc.com
Subject: test mail
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20141029095243.89286C2C1F@mail.abc.com>
From: root@abc.com (root)
this is test mail..
pop3服务器的安装和配置。
[root@test mail]# yum install dovecot -y
[root@test mail]# /etc/init.d/dovecot restart
停止 Dovecot Imap: [失败]
正在启动 Dovecot Imap: [确定]
[root@test mail]# netstat -atnup|grep -i dov
tcp 0 0 0.0.0.0:110 0.0.0.0:*
LISTEN 9110/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:*
LISTEN 9110/dovecot
tcp 0 0 0.0.0.0:993 0.0.0.0:*
LISTEN 9110/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:*
LISTEN 9110/dovecot
tcp 0 0 :::110 :::*
LISTEN 9110/dovecot
tcp 0 0 :::143 :::*
LISTEN 9110/dovecot
tcp 0 0 :::993 :::*
LISTEN 9110/dovecot
tcp 0 0 :::995 :::*
LISTEN 9110/dovecot
[root@test mail]#
检查综合性能:
top -->z--b--k--r--q
cpu性能:
sar 1 1 (cpu,diskio)
mpstat -P ALL (查看CPU各核的信息)。
cat /proc/cpuinfo
vmstat 1 1
内存性能:
top
vmstat
free -m
cat /proc/meminfo (真正使用的内存=cache+buffer)
io性能:
sar -d 1 100 每隔1秒检查一次,共检查100次
iostat 1
vmstat 1
进程:
ps -aux
ps -ef
pstree
kill [-9] <pid>
killall <进程名称>
开机时间:
uptime
cat /proc/uptime
操作系统的版本
[root@test ~]# lsb_release -a (推荐)
LSB Version:
:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 6.3 (Santiago)
Release: 6.3
Codename: Santiago
[root@test ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.3 (Santiago)
[root@test ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 6.3 (Santiago)
Kernel \r on an \m
[root@test ~]# cat /etc/issue.net
Red Hat Enterprise Linux Server release 6.3 (Santiago)
Kernel \r on an \m
[root@test ~]#
密码不正确或丢失:
grub密码 root密码 处理办法
nok ok 进入/boot/grub/grub.conf文件,直接修改。
ok nok 通过单用户登录,修改密码。
nok nok
通过光盘,进入救援模式,删除grub.conf文件中的password行,再通过单用户模式登录更改root密码。
通过光盘进入到救援模式,一路回车--进入bash---chroot /mnt/sysimage---cd
/boot/grub---vim grub.conf(删除password行),保存退出,重启系统。
系统进入grub菜单,按e编辑--选择第二行(带kernel的行),输入空格1|single|S--回车---按b引导---passwd
root更改root密码---exit重启引导系统。
MBR故障处理:
1、模拟故障
[root@test ~]# dd if=/dev/zero of=/dev/sda bs=46 count=1
记录了1+0 的读入
记录了1+0 的写出
46字节(46 B)已复制,0.000196035 秒,235 kB/秒
[root@test ~]# reboot
2、解决故障;
通过光盘进入到救援模式,一路回车--进入bash---chroot
/mnt/sysimage--grub-install /dev/sda--重启。
文件被误删除。
1、通过rlinux工具。找回误删的信息。
2、ext4undelete命令,恢复误删的信息。
[root@test ~]# chattr +i install.sh
[root@test ~]# lsattr install.sh
----i--------e- install.sh
[root@test ~]# rm install.sh
rm:是否删除普通文件 "install.sh"?y
rm: 无法删除"install.sh": 不允许的操作
[root@test ~]# whoami
root
[root@test ~]# chattr -i install.sh
[root@test ~]# lsattr install.sh
-------------e- install.sh
[root@test ~]# rm install.sh
rm:是否删除普通文件 "install.sh"?y
[root@test iet]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
[root@test ~]# cat 1.sh
#!/bin/bash
date
[root@test ~]# chmod +x 1.sh
[root@test ~]# ll 1.sh
-rwxr-xr-x 1 root root 17 10月 29 21:26 1.sh
[root@test ~]# sh 1.sh
2014年 10月 29日 星期三 21:26:57 CST
[root@test ~]# bash 1.sh
2014年 10月 29日 星期三 21:27:04 CST
[root@test ~]# source 1.sh
2014年 10月 29日 星期三 21:27:07 CST
[root@test ~]# ./1.sh
2014年 10月 29日 星期三 21:27:12 CST
[root@test ~]# . /root/1.sh ###直接在此终端执行,不产生中断。
2014年 10月 29日 星期三 21:27:21 CST
输入输出重定向
> 正确输出重定向
2> 错误输出重定向
2>&1 正确和错误重定向
[root@test ~]# ls > 1.txt
[root@test ~]# cat 1.txt
1.sh
1.txt
anaconda-ks.cfg
Desktop
install.log.bak
install.log.syslog
sar.txt
[root@test ~]# ls 2> 1.txt
1.sh 1.txt anaconda-ks.cfg Desktop install.log.bak install.log.syslog
sar.txt
[root@test ~]# cat 1.txt
[root@test ~]# ls > 1.txt 2>&1 > /dev/null
[root@test ~]# cat 1.txt
[root@test ~]# ls > 1.txt 2>&1
[root@test ~]# cat 1.txt
1.sh
1.txt
anaconda-ks.cfg
Desktop
install.log.bak
install.log.syslog
sar.txt
[root@test ~]# lsadsfadsf > 1.txt 2>&1
[root@test ~]# cat 1.txt
-bash: lsadsfadsf: command not found
管道: | 前一个命令的输出作为后一个命令的输入。
ls -l |grep ^- 只显示文件。
前后台
[root@test ~]# pwd;date;time
/root
2014年 10月 29日 星期三 21:35:43 CST
real 0m0.000s
user 0m0.000s
sys 0m0.000s
[root@test ~]# ls &
[1] 3683
[root@test ~]# 1.sh 1.txt anaconda-ks.cfg Desktop install.log.bak
install.log.syslog sar.txt
[1]+ Done ls --color=auto
[root@test ~]# fg
-bash: fg: current: no such job
[root@test ~]# vim &
[1] 3684
[root@test ~]# fg
vim
[1]+ Stopped vim
[root@test ~]# jobs
[1]+ Stopped vim
[root@test ~]#
shell的变量
1、环境变量,set,env,export
2、预定义变量,用户不能直接修改。 $0,$1,$2..$$,$?,$#
3、自定义变量(局部和全局)
[root@test ~]# var=hello
[root@test ~]# echo $var
hello
[root@test ~]# bash
[root@test ~]# echo $var
[root@test ~]# exit
exit
[root@test ~]# export var1=hello
[root@test ~]# echo $var1
hello
[root@test ~]# bash
[root@test ~]# echo $var1
hello
正则表达式:
是一个表达式,由一个或多个元字符组成的表达式。
元字符:
不能再分隔的字符。
元字符:
* 匹配0个及0个以上。 ab*(a,a1,a2,ab,abc,abccd)
? 匹配0个或1个。 ab?(a,ab,abb,abc)
+ 匹配1个或1个以上。 ab+(ab,abc,abb)
. 匹配任意一个字符 a.(a1,aa,az,a#,a@)
[0-9] 匹配任意一个数字 1,2,3,4,5,6,7,8,9,0
[^0-9] 匹配非数字的任意一个字符 a,A,#,*,Z...
^[0-9] 匹配任意一个数字开头的 1a,0b,9c
[0-9a-zA-Z] 匹配任意一个数字,小写字母,大写字母
[abc] 匹配a或b或c
^a 匹配a开头
a$ 匹配a结尾
*==={0,}
?==={0,1}
+==={1,}
a\{2,9\} 匹配2个~9个a字符。
流程控制语句:
条件
if 条件;then
xxx
else
xxx
fi
[root@test ~]# vim if.sh
#!/bin/bash
echo "pls input yes or no"
read yn
if [ "$yn" = "yes" ];then
echo "input yes"
else
echo "input no"
fi
[root@test ~]# sh if.sh
pls input yes or no
yes
input yes
[root@test ~]# sh if.sh
pls input yes or no
no
input no
case语句:
case "变量" in
值1)
xxx
;;
值2)
xxx
;;
*)
xxx
;;
esac
[root@test ~]# vim case.sh
#!/bin/bash
echo "pls input yes or no"
read yn
case "$yn" in
[yY][eE][sS]|[yY])
echo "input yes"
;;
[nN][oO]|[Nn])
echo "input no"
;;
*)
echo "pls input yes or no"
;;
esac
[root@test ~]# chmod +x case.sh
[root@test ~]# sh case.sh
pls input yes or no
Yes
input yes
[root@test ~]# sh case.sh
pls input yes or no
N
input no
[root@test ~]# sh case.sh
pls input yes or no
Yees
pls input yes or no
for语句:
方法一:
for((i=0;i<=100;i++))
do
xxxx
done
方法二:
for 变量 in 值1 值2 ...
do
xxxx
done
[root@test ~]# vim for.sh
[root@test ~]# cat for.sh
#!/bin/bash
sum=0
for ((i=0;i<=100;i++))
do
let sum=sum+i
done
echo $sum
sum1=0
for i in `seq 1 100`
do
let sum1=sum1+i
done
echo $sum1
[root@test ~]# chmod +x for.sh
[root@test ~]# sh for.sh
5050
5050
[root@test ~]#
传统权限:以人为单位,chmod,chown;对用户做授权。
selinux权限:以对象为单位,(服务,文件,人),安全性更加细,到
达文件级别;至今还没有一套很好的管理工具。
ls -Z 查看文件或目录的selinux的信息。
ps -Z
ps -ef -Z 查看进程的selinux的信息。
getenforce 查看selinux的状态。
状态:
enforcing:强制,主动进行权限审核。
permissive:被动的进行权限审核。会记录权限的信息。
disabled:关闭。
设置selinux的状态:
[root@test ~]# vim /etc/selinux/config
SELINUX=disabled ##将enforcing更改为disabled
SELINUXTYPE=targeted
临时关闭:
[root@test ~]# setenforce 0 临时关闭
[root@test ~]# setenforce 1 临时打开
[root@test ~]# getenforce
Disabled
iptables防火墙。
[root@test ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
IPTABLES防火墙共有4个表。
:filter 数据包过滤包的表。
:nat 地址转换的表。
:mangle 数据包处理的表
:raw 制定的规则的表
在每一个表中都有相应的链:
INPUT 输入的链,数据通过网卡进入系统。
FORWARD 转发的链
OUTPUT 输出的链,数据通过网卡出系统。
PREROUTING DNAT地址转换的链。
POSTROUTING SNAT地址转换的链。
所有规则都必须设置在指定的链上。
允许172.16.4.100主机访问本地的21端口。
iptables -t filter -A INPUT -s 172.16.4.100 -p tcp --dport 21
-j ACCEPT
拒绝172.16.4.47主机访问本机的22号端口。
iptables -t filter -A INPUT -s 172.16.4.47 -p tcp --dport 22
-j DROP|REJECT
配置iptables防火墙的规则。
方法一:setup 向导式配置。
方法二:通过shell脚本配置。 sh iptables.sh
方法三:通过iptables命令配置。
[root@test ~]# setup
[root@test ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
state NEW tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
state NEW tcp dpt:2049
REJECT all -- 0.0.0.0/0 0.0.0.0/0
reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
REJECT all -- 0.0.0.0/0 0.0.0.0/0
reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@test ~]#
关闭iptables防火墙:
[root@test ~]# service iptables stop #关闭iptables防火墙
iptables:清除防火墙规则: [确
定]
iptables:将链设置为政策 ACCEPT:filter nat [确
定]
iptables:正在卸载模块: [确
定]
[root@test ~]#
[root@test ~]# chkconfig iptables off #设置防火墙开机不自动运
行
NAS:网络附加存储;传统的一个文件服务器
支持nfs,cifs,iscsi协议
支持ftp,http,rsync协议
SAN:FC-SAN,FC协议。
nfs协议的配置,nfs服务器的配置。
[root@test ~]# rpm -qa |grep nfs
nfs-utils-1.2.3-26.el6.x86_64
nfs4-acl-tools-0.3.3-6.el6.x86_64
nfs-utils-lib-1.1.5-4.el6.x86_64
nfs服务器的配置文件。
[root@test ~]# vim /etc/exports
共享目录 允许访问此共享目录的主机或网段(选项) 主机(选项)
eg:(以空格做为分隔符)
/tmp 192.168.10.100(rw,sync) 192.168.10.0/24(ro)
选项:
ro 只读
rw 读写
sync 同步
async 异步
root_squash 将远程客户端的root用户降级为匿名用户
no_root_squash 不将远程客户端root用户降级
all_squash 将远程客户端的普通用户降级为匿名用户
no_all_squash 不将远程客户端普通用户降级。
实例:将/var/ftp目录共享,允许172.16.4.0/24网段以只读的方式访问,允许172.16.4.48主机可读写,root权限不降级。
[root@test ~]# cat /etc/exports
/var/ftp 172.16.4.0/24(ro) 172.16.4.48(rw,sync,no_root_squash)
[root@test ~]# service rpcbind restart
停止 rpcbind: [确定]
正在启动 rpcbind: [确定]
[root@test ~]# service nfs restart
关闭 NFS 守护进程: [确定]
关闭 NFS mountd: [确定]
关闭 NFS quotas: [确定]
关掉 NFS 配额: [确定]
启动 NFS mountd: [确定]
启动 NFS 守护进程: [确定]
[root@test ~]# cat /etc/exports
[root@test ~]# showmount -e 172.16.4.49
Export list for 172.16.4.49:
/var/ftp 172.16.4.48,172.16.4.0/24
在172.16.4.43主机上操作。
[root@rhel65 ~]# mount 172.16.4.49:/var/ftp /data
[root@rhel65 ~]# cd /data/
[root@rhel65 data]# ls
10.27.txt 10.29.txt pub webmin-1.680.tar.gz
10.28.txt proftpd-1.3.5.tar.gz putty.exe winscp554setup.exe
[root@rhel65 data]# cp *.txt /root/
[root@rhel65 data]# ls /root/
10.27.txt foremann puppett
10.28.txt foreman-new
rubygem-multi_json-1.7.7-2.fc20.noarch.rpm
10.29.txt install.log rubygem-rabl-0.8.0-2.fc20.noarch.rpm
anaconda-ks.cfg install.log.syslog ruby-libs-2.0.0.247-15.fc20.x86_64.rpm
[root@rhel65 data]# cp /root/install.log* .
cp: cannot create regular file `./install.log': Read-only file system
cp: cannot create regular file `./install.log.syslog': Read-only file system
在172.16.4.48主机上操作。
[root@server2 /]# mount 172.16.4.49:/var/ftp /data
[root@server2 /]# cd /data
[root@server2 data]# ls
10.27.txt 10.29.txt proftpd-1.3.5.tar.gz putty.exe webmin-1.680.tar.gz
10.28.txt 777 pub test winscp554setup.exe
[root@server2 data]# cd test/
[root@server2 test]# ls
[root@server2 test]# touch aa
[root@server2 test]#
nfs服务器
[root@test ~]# cat /etc/exports
/var/ftp 172.16.4.0/24(ro) 172.16.4.48(rw,sync,no_root_squash)
/tmp *(rw)
[root@test ~]# service rpcbind restart
[root@test ~]# service nfs restart
nfs客户端:
[root@test ~]# mount /data
[root@test ~]# mount 172.16.4.49:/tmp /data
[root@test ~]# df -Ph
cifs服务器:
1、windows和Linux之间的共享。
2、linux和linux之间的共享。
安装cifs服务器(samba服务器)
[root@test ~]# yum install samba.x86_64 -y
[root@test ~]# rpm -qa |grep samba
samba-common-3.5.10-125.el6.x86_64
samba-client-3.5.10-125.el6.x86_64
samba-3.5.10-125.el6.x86_64
samba-winbind-clients-3.5.10-125.el6.x86_64
samba服务器的配置文件
/etc/samba/smb.conf
配置匿名共享。
[root@test ftp]# vim /etc/samba/smb.conf
101 security = share (将原来的user更改为share)
[public]
comment = Public Stuff
path = /var/ftp
public = yes
writable = yes
用户级的共享。
/data 允许work1组和abc用户访问,work1组中的用户只读,abc可读写。
[root@test ftp]# mkdir /data
[root@test ftp]# chmod 777 /data
[root@test ftp]# ls -ld /data
drwxrwxrwx 2 root root 4096 10月 29 17:05 /data
[root@test ftp]# groupadd work1
[root@test ftp]# useradd user1
[root@test ftp]# useradd -s /sbin/nologin user2
[root@test ftp]# cat /etc/group|grep work1
work1:x:0:user1,user2
[root@test ftp]# useradd -s /sbin/nologin abc
[root@test ftp]# passwd abc
更改用户 abc 的密码 。
新的 密码:
无效的密码: 过短
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@test ftp]# usermod -s /sbin/nologin user1
[root@test ftp]# passwd user1
更改用户 user1 的密码 。
新的 密码:
无效的密码: 过短
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@test ftp]#
[root@test samba]# vim /etc/samba/smb.conf
102 passdb backend = smbpasswd
103 smb passwd file =/etc/samba/smbpasswd
104
297 [doc]
298 path = /data
299 public = no
300 write list = abc
301 read list = +work1
302 valid users = +work1,abc
[root@test samba]# service smb restart
[root@test samba]# smbpasswd -a user1
[root@test samba]# smbpasswd -a user2
[root@test samba]# smbpasswd -a abc
在windows上测试。
postfix邮件服务器:(实现25端口,smtp协议) pop3 110
安装postfix邮件服务器
[root@test samba]# rpm -qa |grep postfix
postfix-2.6.6-2.2.el6_1.x86_64
[root@test samba]# cd /etc/postfix/
[root@test postfix]# ls
access generic main.cf relocated virtual
canonical header_checks master.cf transport
[root@test postfix]#
[root@test mail]# vim /etc/hosts
172.16.4.49 mail.abc.com abc.com
[root@test mail]# vim /etc/postfix/main.cf
75 myhostname = mail.abc.com
83 mydomain = abc.com
99 myorigin = $mydomain
113 inet_interfaces = all (打开all)
116 #inet_interfaces = localhost (关闭localhost)
164 mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost
(添加$mydomain)
264 mynetworks = 172.16.4.0/24, 127.0.0.0/8
[root@test postfix]# service postfix restart
[root@test postfix]# netstat -atnup|grep :25
[root@test postfix]# mail user1@abc.com
Subject: test mail
this is test mail..
.
EOT
[root@test postfix]# cd /var/spool/mail/
[root@test mail]# ls
abc admin jake root rpc test user user1 user2
[root@test mail]# ll
总用量 12
-rw-rw---- 1 abc mail 0 10月 29 17:06 abc
-rw-rw----. 1 root mail 0 10月 27 22:12 admin
-rw-rw---- 1 jake mail 0 10月 28 22:09 jake
-rw-------. 1 root mail 6215 10月 29 16:01 root
-rw-rw----. 1 rpc mail 0 10月 27 18:17 rpc
-rw-rw----. 1 test mail 0 10月 27 22:52 test
-rw-rw----. 1 user mail 0 10月 27 22:05 user
-rw-rw----. 1 user1 mail 543 10月 29 17:52 user1
-rw-rw----. 1 user2 mail 0 10月 27 22:37 user2
[root@test mail]# cat user1
From root@abc.com Wed Oct 29 17:52:43 2014
Return-Path: <root@abc.com>
X-Original-To: user1@abc.com
Delivered-To: user1@abc.com
Received: by mail.abc.com (Postfix, from userid 0)
id 89286C2C1F; Wed, 29 Oct 2014 17:52:43 +0800 (CST)
Date: Wed, 29 Oct 2014 17:52:43 +0800
To: user1@abc.com
Subject: test mail
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20141029095243.89286C2C1F@mail.abc.com>
From: root@abc.com (root)
this is test mail..
pop3服务器的安装和配置。
[root@test mail]# yum install dovecot -y
[root@test mail]# /etc/init.d/dovecot restart
停止 Dovecot Imap: [失败]
正在启动 Dovecot Imap: [确定]
[root@test mail]# netstat -atnup|grep -i dov
tcp 0 0 0.0.0.0:110 0.0.0.0:*
LISTEN 9110/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:*
LISTEN 9110/dovecot
tcp 0 0 0.0.0.0:993 0.0.0.0:*
LISTEN 9110/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:*
LISTEN 9110/dovecot
tcp 0 0 :::110 :::*
LISTEN 9110/dovecot
tcp 0 0 :::143 :::*
LISTEN 9110/dovecot
tcp 0 0 :::993 :::*
LISTEN 9110/dovecot
tcp 0 0 :::995 :::*
LISTEN 9110/dovecot
[root@test mail]#
检查综合性能:
top -->z--b--k--r--q
cpu性能:
sar 1 1 (cpu,diskio)
mpstat -P ALL (查看CPU各核的信息)。
cat /proc/cpuinfo
vmstat 1 1
内存性能:
top
vmstat
free -m
cat /proc/meminfo (真正使用的内存=cache+buffer)
io性能:
sar -d 1 100 每隔1秒检查一次,共检查100次
iostat 1
vmstat 1
进程:
ps -aux
ps -ef
pstree
kill [-9] <pid>
killall <进程名称>
开机时间:
uptime
cat /proc/uptime
操作系统的版本
[root@test ~]# lsb_release -a (推荐)
LSB Version:
:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 6.3 (Santiago)
Release: 6.3
Codename: Santiago
[root@test ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.3 (Santiago)
[root@test ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 6.3 (Santiago)
Kernel \r on an \m
[root@test ~]# cat /etc/issue.net
Red Hat Enterprise Linux Server release 6.3 (Santiago)
Kernel \r on an \m
[root@test ~]#
密码不正确或丢失:
grub密码 root密码 处理办法
nok ok 进入/boot/grub/grub.conf文件,直接修改。
ok nok 通过单用户登录,修改密码。
nok nok
通过光盘,进入救援模式,删除grub.conf文件中的password行,再通过单用户模式登录更改root密码。
通过光盘进入到救援模式,一路回车--进入bash---chroot /mnt/sysimage---cd
/boot/grub---vim grub.conf(删除password行),保存退出,重启系统。
系统进入grub菜单,按e编辑--选择第二行(带kernel的行),输入空格1|single|S--回车---按b引导---passwd
root更改root密码---exit重启引导系统。
MBR故障处理:
1、模拟故障
[root@test ~]# dd if=/dev/zero of=/dev/sda bs=46 count=1
记录了1+0 的读入
记录了1+0 的写出
46字节(46 B)已复制,0.000196035 秒,235 kB/秒
[root@test ~]# reboot
2、解决故障;
通过光盘进入到救援模式,一路回车--进入bash---chroot
/mnt/sysimage--grub-install /dev/sda--重启。
文件被误删除。
1、通过rlinux工具。找回误删的信息。
2、ext4undelete命令,恢复误删的信息。
[root@test ~]# chattr +i install.sh
[root@test ~]# lsattr install.sh
----i--------e- install.sh
[root@test ~]# rm install.sh
rm:是否删除普通文件 "install.sh"?y
rm: 无法删除"install.sh": 不允许的操作
[root@test ~]# whoami
root
[root@test ~]# chattr -i install.sh
[root@test ~]# lsattr install.sh
-------------e- install.sh
[root@test ~]# rm install.sh
rm:是否删除普通文件 "install.sh"?y
[root@test iet]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
[root@test ~]# cat 1.sh
#!/bin/bash
date
[root@test ~]# chmod +x 1.sh
[root@test ~]# ll 1.sh
-rwxr-xr-x 1 root root 17 10月 29 21:26 1.sh
[root@test ~]# sh 1.sh
2014年 10月 29日 星期三 21:26:57 CST
[root@test ~]# bash 1.sh
2014年 10月 29日 星期三 21:27:04 CST
[root@test ~]# source 1.sh
2014年 10月 29日 星期三 21:27:07 CST
[root@test ~]# ./1.sh
2014年 10月 29日 星期三 21:27:12 CST
[root@test ~]# . /root/1.sh ###直接在此终端执行,不产生中断。
2014年 10月 29日 星期三 21:27:21 CST
输入输出重定向
> 正确输出重定向
2> 错误输出重定向
2>&1 正确和错误重定向
[root@test ~]# ls > 1.txt
[root@test ~]# cat 1.txt
1.sh
1.txt
anaconda-ks.cfg
Desktop
install.log.bak
install.log.syslog
sar.txt
[root@test ~]# ls 2> 1.txt
1.sh 1.txt anaconda-ks.cfg Desktop install.log.bak install.log.syslog
sar.txt
[root@test ~]# cat 1.txt
[root@test ~]# ls > 1.txt 2>&1 > /dev/null
[root@test ~]# cat 1.txt
[root@test ~]# ls > 1.txt 2>&1
[root@test ~]# cat 1.txt
1.sh
1.txt
anaconda-ks.cfg
Desktop
install.log.bak
install.log.syslog
sar.txt
[root@test ~]# lsadsfadsf > 1.txt 2>&1
[root@test ~]# cat 1.txt
-bash: lsadsfadsf: command not found
管道: | 前一个命令的输出作为后一个命令的输入。
ls -l |grep ^- 只显示文件。
前后台
[root@test ~]# pwd;date;time
/root
2014年 10月 29日 星期三 21:35:43 CST
real 0m0.000s
user 0m0.000s
sys 0m0.000s
[root@test ~]# ls &
[1] 3683
[root@test ~]# 1.sh 1.txt anaconda-ks.cfg Desktop install.log.bak
install.log.syslog sar.txt
[1]+ Done ls --color=auto
[root@test ~]# fg
-bash: fg: current: no such job
[root@test ~]# vim &
[1] 3684
[root@test ~]# fg
vim
[1]+ Stopped vim
[root@test ~]# jobs
[1]+ Stopped vim
[root@test ~]#
shell的变量
1、环境变量,set,env,export
2、预定义变量,用户不能直接修改。 $0,$1,$2..$$,$?,$#
3、自定义变量(局部和全局)
[root@test ~]# var=hello
[root@test ~]# echo $var
hello
[root@test ~]# bash
[root@test ~]# echo $var
[root@test ~]# exit
exit
[root@test ~]# export var1=hello
[root@test ~]# echo $var1
hello
[root@test ~]# bash
[root@test ~]# echo $var1
hello
正则表达式:
是一个表达式,由一个或多个元字符组成的表达式。
元字符:
不能再分隔的字符。
元字符:
* 匹配0个及0个以上。 ab*(a,a1,a2,ab,abc,abccd)
? 匹配0个或1个。 ab?(a,ab,abb,abc)
+ 匹配1个或1个以上。 ab+(ab,abc,abb)
. 匹配任意一个字符 a.(a1,aa,az,a#,a@)
[0-9] 匹配任意一个数字 1,2,3,4,5,6,7,8,9,0
[^0-9] 匹配非数字的任意一个字符 a,A,#,*,Z...
^[0-9] 匹配任意一个数字开头的 1a,0b,9c
[0-9a-zA-Z] 匹配任意一个数字,小写字母,大写字母
[abc] 匹配a或b或c
^a 匹配a开头
a$ 匹配a结尾
*==={0,}
?==={0,1}
+==={1,}
a\{2,9\} 匹配2个~9个a字符。
流程控制语句:
条件
if 条件;then
xxx
else
xxx
fi
[root@test ~]# vim if.sh
#!/bin/bash
echo "pls input yes or no"
read yn
if [ "$yn" = "yes" ];then
echo "input yes"
else
echo "input no"
fi
[root@test ~]# sh if.sh
pls input yes or no
yes
input yes
[root@test ~]# sh if.sh
pls input yes or no
no
input no
case语句:
case "变量" in
值1)
xxx
;;
值2)
xxx
;;
*)
xxx
;;
esac
[root@test ~]# vim case.sh
#!/bin/bash
echo "pls input yes or no"
read yn
case "$yn" in
[yY][eE][sS]|[yY])
echo "input yes"
;;
[nN][oO]|[Nn])
echo "input no"
;;
*)
echo "pls input yes or no"
;;
esac
[root@test ~]# chmod +x case.sh
[root@test ~]# sh case.sh
pls input yes or no
Yes
input yes
[root@test ~]# sh case.sh
pls input yes or no
N
input no
[root@test ~]# sh case.sh
pls input yes or no
Yees
pls input yes or no
for语句:
方法一:
for((i=0;i<=100;i++))
do
xxxx
done
方法二:
for 变量 in 值1 值2 ...
do
xxxx
done
[root@test ~]# vim for.sh
[root@test ~]# cat for.sh
#!/bin/bash
sum=0
for ((i=0;i<=100;i++))
do
let sum=sum+i
done
echo $sum
sum1=0
for i in `seq 1 100`
do
let sum1=sum1+i
done
echo $sum1
[root@test ~]# chmod +x for.sh
[root@test ~]# sh for.sh
5050
5050
[root@test ~]#
发表评论
-
linux yum 下载至本地及使用本地缓存安装包
2018-12-29 08:04 30271.搭建yum服务器 2.使用yum下载缓存进行封装,然后使用 ... -
linux grep命令
2014-12-08 10:06 4901.作用 Linux系统中grep命令是一种强大的文本搜索工具 ... -
Linux中Samba详细安装
2014-12-08 09:05 464为了实现Windows主机与Linux服务器之间的资源共享,L ... -
linux挂载光驱以及yum配置与安装
2014-12-01 10:12 11121,使用命令ll /dev/* |gr ... -
linux培训笔记2
2014-10-28 16:47 768linux的编辑器: 1、gedit & (必须在图形 ... -
linux 培训笔记
2014-10-27 11:33 737何世晓 server raid lsi 内存大于等于1G,带锂 ... -
linux培训笔记
2014-10-27 11:32 511/boot分区单独划分,大小为200M,其他采用LVM逻辑卷划 ... -
Linux: 字体安装
2014-04-14 11:58 651本实验以安装宋体( simsun.ttf ) 为例, 记录下安 ... -
make报错:"/usr/bin/ld: cannot find -lXXX"
2014-04-12 18:16 731在编译php时报错如下: # make 。。。 /usr/bi ... -
linux--apache的ab命令
2014-03-09 19:24 4771. 最基本的关心两个选项 -c -n 例: ./ab -c ... -
/bin/sh^M: bad interpreter:没有那个文件或目录解决
2014-03-09 18:55 868/bin/sh^M: bad interpreter:没有那个 ... -
linux定时任务的设置
2014-01-03 11:47 524为当前用户创建cron服务 ... -
Centos和RHEL的区别
2013-10-19 20:19 717CentOS简介关于CentOS CentOS是Comm ... -
Linux 查看CPU信息、机器型号等硬件信息
2013-10-11 14:20 488测试机器的硬件信息: 查看CPU信息(型号) # cat ... -
Linux 查看CPU,内存,硬盘
2013-06-08 10:59 6791 查看CPU 1.1 查看CPU个数 # cat /pr ... -
常见命令
2013-06-08 10:53 5061,打开开机启动项(win7):在菜单搜索框中输入msconf ... -
Linux init.d
2013-06-08 10:05 557本文包括3部分内容 1、 Linux的引导过程 2 ... -
Linux下which、whereis、locate、find 命令的区别
2013-06-04 17:40 597我们经常在linux要查找 ...
相关推荐
Linux培训笔记.doc
北京培训机构资料,整理linux基础所有常用指令,快速入门必备
记录自己在尚观Linux培训机构培训时,做的笔记,欢迎下载阅看。
Linux培训教程:从实践中学习Linux-学习笔记.pdf
黑马程序员 linux从入门到精通配套笔记
北大青鸟计算机网络培训一期Linux课堂笔记,适合初学者入门使用
该部分是当时入门Linux培训时候记录的
培训笔记Linux系统入门
培训课上老师给到的,个人感觉挺不错的,清晰详尽,感兴趣的可以下载看看
嵌入式培训课程笔记,c、linux基础部分。有详细的讲解,对于初学者,或自学者来说绝对实用,个人整理共享
linux学习笔记,很实用,自己培训学习总结的资料,言简意赅,很实用。
linux学习笔记 个人查阅查找备用 在需要的时候查找内容 本文没有排目录 不方便用于学习, 可以用于工具查询书
Linux LAMP培训内部笔记 绝对正品
我培训时的linux笔记截图文档都有免费下载,希望帮到大家吧。咱不黑,免费的。
本人今年(13年)6月份参加达内嵌入式培训的课程笔记,关于Linux下的C编程(应用开发)、系统移植(U-boot、Kernel和文件系统)、驱动开发的,PDF文字格式,带完整书签,格式比较工整,自认为还可以共享出去。
里面linux驱动基础部分的代码、老师上课的笔记、还有教学的PPT,这是达内培训的资料,希望对喜欢学习的同学有所帮助
本人参加linux培训时的内部学习笔记,绝对是不可多得的学习资料!
LINUX培训笔记,从基础到复杂,讲得比较详细,有兴趣的可以看看。