- 浏览: 96998 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
dxqrr:
LZ不厚道,误导我们
Pushlet技术的学习之一 -
thewintersun:
日哦, 没效果啊。
Pushlet技术的学习之一 -
vincentedlin:
哥们,你上传的是pushlet的源码呀,可以上传个demo吗? ...
Pushlet技术的学习之一 -
youmeiyoubeizhanyong:
这个客户端可以传参数到服务端不?如果能的话,那么服务端如何只发 ...
Pushlet技术的学习之一 -
左手边:
恶魔眼睛 写道页面没有任何反应。应该可以啊,这个我是测试成功的 ...
Pushlet技术的学习之一
常识
$PATH
执行文件路径的变量
echo $PATH
加入路径 到 path
PATH=”$PATH”:/root
不要把当前目录加入 path ,如果在 tmp 下有一个病毒伪装成 ls ,你在 tmp 下执行,就会中标
常用目录( FHS )
/
根目录,建议此目录下只有目录,不要直接有文件,所有与启动相关的文件都应放在此分区中, /etc 、 /bin 、 /dev 、 /lib 、 /sbin 这 5 个子目录应该和根目录连在一起
/boot
启动时会用到的文件, vmlinuz 是 linux 的核心
/dev
任何设备都以文件类型存放在这个目录下
/home
系统默认的用户目录
/root
管理员的家目录
/mnt /media
光盘、 usb 默认载入点
/sbin /usr/sbin /usr/local/sbin
系统管理员才会执行的命令
/etc
系统的主要配置文件目录
/usr/local
本机自行安装程序默认目录
Linux 用户身份与用户组记录文件
/etc/passwd 注:用户( user )的配置文件;
/etc/shadow 注:用户( user )影子口令文件;
/etc/group 注:用户组( group )配置文件;
/etc/gshadow 注:用户组( group )的影子文件;
drwxr--r-- 3 root root 4096
这是一个目录,但是非 root 账号不能进入此目录,如果在该目录下不能执行任何命令,自然也无法进入了,所以,如果相对他人开发某个目录的话,请记住开发目录的 x 属性
日志
/var/log/messages
messages 日志是核心系统日志文件。它包含了系统启动时的引导消息,以及系统运行时的其他状态消息。 IO 错误、网络错误和其他系统错误都会记录到这个文件中。其他信息,比如某个人的身份切换为 root ,也在这里列出。如果服务正在运行,比如 DHCP 服务器,您可以在 messages 文件中观察它的活动。通常, /var/log/messages 是您在做故障诊断时首先要查看的文件。
/var/log 目录下有一些文件以一个数字结尾,这些是已轮循的归档文件。日志文件会变得特别大,特别笨重。 Linux 提供了一个命令来轮循这些日志,以使您的当前日志信息不会淹没在旧的无关信息之中。 logrotate 通常是定时自动运行的,但是也可以手工运行。当执行后, logrotate 将取得当前版本的日志文件,然后在这个文件名最后附加一个“ .1 ”。其他更早轮循的文件为“ .2 ”、“ .3 ”,依次类推。文件名后的数字越大,日志就越老。
Tcpd
/etc/rc.d/rc.local
linux 自动启动服务很简单 , 最简单的是把启动命令放到 /etc/rc.d/rc.local 文件里这样就可以每次启动的时候自动启动服务了 , 例如对于 apache, 编译好 apache 后会在安装目录的 bin 下生成 apachectl 文件 , 这是个启动教本 , 我们只需要把这个命令加到 rc.local 里就可以了
echo /usr/local/apache/bin/apachectl >> /etc/rc.d/rc.local
硬盘分区
MBR : master boot recorder 主引导记录,里面记录着引导程序和磁盘分区表
一个硬盘最多有 4 个(主 + 扩展)分区,其中扩展分区只能有一个。
所以一般分区可以采用以下分区模式:
P+P+P+P 或者 P+P+P+E 或者 P+E
扩展分区不能直接使用,要划分成逻辑分区才行。如果分区要超过 4 个,必要使用扩展分区,且在扩展分区里划分逻辑分区才行。
其中 /dev/hda1-/dev/had4 被预留了。
比如我想划分 5 个分区,一个主分区,一个扩展分区。那么磁盘分区编号为:
/dev/hda1 /dev/hda5 /dev/hda6 /dev/hda7 /dev/hda8
/dev/hda2 为扩展分区,它本身仅是用来规划用的,实际上不存在这个设备。
xinetd 运行模式和 standalone 运行模式
概述
xinetd 取代了 inetd ,并且提供了访问控制、加强的日志和资源管理功能。
在 linux 中一些不长期使用的服务没有被作为单独的守护进程在开机时启用, linux 把这些服务监听端口全部由一个独立的进程 xinetd 集中监听,当收到相应的客户端请求之后, xinetd 进程就临时启动相应服务并把相应端口移交给相应服务,客户端断开之后,相应的服务进程结束, xinetd 继续监听。要开 telnet 服务器,只需配置 xinetd 即可。 Xinetd 本身是 standalone 方式运行的
chkconfig –list
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
standalone 一次性启动,运行期间一直驻留在内存中,优点是对接入信号反应快,缺点是损耗了一定的系统资源,因此经常应用于对实时反应要求较高的专业 FTP 服务器。
以 xinetd 模式运行的服务表示该服务进程并不以守护进程执行 , 以 FTPD 进程为例吧 , 以 xinetd 模式运行这个服务 , 情况是这样的 , 本身 FTP 服务 是会监听 21 号端口的 , 但是以这种模式运行这个服务的话 ,21 号端口则由 xinetd 进程来监听(此时 FTPD 服务并没有运行) , 如果你的网卡接收到有 21 号端口请求 , 则有 xinetd 进程会去调用 FTPD 程序 , 将在 21 号端口接收到的请求数据移交给 FTPD 进程去处理,处理完后 FTPD 进程退出,而 xinetd 进程继续监听 21 号端口 , 这有点类似 windows 的 svhost 进程 ; 而以 standalone 模式运行的服务则是服务进程 , 如 ftpd 以守护进程在内存中运行 , 接收到 21 号端口的请求后由 FTPD 进程 fork 出一个子进程进行 处理,而原进程继续监听 21 号端口。
参看本机 ftp 服务是什么方式启动的
chkconfig –list # 查看所有服务
找到如下:
vsftpd
0:off 1:off 2:off 3:off 4:off 5:off 6:off
xinetd based services:
vsftpd: on
standalone 运行模式下的 vsftpd 没有开启,使用 xinetd 模式开启的 vsftpd 服务
cd /etc/xinted.conf
文件定义如下
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps =
50 10
}
includedir /etc/xinetd.d
cd /etc/xinted.d
cat vsftpd
看到如下内容:
service
vsftpd
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
log_on_failure += USERID
log_on_success +=DURATION USERID
nice =10
disable = no
}
disable=no 表名已启动此服务。
ps -aux |grep vsftpd
启动服务
1. 启动 standalone 服务的方式:以 syslog 为例:
[root@linux ~]# /etc/init.d/syslog start
2. 启动 super daemon(xinted) 服务的方式:以 telnet 为例:
[root@linux ~]# vi /etc/xinetd.d/telnet ( 设定方式参考下节 )
[root@linux ~]# /etc/init.d/xinetd restart
另外,除了这样的启动方式之外,我们还可以透过 Fedora ( Red Hat 系统 ) 所提供的 service 这个程式来进行 daemon 的启动喔!其实 service 仅是一支 script 啦, 他可以解析后面带有的参数,然后去到 /etc/init.d/ 去启动相对应的服务名称的 script 而已! 有兴趣的话,可以自行去解析 /sbin/service 这支 shell script 啊! 底下我们大略说明一下他的用法!
[root@linux ~]# service [service name] (start|stop|restart|...)
参数:
service name :亦即是需要启动的服务名称,需与 /etc/init.d/ 对应;
start|... :亦即是该服务要进行的工作。
范例:
范例一:重新启动 crond 这支 daemon :
[root@linux ~]# service crond restart
[root@linux ~]# /etc/init.d/crond restart
在上面的范例当中,其实启动方式以 service 这个程式,或者直接去到 /etc/init.d/ 底下启动, 都一样啦!自行去解析 /sbin/service 就知道为啥了! ^_^
Tips:
事实上,在 Linux 系统中,要‘开或关某个 port ’,就是需要‘ 启动或关闭某个服务’啦!因此,你可以找出某个 port 对应的服务,程式对应的服务, 进而启动或关闭他,那么那个经由该服务而启动的 port ,自然就会关掉了!
/dev/null
cat /dev/null > catalina.out# 清空文件
环境设置文件
系统设置值
/etc/sysconfig/i18n |
语系数据 |
/etc/profile |
设置总体的 PATH 等信息,这个文件也规划出 /etc/profile.d 和 /etc/inputrc |
/etc/bashrc |
确定 unmask 的功能,和提示符的内容 |
/etc/profile.d/*.sh |
针对颜色、语系、 vim 及 which 等命令进行附加配置 |
/etc/man.config |
Man 的系统变量位置 |
个人设置值
~/.bash_profile 、 ~/.bash_login 、 ~/.profile |
这三个文件只要一个即可,一般是第一个存在。只在登陆时才读取 |
~/.bashrc |
一般将自己的需要设置到这里,每次执行 shell 脚本的时候,都会重新读取这个文件 |
~/.bash_history |
每次登陆 bash , bash 会先读这个文件,将所有的历史命令读入内存 |
~/.bash_logout |
离开 linux 时,执行一些操作 |
读取顺序
先读取系统设置值,然后读取 ~/.bash_* ,然后读取 ~/.bashrc 。所以登陆 bash 后,最终读取的配置文件是 ~/.bashrc, 在这此文件中的设置会是最终的设置值,可以把一些常用 alias 或 PATH 放入此文件。
source 和 . 都能将配置文件的内容读进当前 shell 环境中
source /etc/bashrc
. /etc/bashrc
常用命令
alias
设置别名 alias ll ='ls -l'
Unalias 删除别名
这是针对本次登录,如果想长期生效,需修改 ~/.bashrc, 登陆后初始化 alias( 跟用户有关,在 root 用户登录时,修改此文件,则只有 root 用户登录时才生效
cat –n
cd
chmod –x
八进制数字 权限
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx
我们可以根据上面的数字列表来组合权限,比如我想让属主拥有 rwx (所对应的数字是 7 ),属组拥有 --x (所对应的数字是 1) ,其它用户拥有 ---( 所对应的数字是 0) ,这样我们把各组的权限组合起来就是是 rwx--x--- (对应的数字是 710) 。
chmod
710 sun.txt
和八进制方法一样,如果我们为一个目录及其下的子目录和文件具有相同的属性,就可以用 -R 参数;
u 代表属主
g 代表属组
o 代表其它用户
a 代表属主、属组和其它用户,也就是上面三个用户(或组)的所有;
权限定义字母:
r 代表读权限;
w 代表写权限;
x 代表执行权限;
权限增减字符;
- 代表减去相关权限;
+ 代表增加相关权限;
示例一:
[root@localhost ~]# ls -l linuxsir007.txt
-rwxr-xr-x 1 root root 0 04-23 20:11 linuxsir007.txt
[root@localhost ~]# chmod ugo-x linuxsir007.txt 注:把属主、用户组及其它用户的执行权限都减掉;
[root@localhost ~]# ls -l linuxsir007.txt
-rw-r--r-- 1 root root 0 04-23 20:11 linuxsir007.txt
chkconfig
检查,设置系统的各种服务
linux os 将操作环境分为以下 7 个等级 :
0: 开机 ( 请不要切换到此等级 )
1: 单人使用者模式的文字界面
2: 多人使用者模式的文字界面 , 不具有网络档案系统 (NFS) 功能
3: 多人使用者模式的文字界面 , 具有网络档案系统 (NFS) 功能
4: 某些发行版的 linux 使用此等级进入 x windows system
5: 某些发行版的 linux 使用此等级进入 x windows system
6: 重新启动
参数 :
--add 新增所指定的系统服务
--del 删除所指定的系统服务
--level 指定该系统服务要在哪个执行等级中开启或关闭
--list 列出当前可从 chkconfig 指令管理的所有系统服务和等级代号
on/off/reset 在指定的执行登记 , 开启 / 关闭 / 重置该系统服务
例子
1. 查看在各种不同的执行等级中 , 各项服务的状况 :
$chkconfig --list
2. 列出系统服务 vsftpd 在各个执行等级的启动情况:
$chkconfig --list vsftpd
3. 在执行等级 3,5 时,关闭 vsftpd 系统服务:
$chkconfig --level 35 vsftpd off
4. 在执行等级 2 , 3 , 5 时,开启 vsftpd 系统服务:
$chkconfig --level 235 vsftpd on
5. 关闭一些自己不需要的服务 ->
如果没有打印机:
chkconfig --level 235 cups off
如果没有局域网:
chkconfig --level 235 smb off
如果不需要远程用户登录的:
chkconfig --level 235 sshd off
如果不需要定时任务的:
chkconfig --level 235 crond off
如果不需要添加新硬件的:
chkconfig --level 235 kudzu off
由 xinetd 管理的服务会立即被 chkconfig 影响。譬如,如果 xinetd 在运行, finger 被禁用,那么执行了 chkconfig finger on 命令后, finger 就不必手工地重新启动 xinetd 来立即被启用。对其它服务的改变在使用 chkconfig 之后不会立即生效。你必须使用 service daemon stop 命令来停止个别服务。在前面的例子中,把 daemon 换成你想停止的服务名称,如 httpd 。 把 stop 换成 start 或 restart 来启动或重新启动该服务。
chown
当我们要改变一个文件的属组,我们所使用的用户必须是该文件的属主而且同时是目标属组成员,或超级用户。只有超级用户的才能改变文件的属主。
举例:将 example.txt 文件的属主改为 linuxsirorg 用户;
[root@localhost ~]# ls -l example.txt
-rw-r--r-- 1 root root 0 04-24 22:37 example.txt
[root@localhost ~]# ls -l example.txt
-rw-r--r-- 1 linuxsirorg root 0 04-24 22:37 example.txt
[root@localhost ~]# chown beinan:root example.txt
[root@localhost ~]# ls -l example.txt
-rw-r--r-- 1 beinan root 0 04-24 22:37 example.txt
chown 也提供了 -R 参数,这个参数对目录改变属主和属组极为有用,我们可以通过加 -R 参数来改变某个目录下的所有文件到新的属主或属组;
cp
date
df –h
du
exit( 退出当前 shell)
fdisk
fdisk –l 参看磁盘使用情况
file
通过 file 指令,我们得以辨识该文件的类型。
[root@qb ~]# file install.log
install.log: UTF-8 Unicode text
find
语法说明
find 命令的一般形式为;
find pathname -options [-print -exec -ok ...]
find 命令的参数;
pathname:
find
命令所查找的目录路径。例如用.
来表示当前目录,用/
来表示系统根目录。
-print
: find
命令将匹配的文件输出到标准输出。
-exec
: find
命令对匹配的文件执行该参数所给出的shell
命令。相应命令的形式为'command' {} \;
,注意{}
和\
;之间的空格。
-ok
: 和-exec
的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell
命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
find 命令选项
-name
按照文件名查找文件。
-perm
按照文件权限来查找文件。
-prune
使用这一选项可以使find
命令不在当前指定的目录中查找,如果同时使用-depth
选项,那么-prune
将被find
命令忽略。
-user
按照文件属主来查找文件。
-group
按照文件所属的组来查找文件。
-mtime -n +n
按照文件的更改时间来查找文件, - n
表示文件更改时间距现在n
天以内,+
n
表示文件更改时间距现在n
天以前。find
命令还有-atime
和-ctime
选项,但它们都和-m time
选项。
-nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups
中不存在。
-nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd
中不存在。
-newer file1
! file2
查找更改时间比文件file1
新但比文件file2
旧的文件。
-type
查找某一类型的文件,诸如:
b -
块设备文件。
d -
目录。
c -
字符设备文件。
p -
管道文件。
l -
符号链接文件。
f -
普通文件。
-size n
:[c]
查找文件长度为n
块的文件,带有c
时表示文件长度以字节计。
-depth
:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype
:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab
中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount
:在查找文件时不跨越文件系统mount
点。
-follow
:如果find
命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio
:对匹配的文件使用cpio
命令,将这些文件备份到磁带设备中。
另外 , 下面三个的区别 :
-amin n
查找系统中最后N
分钟访问的文件
-atime n
查找系统中最后n*24
小时访问的文件
-cmin n
查找系统中最后N
分钟被改变文件状态的文件
-ctime n
查找系统中最后n*24
小时被改变文件状态的文件
-mmin n
查找系统中最后N
分钟被改变文件数据的文件
-mtime n
查找系统中最后n*24
小时被改变文件数据的文件
-exec –ok 说明
-exec 参数后面跟的是 command 命令,注意点如下:
command 命令的终止,使用 ';' ( 分号)来判定,在后面必须有一个 ';'
'{}' ,使用{} 来表示文件名,也就是find 前面处理过程中过滤出来的文件,用于command 命令进行处理
特别强调,对于不同的系统,直接使用分号可能会有不同的意义, 使用转义符 '\' 在分号前明确说明
例子
找出某目录下 jsp 文件中有 203 关键字的
find /usr/local/tomcat/webapps -name '*.jsp' -exec grep 203 {} \;
find /usr/local/tomcat/webapps -name '*.jsp' -print |xargs grep 203
查找 系统中所有文件长度为 0 的普通文件,并列出它们的完整路径
find / -type f -size 0 -exec ls -l {} \;
查找当前文件系统中的所有目录并排序
find . -type d | sort
查找系统中的每一个普通文件,然后使用 xargs 命令来测试它们分别属于哪类文件
find . -type f -print | xargs file
free -m
ftp
在 windows 上先切换目录
ftp cqzhende.gicp.net
ls 列出所有文件
bye 退出
put 传文件
get 获取文件
lcd 切换本地路径
lpwd 显示本地路劲
grep
id
显示用户的 ID ,以及所属群组的 ID
ifconfig
kill
last 列出目前与过去登入系统的用户相关信息。
lastb 列出登入系统失败的用户相关信息
less
Less 是另一个文本阅读器,不过它还允许在文件中滚动浏览以及检索信息。
less /var/log/messages
上面的命令将显示 /var/log/messages 文件的内容。使用“ q ”来停止查看文件。使用“ h ”来获得 less 的使用帮助。
ln
硬链接 只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为 inode )。当 您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。 硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。
符号链接 是一个指针,指向文件在文件系统中的位置。符号链接可以跨文件系统,甚至可以指向远程文件系统中的文件。符号链接只是指明了原始文件的位置, 用户需要对原始文件的位置有访问权限才可以使用链接。如果原始文件被删除,所有指向它的符号链接也就都被破坏了。它们会指向文件系统中并不存在的一个位 置。
# Create a hard link from MyFile in the current
# directory to /YourDir/MyFile
ln MyFile /YourDir
# Create a symbolic (soft) link from MyFile in
# the current directory to /YourDir/YourFile
ln -s MyFile /YourDir/Yourfile
ln –s /var/log/messages ~/messages
为 linux 系统日志创建符号链接,链接到用户目录下的 messages
locate
该命令在运行时需要后台索引的数据库作为支撑,在 Ubuntu 中这个数据库文件位于 /var/cache/locate/locatedb 。一般来说,这个数据库文件每天是通过 cron 自动更新的。如果不幸没有得到更新,那么可以执行 sudo updatedb 来手动更新。
login
ls
ls –l
2408949 -rwxr-xr-x 1 root
root 7 04-21 12:47 lsfile.sh
第一字段:inode
第二字段:文件种类和权限;
第三字段:
硬链接个数;
第四字段:
属主;
第五字段:所归属的组;
第六字段:文件或目录的大小;
第七字段和第八字段:最后访问或修改时间;
第九字段:文件名或目录名
第一个-
代表是普通文件,若是d
代表目录
每个文件或目录都有一组 9 个权限位,每三位被分为一组,他们分别是属主权限位(占三个位置 )、用户组权限位(占三个位置)、其它用户权限位(占三个位置)。比如 rwxr-xr-x ,我们数一下就知道是不是 9 个位置了,正是这 9 个权限位来控制文件属主、用户组以及其它用户的权限。
mkdir
mv
netstat
利用 netstat 指令可让你得知整个 Linux 系统的网络情况
netstat –s 显示统计信息
netstat –a 显示所有连接信息
passwd 设置密码
ping
ps 报告程序状况
ps –aux |grep XXX
pwd
reboot 重新开机
rm –fr 递归强制删除
rmdir
rpm
redhat package manager
rpm -q webmin
查询是否安装 webmin
套件安装
rpm -ivh 包名
i: 使用 rpm 的安装模式
v: 在安装过程中提供更多信息
h: 在安装过程中印出 # 号
套件删除
rpm -e 包名
套件升级
rpm -Uvh 包名
su
su - clsung 变更帐号为 clsung 并改变工作目录至 clsung 的家目录
su clsung 变更帐号为 clsung
sudo
tail
tail -f /var/log/messages
setup
linux 下的图形管理工具
上面的命令将显示 /var/log/messages 文件的最后 10 行,然后继续监控那个文件,并输出新的行为。要停止 tail -f 命令,使用 Ctrl + C 来中止进程。
tar
tar –cf lib.tar lib
把 lib 目录打包成 lib.tar
Top
top –n 1
显示一次
Time
侦测一个进程所需要的时间加上其他处理的时间的总和。不要和上面提到的date 命令混淆。比如,我可以使用命令“time ls ”来判断显示一个目录需要多长时间;或者我可以使用命令“time sleep 10 ”来测试time 命令(睡眠10 秒钟,什么也不做)。
touch
traceroute
显示数据包到主机间的路径
traceroute 指令让你追踪网络数据包的 路由 途径,预设数据包大小是 40Bytes ,用户可另行设置。
tree
uname –a
uptime
现在的时间
系统开机运转到现在经过的时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
vi
在命令模式下
:q! 退出不保存
:wq 推出并保存
/ searchword 搜索, n 下一个
dd 删除一行
v 开始标记文本。然后,移动光标
y 复制被标记的文本
x 剪切被标记的文本
p 粘贴被剪切或复制的文本
在每个用户的主目录下,都有一个 vi 的配置文件 ".vimrc" (如果没有的话,可以手动创建)。用户可以编辑它,使对其的设置在每次启动 vi 时都成为有效的参数。如以下几个:
set nu ---- 显示行号
set nonu ---- 不显示行号
set ic ---- 查找时不考虑大小写
set noic ---- 查找时考虑大小写
set smartindent ---- 自动缩进
w
w 命令也用于显示登录到系统的用户情况,但是与 who 不同的是, w 命令功能更加强大,它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,感觉比较实用
w 显示目前登入系统的用户信息
wc(word count)
whereis
whereis 是来寻找命令的二进制文件,同时也会找到其帮助文件;
比如我们不知道 fdisk 工具放在哪里,我们就可以用 whereis fdisk 来查找;
[root@localhost ~]# whereis fdisk
fdisk: /sbin/fdisk /usr/share/man/man8/fdisk.8.gz
[root@qb ~]# whereis grep
grep: /bin/grep /usr/share/man/man1/grep.1.gz /usr/share/man/man1p/grep.1p.gz
who
显示系统中有那些使用者正在上面,显示的资料包含了使用者 ID ,使用的终端机,从那边连上来的,上线时间,呆滞时间, CPU 使用量,动作等等。
whois
whois 指令会去查找并显示指定帐号的用户相关信息,因为它是到 Network Solutions 的 WHOIS 数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。
y um
1.
使用YUM
查找软件包
命令:
yum
search <keyword>
例子
同步时间
hwclock --systohc
按照硬件时钟设置系统时钟
date;hwclock;hwclock -s;date
删除所有符合要求文件
updatedb
locate –r ‘.*properties2.*’|grep tomcat|xargs rm
mv -v 1.1.txt test || echo failure >>2.txt
当复制 1.1.txt 到 test 文件夹失败时写入 failure 到 2.txt
配置 telnet
安装 telnet
rpm –ivh telnet-server-0.17-39.el5.i386.rpm
vi /etc/xinetd.d/telnet# 启动
service xinetd restart
客户端访问时,不能使用 root 用户
开机进入文本模式
vi /etc/inittab , 修改id:5:initdefault: 为id:3:initdefault: ,reboot 就ok 了
查看 cpu 使用情况,并输出到一个文本
top -n 1 |grep Cpu >cpu.log
查看 cpu 硬件情况
cat /proc/cpuinfo
配置 sshd
vi /etc/ssh/sshd_config, 修改以下内容
protocol 2
permitRootLogin yes # 启用ssh root 登陆
PasswordAuthentication yes # 设置是否允许口令验证
PermitEmptyPasswords no # 设置是否允许用口令为空的帐号登录。
如果想做到最大化安全链接,可以考虑在配置有双网卡的服务器上设置只允许内网链接SSH ,方法很简单,在/etc/hosts.deny 文件最后一行添加 一句sshd: ALL 然后在/etc/hosts.allow 的最后一行加上一句sshd: 192.168.10. 然后保存退出。
service sshd restart
关闭不需要的服务
输入 ntsysv
下面我列出仅需要的服务,没有的全部干掉!
这里简单说一下,选定和取消选定用空格,tab 转换!
Atd 、 Crond 、 Irqbalance 、 microcode_ctl 、 network 、 sendmail 、 sshd
查看最后一次系统引导的引导日志
使用 dmesg 命令可以快速查看最后一次系统引导的引导日志。通常它的内容会很多,所以您往往会希望将其通过管道传输到一个阅读器。
dmesg | more
上面的命令将以分页的方式显示引导信息。
VMware 配置
VMware 设置为vmnet(nat)( 相当于不同的网段连接) ,虚拟机里的linux 设置为动态获取ip(dhcp) 即可
Dynamic Host Configuration Protocol( 动态主机分配协议)
此时主机的虚拟网卡充当路由器的角色
修改 yum 镜像地址
#cd /etc/yum.repos.d/
#cp -a CentOS-Base.repo CentOS-Base.repo.bak
#vim CentOS-Base.repo
代码:
#
CentOS-Base.repo
#
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
yum 速度很快!大家可以试试。
查看系统中所有项目的hibernate 配置文件中的连接字符串
locate -r '.*hibernate.cfg.xml$' |xargs cat |grep connection.url
tomcat 启动 gzip 压缩
vi /usr/local/tomcat/conf/server.xml
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
compression="on" compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml" />
加上后面几句红色的
重启 tomcat
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
tomcat 启动访问日志
vi /usr/local/ tomcat /conf/server.xml
启用以下内容,日志在 logs 目录
<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="combined" resolveHosts="false"/>
配置 vncserver
启动vncserver 服务
[root@zdtech init.d]# /etc/init.d/vncserver restart
运行vncserver ,如果第一次配置VNC Server, 会要求提供登录VNC 使用的密码. 以后也可以使用vncpasswd 来修改密码.
[root@zdtech init.d]# vncserver
New 'zdtech:2 (root)' desktop is zdtech:2
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/zdtech:2.log
在Windows 使用VNC viewer 登录了
输入服务器地址:192.168.10.22:2 就可以登陆了,但是现在还不是进入的桌面系统修改配置文件/root/.vnc/xstartup, 使之与下面内容相同
[root@zdtech init.d]# vi /root/.vnc/xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &
修改后再次运行vncserver 命令
[linuxzgf@linuxzgf ~]$ vncserver
New 'localhost.localdomain:1 (test)' desktop is localhost.localdomain:2
Starting applications specified in /home/test/.vnc/xstartup
Log file is /home/test/.vnc/localhost.localdomain:2.log
如果要杀掉vncserver 进程, 可执行vncserver :1 kill ,1 表示display 的ID 号
配置 apache awstats
Awstats 是一个非常方便的web 统计访问工具,它分析apache 或者tomcat 产生的日志,得出访问统计信息。
下载 awstats 并安装
wget http://prdownloads .sourceforge.net/awstats/awstats-6.9-1.noarch.rpm
rpm -ivh awstats-6.9-1.noarch.rpm
cd /usr/local/awstats/tools
配置 1
在执行perl awstats_configure.pl 的过程中会出现一个错误,
Error: Failed to open '/usr/share/doc/awstats/examples/wwwroot/cgi-bin/awstats.model.conf' for read.
可以再执行命令前把awstats.model.conf 文件,在安装包中找出此文件并复制到/etc/awstats 目录下
perl awstats_configure.pl # 开始配置
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y
-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> cqmc
-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
>
-----> Create config file '/etc/awstats/awstats.cqmc.conf'
Config file /etc/awstats/awstats.cqmc.conf created.
-----> Add update process inside a scheduler# 添加一个定时任务,比如每日更新日志
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=cqmc
Or if you have several config files and prefer having only one command:
/usr/local/awstats/tools/awstats_updateall.pl now
Press ENTER to continue...
A SIMPLE config file has been created: /etc/awstats/awstats.cqmc.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'cqmc' with command:
> perl awstats.pl -update -config=cqmc
You can also read your statistics for 'cqmc' with URL:
> http://localhost/awstats/awstats.pl?config=cqmc
Press ENTER to finish...
执行完毕。
查看新日志是否生效
cd /usr/local/apache/
rm –rf logs/access_log# 删除访问日志,以前的日志不符合awstats 分析日志要求
cd bin
./ apachectl -k restart# 重启apache
more ../logs/access_log# 查看新日志是否生效,可以自己用浏览器访问看看
配置 2
vi /etc/awstats/ awstats.cqmc.conf
- LogFile 指定 web server 紀錄檔存放的位置。 /usr/local/apache/logs/access_log
- LogFormat 檢查參數值是否為 "1" 。
- DNSLookup 將參數值設定為 “1” 。
- DirData 指定存放統計資料的位置。 /usr/local/apache/logs
- DirCgi 指定 CGI 程式所在的位置。 /usr/local/apache/cgi-bin
- DirIcons 指定小圖示所在的位置。
/usr/local/apache/icons
- SiteDomain 網站主機名稱。 cqmc
-HostAliases 设定主机别名
更新 awstats 分析日志数据
cd /usr/local/awstats/wwwroot/cgi-bin
perl awstats.pl -update -config=cqmc
访问 awstats 分析数据
http://localhost/awstats/awstats.pl?config=cqmc
定时自动更新统计数据
vi /etc/crontab
# 加入如下代码
00 2 * * * root /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=cqmc
# 每天 2 : 00 更新统计数据
service crond restart# 重启 crond 服务
配置访问权限
先介绍用密码来保护服务器上的目录。
首先需要建立一个密码文件。这个文件应该放在不能被网络访问的位置,以避免被下载。例如,如果 /usr/local/apache/htdocs 以外的空间不能被网络访问,那么可以考虑把密码文件放在 /usr/local/apache/passwd 目录中。
Apache 在其安装目录的 bin 子目录中提供了 htpasswd 工具,用于建立密码文件,可以这样使用:
htpasswd -c /usr/local/apache/passwd/passwords rbowen
htpasswd 会要你输入密码,并要求重新输入以进行确认:
# htpasswd -c /usr/local/apache/passwd/passwords rbowen
New password: mypassword
Re-type new password: mypassword
Adding password for user rbowen
如果 htpasswd 不在搜索路径中,则必须使用完整路径,如: /usr/local/apache/bin/htpasswd
然后修改 httpd.conf 或 .htaccess 文件,指示服务器允许哪些用户访问并向用户索取密码。若要保护 /usr/local/apache/htdocs/secret 目录,则可以将下列指令写入 /usr/local/apache/htdocs/secret/.htaccess 或者 httpd.conf 的 <Directory /usr/local/apache/apache/htdocs/secret> 段。
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen
让我们逐个解释这些指令。 AuthType 指令选择对用户实施认证的方法,最常用的是由 mod_auth_basic 提供的 Basic 。必须认识到的很重要的一点是, Basic 认证方法并不加密来自用户浏览器的密码,因此,不应该用于高度敏感的数据。 Apache 中还有另一种更安全的认证方法 "AuthType Digest" ,即由 mod_auth_digest 供的摘要认证。目前,只有最新的浏览器版本才支持摘要认证。
配置 tomcat awstats
先配置 tomcat 访问日志,模式为 pattern="combined" ,然后配置 awstats
要对另外的日志文档分析,只要在
/etc/awstats/
下新建立一份
awstats.tomcat.conf
的拷贝,再修改里面的
LogFile
文档位置,再在浏览器中
通过
http://localhost/awstats/awstats.pl?config=tomcat
,使用相应的
conf
文档请求,就能够分析日志了
可以把 awstats_updateall.pl ,加入 cron ,定时跟新所有的日志统计
inotify + rsync 实现 linux 文件实时同步
实现 218.201.39.112 上的数据有改动时自动同步到 218.201.39.113
在安装 inotify-tools 前请先确认你的 linux 内核是否打到了 2.6.13 ,并且在编译时开启了 CONFIG_INOTIFY 选项。你 可以按下面的方式简单的确认这一点: ls /proc/sys/fs/inotify ,如果支持的话会有 max_queued_events , max_user_instances , max_user_watches 三项。
Fetion
下载 fetion linux 命令行程序
wget http://www.it-adv.net/fetion/fetion_linux_20080402.tar.gz
tar xvf fetion_linux_20080402.tar.gz
下载飞信的 linux 客户端程序 . 解开包后只有一个文件 sms 。不错。这个就是飞信发送短信的程序啦。现在的飞信还是不能用的。因为它需要 libace 的 glibc 库的支持。
检查缺少的库,并安装
ldd sms
下载 lib 库
32 位官方 lib 库: http://www.it-adv.net/fetion/library32.rar
64 位官方 lib 库: http://www.it-adv.net/fetion/library64_linux.tar.gz
解压后安装
cp *.* /lib/
cp *.* /usr/lib/
飞信使用
./sms -f 13594745404 -p 520167qb -t 13594745404 -m hello
./sms -f 13594745404 -p 520167qb -t 13594745404 -i 1.txt
导出 oracle 数据,并压缩
导出
mknod /tmp/mypipe p
exp userid=scott/tiger file=/tmp/mypipe &
gzip < /tmp/mypipe > exp.dat.gz
rm /tmp/mypipe
导入
mknod /tmp/mypipe p
imp userid=scott/tiger file=/tmp/mypipe &
gunzip < exp.dat.gz > /tmp/mypipe
rm /tmp/mypipe
查看操作系统位数
file /sbin/init
BEA JRockit Mission Control
在 bea jdk 安装目录有 jrmc 的文件,双击执行
工具
webmin
一个基于浏览器的管理工具
Webmin 是一个用 Perl 编写的基于浏览器的管理应用程序。 Webmin 是可扩展的,除了用于 Linux 之外,还可以用于其他类 Unix 操作系统。安装完成后,可以在本地或者远程浏览器通过一个特定的端口,通常是 10000 ,来进入 Webmin 。它具有可以指向和点击的界面,可以完成各种 Linux 管理任务,包括用户管理、网络防火墙和网络设备的配置。
wget http://prdownloads.sourceforge.net/webadmin/webmin-1.470-1.noarch.rpm
rpm -ivh webmin-1.470-1.noarch.rpm
通过 http://192.168.126.128:10000/ 访问
cron
Linux 操作系统中,计划任务通常由 cron 来承担 ,cron 启动后,它会读取它的所有配置文件(全局性配置文件 /etc/crontab ,以及每个用户的计划任务配置文件),然后 cron 会根据命令和执行时间来按时来调用度工作任务。 cron 配置文件被修改后,想让新文件生效,必须重新 crond 服务器,有两种方法可供选择;
/etc/init.d/crond restart
service crond restart
如果想在 Fedora 和 Redhat 或以这些发行版为基础克隆的发行版,如果想自动开机运行,请用下面的办法
chkconfig --levels 35 crond on
全局性配置文件 /etc/crontab ,对于全局性配置文件,我们要用 root 权限来更改。文件说明:
1 * * * * root run-parts
/etc/cron.hourly
注:表示每个小时的第一分钟,开始执行
/etc/hourly
目录下的可执行程序或脚本;
2 4 * * * root run-parts /etc/cron.daily
注:表示每天的
4
点
2
分,开始执行
/etc/cron.daily
目录下的可执行程序或脚本;
22 4 * * 7 root run-parts /etc/cron.weekly
注:每年第
7
个周
4
点我
22
分,开始执行
/etc/cron.weekly
目录下的可执行程序或脚本;
42 4 1 * * root run-parts /etc/cron.monthly
注:每月第
1
天的
4
点
42
分,开始执行
/etc/cron.monthly
目录下的可执行程序或脚本;
增加一个计划任务可以放在全局配置文件里,也可以放在各个包下,比如 /etc/cron.daily 目录下
书写命令为:
分钟 小时 日 月 周 [用户名] 命令
我们可以把计划任务写在全局性配置文件中,如果您想把一个计划放入全局性配置文件中,就得改发行版所对应的 cron 全局配置文件,比如 Fedora 5 的全局性配置文件是 /etc/crontab 文件;
每个用户也能定义自己的 cron 配置文件,用 crontab -e 命令来定义;
Sysstat
sysstat 的主要用途就是观察服务负载,比如 CPU 和内存的占用率、网络的使用率以及磁盘写入和读取速度等。
这个包一但安装下去,一般包括如下的几个命令可以使用。
Sar 、 iostat 、 sa1 、 sa2 、 sadf 、 mpstat 、 sadc 、 sysstat
安装
wget http://pagesperso-orange.fr/sebastien.godard/sysstat-9.0.5.tar.gz
tar -zxvf sysstat-9.0.5.tar.gz
cd sysstat-9.0.5
./configure
make
make install
lambda probe
cd /usr/local/tomcat/webapps
wget http://www.lambdaprobe.org/downloads/1.7/probe.1.7b.zip
unzip probe.1.7b.zip
vi /usr/local/tomcat/conf/tomcat-users.xm
# 添加如下行, probe 的用户名和登陆密码
<user username="admin" password="admin1234" roles="manager"/>
# 在 catalina.sh 中加入,启用 jmx
JAVA_OPTS -Dcom.sun.management.jmxremote
安装 groovy
wget http://dist.groovy.codehaus.org/distributions/groovy-binary-1.7.0.zip
cp groovy-binary-1.7.0.zip /usr/local/
unzip groovy-binary-1.7.0.zip
vi /etc/profile
打开 /etc/profile ,加入环境变量
export GROOVY_HOME=/usr/local/groovy-1.7.0
export PATH=$GROOVY_HOME/bin:$PATH
使环境变量生效
. /etc/profile
测试:
[root@cqmc-web1 groovy-1.7.0]# groovy -version
Groovy Version: 1.7.0 JVM: 1.5.0_21
写一个文件测试:
vi test.groovy
#!/bin/env groovy
println 'hello'
相关推荐
### 新手入门 Linux 菜鸟必学的60个命令 #### 登录与退出 (Login and Logout) **登录命令 (login):** - **功能:** `login` 命令用于用户登录系统。 - **用法:** `login [name] [参数]` - `[name]`: 用户名 - `...
Linux 学习手册 整理:郭正阳/Rinehart Vre 1.0 Sep.06.2002 转载自www.chinaunix.net 精华区
1. 关闭Linux系统:在给出的题目中,`halt`命令用于关闭Linux系统而不重新启动。这是停止计算机的一种方法,确保所有进程都已终止,并且系统安全地关闭。 2. IP到MAC地址转换:`arp`命令用于实现从IP地址到以太网...
编译 Linux 内核的第一步是使用 `makemrproper` 命令来清除之前的编译结果,这一步可以跳过,如果我们是第一次编译内核。但是,如果我们已经编译过多次内核,这一步是必需的,以免出现问题。 接下来,我们需要使用 ...
在网上找到的Mac终端指令集,适用于Linux系统,相当于转载不需要下载积分 网上找到的Mac终端指令集,适用于Linux系统,相当于转载不需要下载积分 网上找到的Mac终端指令集,适用于Linux系统,相当于转载不需要下载...
在Linux中,SSH(Secure Shell)是一种用于在不安全网络上进行安全通信的加密网络协议。SSH提供了多种认证方式,包括基于密码的认证、基于密钥的认证、基于主机的认证和键盘交互式认证。其中,基于密钥的认证被认为...
这些都是Linux系统管理中常用的基本命令,对于熟悉Linux操作的用户来说至关重要。 6. 对文章的转述及尊重原创: 文章最后提到了作者转载了青龙一笑的文章,并表达了尊重原创的态度。这不仅体现了网络内容共享的道德...
对于更复杂的设备,`file_operations`结构体可能会包含更多的函数,如`ioctl`用于处理设备特有的控制命令,`llseek`用于设置文件指针的位置,`poll`用于支持非阻塞I/O等。驱动程序开发者需要根据实际设备的需求实现...
转载vi/vim命令详解图片,可做为壁纸,多幅图片。 vim是Linux下面最重要的编辑器了, 而对vim命令的学习是学好vim尤为重要,这张壁纸上面集中了vim的一些详细命令, 作为桌面背景,随时随地可以查看vim命令。
### Linux实战工程师核心知识点解析 #### 一、用户环境配置 **知识点1:Locale与语言环境** - **命令**: `#locale` - **功能**: 显示当前系统的语言环境设置。 - **配置文件**: `/etc/sysconfig/i18n` - **功能*...
此例子经过验证 不是转载 Linux 串口 数据接收 发送 <其中列举 串口 字符串和16进制数的发送和接收 以及 串口接收字符串和16进制数,解决16进制数0x0a 0x0d 0x13 0x11接收异常的问题 此例子没有线程>
9. **命令解析过程**:“转载:bash命令解析过程”可能会深入探讨Bash是如何解析和执行命令的,包括词法分析、语法解析和命令执行的详细步骤。 10. **解释器原理**:“Shell编程入门:Linux解释器原理”可能涵盖了...
除了基本的文件操作外,还需要掌握一些高级的系统管理命令,这些命令可以帮助你更好地管理和配置Linux系统。例如: - **进程管理**:`ps`查看进程状态,`top`实时监控系统资源使用情况。 - **网络管理**:`ifconfig...
Linux常见服务功能 Linux 操作系统提供了许多实用的服务功能,以下是常见的服务功能: 1. automount:自动安装本地设备和 NFS 文件系统的精灵程序。 知识点: automount 是一个自动安装设备的服务,能够在必要时...
在这种模式下,可以使用 Linux Rescue 光盘或硬盘安装的方式进入安装界面,然后使用 shell 命令来修复系统。 1. 下载 Linux Rescue 光盘 首先,需要下载 Linux Rescue 光盘的镜像文件,从 ...
在一周内学会Linux系统管理,你需要掌握一系列关键概念和技能,这些内容涵盖了操作系统的基本操作、文件管理、用户权限、进程控制、网络配置以及系统维护等多个方面。以下是对这些知识点的详细说明: 1. **Linux...
6. **编译内核**:执行`make`命令开始编译内核,这个过程可能需要一段时间,取决于你的硬件性能。 7. **编译模块**:接下来,运行`make modules`来编译模块,这些模块可以在运行时动态加载或卸载。 8. **安装内核*...