linux 小知识!!!
0 .linux启动的引导流程!
Firmvare(第一: 固件的加电自检,检测固件cpu\内存\显卡等设备是否正常. CMOS/BIOS)
BootLoader(第二: 读取硬盘的主引导记录(MBR)里面的bootloader,bootloader最重要的作用是载入内核)
kernel (第三: 内核夹在后做两件事:1驱动硬件,2启动进程init)
/etc/inittab (第四: init进程启动以后读取inittab文件,读取inittab文件时会判断系统缺省的运行级别,执行文件/etc/rc.d/rc.sysinit[不论哪个运行级别都会运行这个脚本,目的:加载基本服务] 和 /etc/rc.d/rc[根据缺省的运行级别启动对应的级别目录里面的服务程序])
/etc/rc.d/rcN.d (第五: 启动对应的运行级别目录里面的服务程序.N的范围0-6)
username password (第六: 最后就能看到用户名密码登陆界面了!!)
1:网卡的配置.
vi /etc/sysconfig/network-scripts/ifcfg-eth0
2. 防火墙的配置与修改
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
关闭相关端口 ()
3.linux设置开机自动启动/关闭各种服务!!
我觉得最简单的方法是修改rc.local文件!! 只要把开启/关闭服务的命令写进去就OK啦!(但是他的运行级别低)
vi /etc/rc.d/rc.laocl
4.chkconfig 命令的使用! (用chkconfig 命令控制开启启动各种服务 运行级别高!!)
语法解释 :
chkconfig --list [name] 列表服务
chkconfig --add [name] 添加服务
chkconfig --del [name] 删除服务
chkconfig [--level levels] name <on|off|reset> 改变启动信息以及检查特定服务的启动状态。
例: 添加mysql服务在系统运行3和5级别时开机启动
chkconfig --add mysql #
首先将MySQL添加为受chkconfig管理的服务:
chkconfig --level 35 mysql on # linux以第3级别启动的时候启动mysql (系统运行级别0-6)
chkconfig --level 01246 mysql off # linux以第3级别启动的时候启动mysql (系统运行级别0-6)
#chkconfig --list mysql #查看
服务将会在哪个运行级别启动!
** 用chkconfig 命令控制开启起动服务的时候,服务的启动脚本必须放在了/etc/rc.d/init.d目录下**
**源代码安装服务器时,有的服务没有启动脚本需要自己写! 如apache安装后就没有启动脚本**
5.linux里面 PATH路径的添加!!
vi /etc/profile
6. linux 强制T掉某个连接的终端!!
首先命令:who 可以查看现在登陆的用户有哪些!
然后想T掉某个用户使用命令: pkill -kill -t pts/1 就能吧pts/1对应的用户T掉!
skill -9 -t pts/1 这个命令也可以!
7. netstat -ntlup 命令可以查看对应的 协议/端口 /服务 的信息!!
8.linux命令: scp 的使用!
运行命令安装scp: yum install openssh-clients (系统会安装三个包)
(1/3): openssh-5.3p1-81.el6_3.x86_64.rpm | 236 kB 00:00
(2/3): openssh-clients-5.3p1-81.el6_3.x86_64.rpm | 358 kB 00:00
(3/3): openssh-server-5.3p1-81.el6_3.x86_64.rpm | 300 kB 00:00
scp 本地用户名@IP地址:文件名 1 远程用户名 @IP 地址 : 文件名 2
[ 本地用户名 @IP 地址:] 可以不输入 , 需要输入远程用户名所对应的密码 .
可能有用的几个参数 :
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .
-r 递归的复制整个文件夹
-P 选择端口 . 注意 -p 已经被 rcp 使用 .
-4 强行使用 IPV4 地址 .
-6 强行使用 IPV6 地址
例: 复制远程服务器的文件到本地
scp -P 999 192.168.123.67:/home/test.zip /home/
复制本地的目录到远程服务器
scp -P 999 -r /home/andy/ 192.168.23.123:/home/
9.ntsysv 工具的使用! 可以在图形界面控制开机启动的服务。 功能也chkconfig一样.
yum install ntsysv (直接yum安装!)
输入命令:ntsysv 就能出现管理界面!
**可以控制的服务的启动脚本必须的在/etc/rc.d/init.d目录下,不然无法控制此服务.**
10.grep -V 参数的使用!!
-v 参数的意思是不显示匹配到的行 (默认是显示匹配到的行)
cat abc.txt | grep -v '^#' 不显示以#号开头的行1
cat abc.txt | grep -v '#' 不显示有#号的行!
11.awk命令的应用
作用:分段提取! (一行为单位来进行分段)
awk -F [分隔符] '条件 动作' /对象
例: awk -F : '$3==0 {print $1}' /etc/passwd 如果第三段=0 就打印出第一段!!
例: awk -F : '{print $1,$3}' /etc/passwd 打印出第一段和第三段
例: awk -F : '$1 == "root" {print $1} ' /etc/passwd
# -F : 用:分割passwd每行的内容 ($0指整个行 $1指第一段内容 $2指第二段内容 $n指第n段内容 $NF指每行分段后最后一个区域!)
# ' 匹配 动作' 单引号里面写的是 匹配命令和打印动作 匹配$3==0 第三段等于0 打印{print $1} 打印第一段内容 ($3 == 0 匹配出行 在打印出这些行的第一段内容 )
grep root /etc/passwd | awk -F : '{print $NF}' |uniq -c //uniq -c 统计重复的次数!!
12.write 命令的使用!!
说明 : 通过write指令可传递信息给另一位登入系统的用户,如果接收信息的用户不只登入本地主机一次,你可以指定 接收信息的终端机编号。
格式: write 用户名 ttyname
^C[[email protected] shell]# who
root tty1 2012-12-18 23:28
root pts/0 2012-12-19 01:49 (192.168.1.138)
deng pts/1 2012-12-19 01:32 (192.168.1.138)
deng pts/2 2012-12-19 06:09 (192.168.1.138)
[[email protected] shell]# write deng pts/1
fae
abc
13. 查看文件大小的命令!!
当我们需要查看一个目录里面多个文件大致的大小时,这个命令可以帮助我们!!
****注意目录的大小都是4.0K 它不能统计目录的大小!!**********
du 命令可以查询一个文件的精确大小!!!, 后面如果不写文件将会列出目录里的所有文件的精确大小!!
14. 进程的管理!!
ps命令的 --sort 参数 可以安进程的 pid ppid uid 时间 等来排序!
例: ps -aux --sort pid
**pid 是子进程号 ppid是父进程号**
ps -uU deng 查看系统用户deng启动的进程信息!!
pstree 查看系统中所有进程的父子关系!!
pgrep ssh 查看ssh的所有进程
pkill httpd 直接关闭httpd服务,不需查找进程号了!
killall -9 top 根据进程的名字杀掉进程
nice --5 /etc/rc.d/init.d/mysqld start 启动服务的时候把mysqld服务的优先级设置为-5.(优先级范围-20~19,-20为最高,默认为0)
renice 5 /etc/rc.d/init.d/mysqld start 给已启动的mysqld服务添加优先级! 没有第一个'-' 只有级别的正负号.
nohup +执行命令 使进程在用户推出登陆后仍旧继续执行!
ctrl + c 终止进程 ctrl + z 挂起进程
jobs 查看暂停的和在后台运行的进程, fg 1 把后台执行的进程调到前台 bg 在后台执行进程
15.top内置命令的使用!!
top 命令可以动态查看系统的详细信息
d 指定刷新的间隔
c 显示整个命令行而不仅仅显示命令名
u 查看指定用户的进程
k 终止一个进程
r 重新设置进程的优先级!
16.计划任务!!
at 一次性计划任务
crontab 重复性计划任务!
crontab -e 添加任务
分钟 小时 天 月 星期 命令/脚本
0 4 * * *
*/2 (每隔2分钟) 12-14(12到14点) *(每天) 3-6,9-12(3到6月和9到12月) 0-6(周日到周六)
关于时间的填写(把知道的具体时间写上,不知道的具体时间写*. 3-5 连续的时间用'-' 不连续的时间用',' )
17.固件时钟和系统时钟!
date可以查看系统的时间! hwclock 可以查看固件时钟!
一般情况下两个时钟的时间是一样的!!(上图固件时钟是对的)
date -s 2013/1/10 可以修改系统时间的日期!
date -s 12:30 修改系统的时间!
hwclock --hctosys 把系统时间改成和固件时间一样!!
hwclock -w 把固件时间改成和系统时间一样!!
18.curl 命令的学习!
-o/--output 把输出写到该文件中
-m/--max-time <seconds> 设置最大传输时间
-f/--fail 连接失败时不显示http错误
-S/--show-error 显示错误
-s/--silent静音模式。不输出任何东西
-w 参数让 curl 写出表
-G/--get 以get的方式来发送数据
-i -I/--head 仅返回头部信息,使用HEAD请求
-d <key=value> 向服务器POST表单数据 如curl -d "order=111&count=2" http://www.apple.com/buy
curl -m 600 -d menu=http -d date=$date -d ip=$server_ip -d port=$server_port -d status=$status http://127.0.0.1:8888/interface.php
实例: curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http://www.kklinux.com"
实例:curl -o /dev/null -s -w %{http_code} "http://www.kklinux.com"
实例: curl -I http://www.baidu.com/
19. make 常用参数的使用!!
mkdir -p -m 754 /home/userdata/user2 递归创建userdata/user2目录,并设置权限为754.
20 .paste 命令的使用!
21 用php获取加密后的md5! (好多密码都是用md5加密的,我们可以直接替换md5加密后的一对字符)
[[email protected] ~]# php -r "echo md5('12345');"
827ccb0eea8a706c4c34a16891f84e7b #这就是md5加密12345后的密码!
转载于:https://my.oschina.net/denglz/blog/94942