LINUX学习笔记

 

纯手打,边读书边写。

1、创建用户
useradd -m -d /home/tom tom -G oracle
-m 表示为该用户创建一个主目录,并拷贝/etc/skel下的文件为其做初始化。-G 表示加入某个用户组。
用户默认设置都储存在/etc/default/useradd文件中,可以用useradd 
-D命令查看或者修改这些配置。包含了默认组,SHELL,skel,用户默认到期时间(EXPIRE),密码过期后可以修改的天数(INACTIVE)。
useradd -D -s shel -b path/to/default/home -e date -f days -g group

2、密码时效:
chage -M 30 tom 设置密码使用期限,30天后必须改密码。
如果不带参数,将进入交互式设置方式。

3、用户控制
passwd -l tom 锁用户,tom不能再使用密码登陆系统。但用户可以通过ssh之类的公钥机制登陆系统。通过passwd -u tom 来解锁。
完全禁止用户登录可以用:
usermod --expiredate 1 (设置用户到期日期为1970、01、01。这个值是UNIX时间的1)
或者修改登录的SHELL为/bin/false
usermod -s /bin/false

4、SHELL环境变量
PS1 标准提示符号:通常使用:
[\u@\h \W]\$ ===>[用户名@主机名 当前目录]# ===>[root@OA01 work]# 
另外还有\T 表示时间. \d日期

5、系统引导过程:

BIOS=>MBR=>GRUB=>stage 1\stage 1.5\stage 
2这时可以看到引导菜单项了=>GRUB寻找内核二进制代码,往内存加载initd.img文件(包含内核为了使用主机硬件而加载的驱动程序).加载完后,GRUB把控制权交给内核 
=>内核调用init程序,初始化操作系统和服务。

init的配置文件/etc/inittab:

REDHAT的运行级:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
id:5:initdefault: #如果开机不启动GHI,这把这里的5改成3

init通过以下脚本来管理服务和运行级别:
/etc/rc.d/rc.sysinit
/etc/rc.d/rc.local 
[root@OA01 rc.d]# ls -l
drwxr-xr-x 2 root root 4096 2007-10-31 init.d
-rwxr-xr-x 1 root root 2352 2004-03-17 rc
drwxr-xr-x 2 root root 4096 2011-04-26 rc0.d
drwxr-xr-x 2 root root 4096 2007-10-31 rc1.d
drwxr-xr-x 2 root root 4096 2007-12-17 rc2.d 
drwxr-xr-x 2 root root 4096 2010-08-11 rc3.d 
drwxr-xr-x 2 root root 4096 2010-08-11 rc4.d
drwxr-xr-x 2 root root 4096 2010-08-17 rc5.d #对应运行级的相关脚本
drwxr-xr-x 2 root root 4096 2007-10-31 rc6.d
-rwxr-xr-x 1 root root 367 2007-11-01 rc.local
-rwxr-xr-x 1 root root 27866 2006-04-21 rc.sysinit

[root@OA01 rc5.d]# ls
K01tog-pegasus K50netdump S05openibd S44acpid
K02cups-config-daemon K50tux S06cpuspeed S55sshd
K02NetworkManager K50vsftpd S08iptables S56rawdevices
K05saslauthd K73ypbind S10network S56xinetd
K10cups K74nscd S12syslog S85gpm
K10dc_server K74ntpd S13irqbalance S87iiim
K10psacct K85mdmpd S13iscsi S90crond
K12dc_client K87auditd S13portmap S90xfs
K15httpd K89netplugd S14nfslock S91smb
K20nfs K90bluetooth S15mdmonitor S95anacron
K24irda K91isdn S18rpcidmapd S95atd
K25squid K94diskdump S19rpcgssd S96readahead
K30sendmail K96ipmi S25netfs S97messagebus
K30spamassassin K96pcmcia S26apmd S97rhnsd
K35vncserver S00microcode_ctl S26lm_sensors S98haldaemon
K35winbind S04readahead_early S28autofs S99local
K50ibmasm S05kudzu S40smartd

S开头的脚本为服务启动脚本,后面的2位数字为运行顺序,再后面为服务名。
K对应的为服务关闭脚本。

重启某个服务 service mysqld stop && service mysqld start

管理这些服务,RH有chkconfig命令。UBUNTU用invoke-rc.d打开关闭服务,update-rc.d管理服务,另外还有sysv-rc-conf这个GUI文本界面(需额外安装)。

UNBUNTU使用Upstart方式来取代SysV的标准

6、crontab
00 * * * * /ftproot/transfer.sh
分钟 小时 日期 月份 星期 执行命令

每个用户的crontab在/var/spool/cron/$uid。记住系统的crontab跟每个用户crontab不一样!!

另外LINUX下用/etc/crontab存储系统的定时配置,文件内容如下:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly


主机有一个服务进程负责执行这些任务:crond


7、网络 ifconfig 查看(也可以修改)当前所有网络接口的状况和配置。eth0 表示第一个网卡。

配置文件:RH:/etc/sysconfig/network-scripts UNBUNTU:/etc/networks

UBUNTU可以直接修改 /etc/networks/interfaces 来配置网络。

路由: route

网络监测:ping tcpdump mt nc dig iptables

