linux 操作

正在运行的内核和系统信息# uname -a# 获取内核版本(和BSD版本)# lsb_release -a# 显示任何 LSB 发行版版本信息# cat /etc/SuSE-release# 获取 SuSE 版本# cat /etc/debian_version# 获取 Debian 版本使用 /etc/DISTR-release 其中DISTR(发行代号)=lsb (Ubuntu), redhat, gentoo, mandrake, sun (Solaris), 等等。# uptime# 显示系统开机运行到现在经过的时间# hostname# 显示系统主机名# hostname -i# 显示主机的 IP 地址# man hier# 描述文件系统目录结构# last reboot# 显示系统最后重启的历史记录硬件信息内核检测到的硬件信息# dmesg# 检测到的硬件和启动的消息# lsdev# 关于已安装硬件的信息# dd if=/dev/mem bs=1k skip=768 count=256 2>/dev/null | strings -n 8 # 读取 BIOS 信息Linux# cat /proc/cpuinfo# CPU 讯息# cat /proc/meminfo# 内存信息# grep MemTotal /proc/meminfo# 显示物理内存大小# watch -n1 ‘cat /proc/interrupts’ # 监控内核处理的所有中断# free -m# 显示已用和空闲的内存信息 (-m 为 MB)# cat /proc/devices# 显示当前核心配置的设备# lspci -tv# 显示 PCI 设备# lsusb -tv# 显示 USB 设备# lshal# 显示所有设备属性列表# dmidecode# 显示从 BIOS 中获取的硬件信息FreeBSD# sysctl hw.model# CPU 讯息# sysctl hw# 得到很多硬件信息# sysctl vm# 虚拟内存使用情况# dmesg | grep “real mem”# 物理内存# sysctl -a | grep mem# 内核内存的设置和信息# sysctl dev# 显示当前核心配置的设备# pciconf -l -cv# 显示 PCI 设备# usbdevs -v# 显示 USB 设备# atacontrol list# 显示 ATA 设备显示状态信息以下的命令有助于找出正在系统中运行着的程序。# top# 显示和更新使用 cpu 最多的进程# mpstat 1# 显示进程相关的信息# vmstat 2# 显示虚拟内存的状态信息# iostat 2# 显示 I/O 状态信息(2 秒 间隙)# systat -vmstat 1# 显示 BSD 系统状态信息(1 秒 间隙)# systat -tcp 1# 显示 BSD TCP 连接信息(也可以试试 -ip)# systat -netstat 1# 显示 BSD 当前网络连接信息# systat -ifstat 1# 显示 BSD 当前网卡带宽信息# systat -iostat 1# 显示 BSD CPU 和磁盘使用情况# tail -n 500 /var/log/messages# 显示最新500条内核/系统日志的信息# tail /var/log/warn# 显示系统警告信息(看syslog.conf)用户# id# 显示当前用户和用户组的 ID# last# 列出目前与过去登入系统的用户相关信息# who# 显示目前登入系统的用户信息# groupadd admin# 建立新组”admin”和添加新用户 colin 并加入 admin 用户组(Linux/Solaris)# useradd -c “Colin Barschel” -g admin -m colin# userdel colin# 删除用户 colin(Linux/Solaris)# adduser joe# FreeBSD 添加用户 joe(交互式)# rmuser joe# FreeBSD 删除用户 joe(交互式)# pw groupadd admin# 在 FreeBSD 上使用 pw# pw groupmod admin -m newmember# 添加新用户到一个组# pw useradd colin -c “Colin Barschel” -g admin -m -s /bin/tcsh # pw userdel colin; pw groupdel admin加密过的密码存储在 /etc/shadow (Linux and Solaris) 或 /etc/master.passwd (FreeBSD) 中. 如果手动修改了 master.passwd,需要运行# pwd_mkdb -p master.passwd来重建数据库。使用 nologin 来临时阻止所有用户登录(root除外)。用户登录时将会显示 nologin 中的信息。# echo “Sorry no login now” > /etc/nologin# (Linux)# echo “Sorry no login now” > /var/run/nologin # (FreeBSD)限制某些应用程序需要设置可打开最大文件和 socket 数量(像代理服务器,数据库)。 默认限制通常很低。Linux每 shell/脚本shell 的限制是受ulimit支配的。使用ulimit -a可查看其状态信息。 举个例子,改变可打开最大文件数从 1024 到 10240,香港服务器租用,可以这么做:# ulimit -n 10240# 这只在shell中有用ulimit命令可以使用在脚本中来更改对此脚本的限制。每 用户/进程登录用户和应用程序的限制可以在/etc/security/limits.conf中配置。举个例子:# cat /etc/security/limits.conf* hard nproc 250# 限制所有用户进程数asterisk hard nofile 409600# 限制应用程序可打开最大文件数系统级用sysctl来设置内核限制。要使其永久,可以在/etc/sysctl.conf中进行配置。# sysctl -a# 显示所有系统限制# sysctl fs.file-max# 显示系统最大文件打开数# sysctl fs.file-max=102400# 更改系统最大文件打开数# cat /etc/sysctl.conffs.file-max=102400# 在 sysctl.conf 中的永久项# cat /proc/sys/fs/file-nr# 在使用的文件句柄数FreeBSD每 shell/脚本在 csh 或 tcsh 中使用limits命令,在 sh 或 bash 中使用ulimit命令。每 用户/进程在/etc/login.conf中配置登录后的默认限制。未作限制的值为系统最大限制值。系统级内核限制同样使用 sysctl 来设置。永久配置,在/etc/sysctl.conf或/boot/loader.conf中。其语法与 Linux 相同,网站空间,只是键值不同。# sysctl -a# 显示所有系统限制# sysctl kern.maxfiles=XXXX# 最大文件描述符数kern.ipc.nmbclusters=32768# 在 /etc/sysctl.conf 中的永久项kern.maxfiles=65536# Squid 通常用这个值kern.maxfilesperproc=32768kern.ipc.somaxconn=8192# TCP 列队。apache/sendmail 最好用这个值# sysctl kern.openfiles# 在使用的文件描述符数# sysctl kern.ipc.numopensockets# 已经开启的 socket 数目详情请看FreeBSD 手册 11章。Solaris在/etc/system中的下列设置,会提高每个进程可以打开最大文件描述符的数量:set rlim_fd_max = 4096# 一个进程可以打开文件描述符的”硬”限制set rlim_fd_cur = 1024# 一个进程可以打开文件描述符的”软”限制运行级别Linux一旦内核加载完成,内核会启动init进程,然后运行rc脚本,之后运行所有属于其运行级别的命令脚本。这些脚本都储存在 /etc/rc.d/rcN.d 中(N代表运行级别),并且都建立着到 /etc/init.d 子目录中命令脚本程序的符号链接。默认运行级别配置在 /etc/inittab 中。它通常为 3 或 5:# grep default: /etc/inittabid:3:initdefault:可以使用init来改变当前运行级别。举个例子:# init 5# 进入运行级别 5运行级别列表如下:使用chkconfig工具控制程序在一个运行级别启动和停止。# chkconfig –list# 列出所有 init 脚本# chkconfig –list sshd# 查看 sshd 在各个运行级别中的启动配置# chkconfig sshd –level 35 on# 对 sshd 在级别 3 和 5 下创建启动项# chkconfig sshd off# 在所有的运行级别下禁用 sshdDebian 和基于Debian 发行版像 Ubuntu 或 Knoppix 使用命令update-rc.d来管理运行级别脚本。默认启动为 2,3,4 和 5,停止为 0,1 和 6。# update-rc.d sshd defaults# 设置 sshd 为默认启动级别# update-rc.d sshd start 20 2 3 4 5 . stop 20 0 1 6 . # 用显示参数# update-rc.d -f sshd remove# 在所有的运行级别下禁用 sshd# shutdown -h now (或者 # poweroff) # 关闭停止系统FreeBSDBSD 启动步骤不同于 SysV, 她没有运行级别。她的启动状态(单用户,有或没有 XWindow)被配置在/etc/ttys中。所有的系统脚本都位于/etc/rc.d/中,第三方应用程序位于/usr/local/etc/rc.d/中。service 的启动顺序被配置在/etc/rc.conf和/etc/rc.conf.local中。默认行为可在/etc/defaults/rc.conf中进行配置。 这些脚本至少响应 start|stop|status.# /etc/rc.d/sshd statussshd is running as pid 552.# shutdown now# 进入单用户模式# exit# 返回到多用户模式# shutdown -p now# 关闭停止系统# shutdown -r now# 重新启动系统同样可以使用进程init进入下列状态级别。举个例子:# init 6为重启。重设 root 密码Linux 方法 1在引导加载器(lilo 或 grub)中,键入如下启选项:init=/bin/sh内核会挂载 root 分区,进程init会启动 bourne shell 而不是rc,然后是运行级别。使用命令passwd设置密码然后重启。别忘了需要在单用户模式下做这些动作。如果重启后 root 分区被挂载为只读,重新挂在它为读写:# mount -o remount,rw /# passwd# 或者删除 root 密码 (/etc/shadow)# sync; mount -o remount,ro /# sync 在重新挂在为只读之前 sync 一下# rebootFreeBSD 和 Linux 方法 2FreeBSD 不会让你这么做。解决方案是用其他操作系统(像系统紧急修复光盘)挂载 root 分区,网站空间,然后更改密码。# mount -o rw /dev/ad4s3a /mnt# chroot /mnt# 改变程序执行时所参考的根目录位置为 /mnt# passwd# reboot内核模块Linux# lsmod# 列出所有已载入内核的模块# modprobe isdn# 载入 isdn 模块FreeBSD# kldstat# 列出所有已载入内核的模块# kldload crypto# 载入 crypto 模块编译内核Linux# cd /usr/src/linux# make mrproper# 清除所有东西,包括配置文件# make oldconfig# 从当前内核配置文件的基础上创建一个新的配置文件# make menuconfig# 或者 xconfig (Qt) 或者 gconfig (GTK)# make# 创建一个已压缩的内核映像文件# make modules# 编译模块# make modules_install# 安装模块# make install# 安装内核# rebootFreeBSD要改变和重建内核,需要拷贝源配置文件然后编辑它。当然也可以直接编辑GENERIC文件。# cd /usr/src/sys/i386/conf/# cp GENERIC MYKERNEL# cd /usr/src# make buildkernel KERNCONF=MYKERNEL# make installkernel KERNCONF=MYKERNEL要重建完全的操作系统:# make buildworld# 构建完全的系统,但不是内核# make buildkernel# 使用 KERNCONF 配置文件编译内核# make installkernel# reboot# mergemaster -p# 建立临时根环境并比对系统配置文件# make installworld# mergemaster# 升级所有配置和其他文件# reboot对于源的一些小改动,有时候简单的命令就足够了:# make kernel world# 编译并安装内核和系统# mergemaster# reboot没有伞的孩子必须努力奔跑!

linux 操作

相关文章:

你感兴趣的文章:

标签云: