本文共 10658 字,大约阅读时间需要 35 分钟。
2012-11-20 一、red hat 发布版的安装 启动时输入 boot: linux askmethod 选择可以通过硬盘或者网络安装。 boot: linux dd driver disk 安装 如服务器安装时需首先安装阵列卡驱动 linux ks kickstart 安装 无人值守安装方式,原理直接配置文件安装,如:boot: linux ks=nfs:192.168.0.254:/var/ftp/pub/ks.cfg 2、分区:/boot 200M 必须 swap 分区为内存的1到2倍 / 根分区(需求不明确时可以把剩的空间划分为上述分区,如有需求如需安装oracle,可以需划分u01等分区) 上述为三个基本分区! 3、boot loader password 需设置,不然root密码形同虚设。 4、安装过程中,ctrl+alt +F1 ---F7 之间切换 返回命令界面 5、linux 内核位置:/boot/vmlinuz-2.6.9-22.EL 界面转换:authconfig 二、linux操作系统的基本结构: 1、kernel 内核 uname -a 查看kernel的版本号! 2、modules 模块 3、 lib 库 4、app 应用程序 不同控制台之间发送消息: echo AAAAA> /dev/tty1 who am i 查看当前登录的用户 w 查看控制台/或登录用户 skill 掉某个用户或终端命令:skill -9 pts/2 默认为6个终端,修改以下配置文件可以更改:vi /etc/inittab vi 退出保存 :wq 启动Xwindow :startx 启动第一个xwindow startx -- :1 启动第二个xwindow 三、linux命令: 1、shell 的内部命令:shell 本身提供的功能 提供帮助方法:help 2、shell 的外部命令:由外部文件提供 提供简单帮助方法:命令+ --help man +命令 提供详细的帮助方法 使用方法 :搜索 /+关键字 或?+关键字 n向下滚动,shift+n 向上滚动 man 7 man 查看 共9种类型文件 info 帮助命令,使用得较少,与man类型,但比较详细。 3、linux 命令的习惯: 1、命令及参数区分大小写; 2、程序可否执行与扩展名无关;(添加chmod x 权限即可) 3、使用tab键来补全命令 4、善用寻求帮助形式。 一些快捷键: ctrl +c 直接暂停 ctrl+z 直接丢后台暂停 ctrl +l 清屏 四、文件操作命令: 1、touch 创建文件 ,更新文件,touch /etc/{a,b} 创建两个文件。 mkdir 创建文件夹 rmdir 删除文件夹 (只可以删除空的文件夹)--较少用 查看文件属性详细信息命令:stat 如:stat a 前面带点的文件为隐藏文件,如.a ,查看时需这样操作:ls -a 查看当前目录:pwd 2、ls 查看文件 ls -F 查看文件类型,如文件夹为/a ,带@为链接文件 ,带 *号为执行文件。 3、mv 移动或重命名 mv b c 更换b文件为c名 4、 rm 删除 rm -f 删除一个文件不需要确认 rm -r 删除一个文件夹 rm -rf 删除一个文件夹包括里面所有文件,不需要询问 5、. 代表当前目录 , .. 代表当前目录的上一级目录, cd - 回到上一目录 6、 cat 查看文件内容,more和less也是查看文件内容 more可以一页一页查看,但只能往下翻; less 也可以一页一页查看,可以上下翻; 7、vi 命令 q!不保存退出 u 撤消 ctrl + r 重做 8、alias 别名 如定义一个别名:alias ii ="ls -l" 删除别名: unalias ii 9、 重要,关于配置文件,vi ~/.bashrc 10、添加用户: useradd ming (添加用户时需设置密码才可以登录) passwd ming 如不加用户名即修改当前用户的密码 11、su ming 在当前界面切换帐户, su - ming 切换到另一帐户 6-3 系统命令初步 查看计算机信息: 1、hostname 查看计算机名,更改时直接后面加上计算机名(重启不生效),更改以下配置文件永久生效:/etc/sysconfig/network 2、更改IP信息: ifconfig eth0 192.168.1.80 (重启不生效) vi /etc/sysconfig/network-scripts/ifcfg-eth0 (更改配置文件) netconfig service network restart (netconfig 后重启服务生效) 3、id root 的id为0 组id也是为0 4、date date +%d 显示日期 date +%m%d 显示月份日期 如创建 一个以时期命名的log:touch `date +y%m%d%`.log 5、file 查看文件类型(详细) file a 6、mount 加载 mount /dev/sda2 /mnt 把sda2 加载到mnt umount 取消加载 加载u盘使用:mount /dev/sdb1 /file1 加载光驱使用: mount /dev/cdrom /mnt 加载共享:mount -t cifs //192.168.0.2/tools /mnt mount //192.168.0.2/tools /mnt mount -o username=administrator //192.168.0.20/tools /mnt 加载nfs :mount 192.168.0.20:/var/ftp/pub /mnt 7、cat /dev/cdrom > a.iso mount -t iso9660 -o loop a.iso /mnt 查看光盘内容 8、du 查看文件的大小 du a.tar 查看文件大小 du -s a 查看文件夹大小 du -sh a 9、df 显示分区大小情况 df -h 显示分区大小使用量 10、ssh 远程登录 ssh 192.168.0.20 ssh scott@192.168.0.20 以什么用户远程登录 11、exit 退出当前shell logout 退出登录shell 12、关闭系统: shutdown -h now 关闭服务再关机 init 0 直接关机 或: halt -p -f 或 poweroff 13、重启: shutdown -r now init 6 reboot 6-4 用户及组管理 1、useradd 添加用户 用户信息存放在以下文件: /etc/passwd 例: useradd oracle –g oinstall –G dba –d /home/oracle –p ora123 系统将创建一个用户 oracle,oracle用户的首要组为 oinstal,次要组为 dba。Home 目录为/home/oracle,密码为 ora123 。 userdel 删除用户 彻底删除包括home下的目录文件:userdel -r ming usermod 更改用户属性 如,把ming用户更改属性添加到多个组里: usermod -G root,bin,todd ming 把多个用户加入到root组里: gpasswd -M ming,todd,ttt root 用户密码文件: vi /etc/shadow 用户组密码文件 : vi /etc/gshadow 较少用 用户组文件 : vi /etc/group 如:做一个用户迁移,把上述文件移动另一个系统 注:加入root组并就是有root权限,uid为0才是root 2、修改以下文件也可以更改用户属性一般常用: vi /etc/login.defs 3、向控制台发出信息: write mesg wall 给所有登陆在本机用户发出信息 last 查看登录日志 lastlog 查看全部登录日志 6-5 linux系统文件的存储及权限 1、-代表普通文件,d 代表目录类型文件,l代表链接文件 b c s p 管道文件 共7种文件 2、备份整个硬盘到一个加载u盘上: dd if=/dev/sda of=/mnt/a.img 或者其中一个分区:dd if=/dev/sda1 of=/mnt/a.img 3、文件授权: 644 二进制为: 110 100 100 即权限为:rw- r-- r-- chmod 644 A 如不用数字授权为: chmod ugo+x A 所有设置为都增加一个执行权限 u 代表拥有者,g代表拥有组,o代表其它 chmod a-x A 同理减小一个X chmod a=rw A 都为rw权限 chmod -R 777 /tmp/work 大写R参数表示把整个目录所有文件都设置为上述权限 4、修改文件的拥有者: chown ming a 把a文件的拥有者更改为ming用户 如果加大写R参数跟chmod一样用法 5、改变文件的拥有组 chgrp root a 用法跟上述一样,也可以带大写R参数 6、新建一个软链接: ln -s file1 file2 建立file1的软链接file2 ,如是硬连接则不加-s 4、linux下文件权限不叠加,如某用户对这个文件没有权限,但它所属的用户组有权限,最后权限是没权限,跟win不一样 7--- linux 文件夹及文件的权限 1、文件夹权限:X为重要权限,如果没有x权限则不能cd进去。 r权限对应为 ls查看执行 x cd rx cd ls wx cd touch rm vi (自己的,其它人的) wxt cd touch rm vi(只可以修改自己的) 注:文件夹W权限很重要,如果一个用户对此文件夹有写的权限,那么对文件夹里面的权限同样可写! : wq! 强制修改保存退出 /tmp 权限为1777 ,1为sticky 权限 umask 关于不同用户创建文件或文件夹的权限: 文件夹:777-umask 文件:666-umask 8---linux 编译器及vim初步: 1、rhel5 把vi省去,需直接输入vim 2、u 撤销undo ,ctrl+r 重做 3、"a3yy 复制 "ap 粘贴 自定义剪贴板 a,可以为b,c等,3代表复制3行。 4、:set nu 显示行数 9--文件查找与压缩: 1、which 查找可执行命令 如: which ls 注:只可以查找命令 echo $ PATH 输入路径为which查找的路径 2、whereis 跟which 相似 3、locate 查找东西比较快,且查找所有目录 ,查找前需更新db:updatedb ls ‘which locate’-l locate aaa.tar.gz locate -r '.*newfile.*' cat /etc/cron.daily/ 计划任务里的内容 4、find 命令(比较慢): 语法:find /etc -name newfile.txt find /etc -name "*newfile*" 直接加文件名为在当前目录查找。 find /etc -name "*network*" -exec ls { } \ ; 把查找出来的内容再执行ls命名 find /etc -name "*network*" -ok rm { } \ ; 把查找出来的内容再执行ls命名,但需确认,exec不需交互。 find /etc -等等 参数。 find / -perm -777 -type d -ls 从根目录下开始查找所有权限为777的目录 5、grep 对指定文件内容进行查找(只查找文本文件): grep -R -l shrek /etc 查找所有带shark字母内容的文件关ls出来 6、压缩工具: gzip 压缩 gunzip 解压缩 bzip2 压缩 ,跟gzip差不多,但压缩比较高 bunzip2 7、tar 打包: tar cvf /tmp/root.tar /etc/network 把network 打包到tmp下 tar rvf /tmp/root.tar /etc/network /etc/passwd tar xvf /tmp/root.tar -C /tmp/dd/ 解压到指定目录下xvf tar tvf /tmp/root.tar 预解压文件tvf tar cvfz /tmp/root.tar.gz /etc/network 打包后再压缩cvfz rvf不可以加z使用 tar xvfz /tmp/root.tar.gz -C /etc/network 解压解开到 xvfz 注释:c 创建新的档案文件 r 把要存档的文件追加到档案文件后面 t 列出档案文件的内容,查看已经备份了哪些文件 u 更新文件 x 从文档文件中释放文件 v 详细报告 f 使用档案文件或设备 8、history 查看历史命令 10--文本处理及正则表达式---- 1、对文本文件操作命令:cat,more(只能往下),less head 显示文件的头部内容,默认显示前十行,参数-n 指明显示行数 如;head -n 20 /etc/passwd 显示passwd的前20行。 tail 显示文件结尾部分,用法与head一样。 注意:tail -f /var/log/message 实时监控日志文件更新信息,非常重要 -f 如果文件的大小在增长的话,tail 将跟随文件的增长而显示。 sort -t : +2 -n /etc/passwd 排序以:分隔 +2第三列,-n数字 (默认从大到小,加-r 即从小到大) sort -t : +2 -n /etc/passwd > /tmp/a 排序后并输出到a文件 sort -t : +2 -n /etc/passwd | head -n 3 输出前3行 2、抓取文本中的一部分内容: cut -d: -f1 /etc/passwd 以:为分隔符抓取第1行 cut -d: -f1 /etc/passwd | grep shrek 以:为分隔符抓取第一行,再取出带shrek的行 cut -c1-3 /etc/passwd 取第一至三个字符下来 3、常见参数: grep -v -l -R -c -A2 -B2 -v不包含 cut -d: -f2-4 -c1-5 sort -n -r -t: +2 注:grep执行时需加‘’号,如: grep 'ming' /etc/passwd 4、wc 统计文件的行,词,字数 可以加以下参数: wc -l -w -c /etc/passwd 5、uniq 只显示不同的单词: 6、diff 两个文件作对比: diff a b 7、正则表达式: . 表示任意一个单一字符 .* 表示任意多个单一字符 ^a 表示以a为首的行 a$ 表示以a为尾的行 \<good 表示以good开头的单词 good\> 表示以good结尾的单词 [abc] 表示当前位置 a、b或c [^abc] 表示除了a、b、c以外的字符 a* 表示多个a a? 表示一个或单个单独的a a+ 表示a、aa、及至更多个a a\{n\} 表示重复了n次的a 11---输入输出重定向及管道: 1、标准重定向输出:> ls /etc/passwd > /tmp/a >号只输出正确的信息,如果 是错误信息则是 2> 如:ls /etc/afdsafdaf 2> /tmp/a 注:上述重定向都会把a文件清空后再写入。利用此可以对文件删除清空。 &> 表示错误正确的消息都写入 >> 追加到文件后面 &>>表示正确错误都追加到文件后 cat /dve/cdrom > /tmp/a.iso 将光盘做成iso镜像 2、两个<< cat << aaa 等待输入 tr “a-z” “A-Z”< /etc/passwd 把passwd全部输出变成大写 cat > b.txt << DDD 当输入DDD时 中断退出 ls /etc/ | wc -l 统计有多少文件示例 ls /etc -l | grep '^d' | wc -l 统计有多少个文件夹应用 3、 tee 复制 12----进程控制 1、hostname 主机名,注当更改完主机名时一定要更改相关IP: vi /etc/hosts 更改里面的相对应 IP地址,如window 里的hosts文件 2、free 查看内存使用情况 3、proc 内核的一个小窗户,里面的文件都是虚的 4、日志 /var/log 查看相关日志 message(系统日志) ,secure,(安全日志) wtmp(安全加密日志),maillog(邮件日志) 5、查看进程:top 或 ps ,ps -aux 显示所有进程,-f 查看进程树 终结进程:kill -l 可以查看相关号,如:kill -9 ,kill -11 直接结束进程:kill 4811 强制结束:kill -9 4811 杀掉所有httpd进程: killall httpd -9 杀掉某个用户的进程: skill -9 ming 关于进程状态:s 代表睡觉,T代表暂停,R代表 运行 ,Z 僵持进程,D深度睡眠进程,<:高优先级进程,N:低优先级进程 6、关于优先级: -20 到19 最大优先级 为-20 top里面使用 r 来修改优先级。 nice -n -20 updatedb 以高的优先级执行命令 renice -20 1 把进程1的优先级更改为-20 7、jobs 查看后台任务,bg %1 把后台第一个进程运行起来,fg %1把后台第一个进程转到前台并停止,kill %1 结束第一个进程。ctrl + z 停止一个任务并丢到后台。 nohup updatedb & 在shell退出后,后台进程仍在执行,作为系统进程 ----13 bash 使用详解: set 查看所有的变量,env 查看全局环境变量 1、 vi ~/.bash_profile 设置bash命令 定义一个变量,取出其值 AA=aaaaaaaa echo AA 上述为普通变量,只可以在相应的bash下使用,下面定义全局变量使用: export AA=aaaaaa 2、history -c 删除全部历史纪录 如果想每次退出时清除命令历史纪录: vi .bash_logout 在上述文件中加入history -c 调用命令历史:ctrl + r 3、关于bash的字符(注:跟正则表达式不一样): ! 表示执行等,~表示 主目录,( ) 声明一个函数如:a() "" 号只能把空号的意义的屏蔽,‘ ’把全部特殊符号屏蔽,`` 可以先执行``里面的命令,如:touch `date + %y%m%d`log (反引号是指~里下面的) \ 脱义符号 ,如touch 一个$的文件: touch \$ ; 可以连续执行两个命令: echo aaaa ; ls /etc -l 4、查看上述命令是否正常执行:echo $ ? 正常执行输出0。 5、两个&&号的使用:[ -f /etc/passwd ] && echo ok 如果前面为正确时执行后面的命令 6、两个|| 号的使用 : [ -f /etc/passwdddd ] || echo ok 与上面命令相反,如果不正确时才执行。 (注:上述-f 代表查找文件,-d代表查找目录,-l 代表一个链接,-x代表是否可以执行,-r是否可以读,-w是否可写,-e 表示文件是否存在,-s 文件大小不为零) 同时需注意上述加空格代表判断,如:[ $USRE = root ] && echo it is root 7、定制bash shell 脚本里一般初始化会执行以下几个参数配置文件: 1、/etc/profile 针对所有用户的 ,公用 的 2. ~/.bash_profile 当前目录下的 3. ~/.bashrc 4. /etc/bashrc 针对所有用户的 8、更改为中文界面 查看当前系统语言:echo $LANG vi ~/.bashrc 打开上述文件添加以下: export LANG="zh_CN.UTF-8" export LC_ALL ="zh_CN.UTF-8" 上述只针对当前用户,如更改整个系统的语言则更改以下: vi /etc/sysconfig/i18n 添加以上即可 -----14.shell 脚本编程详解: 1、声明一个bshell 脚本以:#!/bin/sh 2、重设shell环境 :reset ,man bash 录求帮助 3、在当前的shell里来执行: . ./backup 4、查看脚本的执行:bash -vx ./b 可以查看脚本的一步步执行(调试使用), bash -v ./b 查看脚本的执行 5、if 语法: 以下为一个bash 示例: #!/bin/bash read AA if [ $AA = root ] then echo 'hello root' elif [ $AA = ming ] then echo 'hello ming!!' else echo 'you are a bish!' fi 6、case……in 语法: #!/bin/bash read AA case $AA in ming) echo 'hello ming, welcome to here!!' ;; root) echo 'hello root ,i miss you so mush !!' ;; *) echo 'you are a bish ,get out here!!' ;; esac 7、/etc/rc.d/init.d/ 上述为系统初始化时的shell路径 8、file1 -nt file2 文件file1 比文件file2更新 file1 -ot file2 文件file1比文件file2 更老 9、数值运算符比较: 相同 -eq = 不同 -ne != 大于 -gt > 小于 -lt < 大于或等于 -ge 小于或等于 -le 为空 -z 不为空 -n 10、下述为kill 掉httpd的例子: AA="`pgrep httpd`" [ -z "$AA" ] && echo 'httpd is not running !!' && exit for i in $AA do kill -9 $i done echo 'httpd has killed' 11、循环100次: for i in `seq 1 100` 12、while 循环: AAA=0 while [ $AAA -lt 100 ] do AAA =$[$AAA+1 ] echo \ "$AAA" done 13、编写一个输入某个数循环: 14、sed 使用: sed -n -e '/ming/p' /etc/passwd 默认输出带ming的项 ,-e表示执行后面的命令,-n表示默认输出,p打印 sed -n -e '/\<ming\>/s/bash/nologin/p' /etc/passwd 把bash替换成nologin ,s表示替换 。 sed -e 's/nologin/login/' /tmp/ddd/passwd 把所有nologin 替换成login sed -n -e '/ming/s/bash/nologin/g' /tmp/passwd > /tmp/ddd/a 替换后并输出,g代表全部替换。 sed -e '/^\#/d' -e '/^$/d' /tmp/ddd/squid.conf > /tmp/ddd/bb 删除以#开头以及为空的行, d代表删除 15、把 '' 里面的命令写成一个文件ss,然后再sed执行: sed -f ss /tmp/ddd/passwd 16、软件安装: 1、rpm -ivh ....i386.rpm 安装某个rpm软件包,-i表示安装,v表示显示百分比,h显示过程。 强制重新安装:rpm -ivh --force ...i386.rpm 强制安装:rpm -ivh --nodeps ...i386.rpm --nodeps 强制安装不管其它关联关系 安装:rpm -ivh --aid ...i386.rpm --aid 解决一层关联关系,只有rhel4之前系统有。 强制删除rpm:rpm -e --nodeps httpd --nodeps是强制删除不管其它关联关系 2、rpm -q httpd 查看httpd安装的包 rpm -qa 查看所有已经安装的包。 rpm -qi 查看已经安装的包的详细信息 rpm -ql 查看包的安装路径 rpm -qpi a.rpm 查看未安装的包的信息 3、解压出来的原代码进行编译安装: ./configure --prefix=/usr/local/httpd --with-mpm=worker (指定安装在哪一个目录下面) make make install 17------xwindow 图形界面 ctrl+alt + 退格 :关闭x-window界面 18------安全方面: nmap -sS -O -P0 www.baidu.com 扫描端口 更改ssh端口: vi /etc/ssh/sshd_config service sshd restart
本文转自pimg200551CTO博客,原文链接: http://blog.51cto.com/pimg2005/1182919,如需转载请自行联系原作者