防火墙:RH: system-config-security UBTUNTU: ufw

记住一个命令: ufw allow 80/tcp 开通通过tcp访问80端口的权限。

配置防火墙专用工具: shorewall

TCP WRAPPERS 几个重要文件 /etc/hosts.allow 优先级> /etc/hosts.deny

8 包管理

RH : rpm YUM 
UBUNTU: aptitude dpkg

yum search nmap && yum install nmap && yum check-update && yum update && yum 
remove nmap && yum info kernel && yum clean all

配置文件 /etc/yum.conf /etc/yum.repos.d/ 状态文件 /var/lib/yum /var/cache/yum

UBUNTU apt-get install xxx


9 存储管理 
分区 fdisk /dev/sda && fdisk /dev/sdb

文件系统 EXT3 EXT4 XFS JFS
创建文件系统 mkfs.ext3 mkfs.ext4 mkfx.vfat 
调整文件系统参数 tune2fs

一个命令 dmesg 通过内核检查设备节点
查找U盘 : dmesg |grep sd

加载文件系统 mount
mount -t ext3 /dev/sdb1 /mnt/data
lsof /mnt/data 查看哪些进程在读写某个文件系统

系统自动挂载的文件系统配置文件 /etc/fstab

检查文件系统利用率 df -h && df -sh *

*****RAID 
创建带备份的raid1
mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb1 /dev/sdc1 
--spare-devices=1 /dev/sdd1
配置文件:/etc/mdadm.conf /etc/mdaadm/mdaadm.conf

******逻辑卷
dd if=/dev/zero of=/dev/sdg bs=512 count=1
pvcreate /dev/md0
pvs
vgs
lvs
vgextend ubuntu-au-mel-1 /dev/md0
vgreduce au-mel-ubuntu-1 /dev/md0
vgcreate raid-volumn /dev/md0
lvcreate --name www --size 2G raid-volumn
mkfs.ext3 /dev/raid-volumn/www
#编辑fstab,定义加载点
mount /srv/www

lvextend --size +2G /dev/raid-volumn/www

LVM管理文件系统的方式比分区稍微麻烦一点,但是使用灵活很多。

03 2012 档案

 
摘要: 高度浓缩版 用户管理、启动过程、硬盘管理、crontab、网络基础、包管理阅读全文
posted @ 2012-03-15 20:08 喻头快跑 阅读(610) | 评论 (1) 编辑
摘要: 准备整理两文,简单写个中文版Guild.http://rubysource.com/too-good-to-be-true-twitter-bootstrap-meets-formtastic-and-tabulous/http://blog.sam-pointer.com/阅读全文
posted @ 2012-03-13 01:41 喻头快跑 阅读(12) | 评论 (0) 编辑
摘要: UBUNTU各种设置HowTo阅读全文
posted @ 2012-03-12 11:35 喻头快跑 阅读(3) | 评论 (0) 编辑
摘要: 谈谈怎么用显示器阅读全文
posted @ 2012-03-11 16:41 喻头快跑 阅读(54) | 评论 (0) 编辑
摘要: 来源:http://wiki.bitnami.org/Virtual_Appliances_Quick_Start_GuideHow to enable sshd?The "ssh" server is disabled by default. You can enable the "ssh" server as follows:For Ubuntu$ sudo mv /etc/init/ssh.conf.back /etc/init/ssh.conf$ sudo start sshFor openSUSE$ sudo chkconfig sshd on阅读全文
posted @ 2012-03-10 22:59 喻头快跑 阅读(32) | 评论 (1) 编辑
摘要: 之前一直用KINDLE 3看书,但是最近读几本扫描版的电子书感觉非常吃力。KINDLE的电子墨水+7寸屏,完全被打败了。再加上老婆经常用手机上网,移动上网也有入手一台PAD的需求。所以做了下市场上9-10寸PAD的研究。首选当然是IPAD2了,最近又降了700。到了2900的价位。如果在国外肯定是入这个了,但是在中国这个神奇的地方,还有一种叫山寨的东西。所以今天主要也是考察下市场有哪些可以入眼的山寨PAD。联想的乐PAD A1:价格999.http://mp3.zol.com.cn/272/2725252_all.html#p2725252阅读全文
posted @ 2012-03-10 18:02 喻头快跑 阅读(9) | 评论 (0) 编辑
摘要: RUBY元编程 第三章闭包结尾的守关BOSS题:编写你的第一种领域专属语言。阅读全文
posted @ 2012-03-09 00:09 喻头快跑 阅读(890) | 评论 (0) 编辑
摘要: class Array def iterate!(&code) #注意这里用了&符号 self.each_with_index do |n,i| self[i] = code.call(n) end endendarr = [1,2,3,4]arr.iterate! do |n| n ** 2end #[1, 4, 9, 16] 今天读代码的时候,被这个&符号给蒙住了。ruby语言中时不时蹦出各种奇怪的符号,而且作用不明。还不好查得。于是认真研究了一下。&操作符的真正含义:proc对象和块之间的切换符号。&code 这是一个块, code 这是一个pro阅读全文
posted @ 2012-03-08 01:11 喻头快跑 阅读(738) | 评论 (0) 编辑
原文地址:https://www.cnblogs.com/Leo_wl/p/2399724.html