[05-02]红帽linux常用操作命令
Posted cainiaobufei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[05-02]红帽linux常用操作命令相关的知识,希望对你有一定的参考价值。
- 命令怎么用(三种方式)
shutdown --help
shutdown --?
man shutdown (man 就是manual 手册, 指南)
- 服务 service
怎么知道服务的名字呢?用这个命令chkconfig:
chkconfig --list 会列出所有的服务项
启动服务,例如启动mysql的服务
service mysql start 不是所有的命令都有这个d这个字母
service iptables stop 关掉防火墙
service vsftpd start 启动vsFTP服务器
service vsftpd stop 服务停止
service vsftpd restart 重新启动
- 开机自启动
你不用再手动的再去启动Mysql,vsftp,apache等等
用chkconfig这个命令,check configure 检查配置
chkconfig --list | more
chkconfig --list | grep mysql
chkconfig --list | grep vsftpd
chkconfig mysql on 这几个3 4 5级别都启动
chkconfig --level 3 mysql on 只是在3这个级别启动
chkconfig mysql off
Mysql数据库的服务--------------mysql
vsFTP服务器的服务------------vsftpd
防火墙的服务------------iptables
ssh的服务------------sshd
http------------------httpd
- 修改系统默认的启动级别
修改那一个配置文件时,先备份
修改配置文件 /etc/inittab,将id:5:initdefault中的数字5改为3
3 纯命令行界面,有网络共享
5 图形界面
下一回系统启动的就不进入那个图形界面了
- 查看硬件信息
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态用户
# w # 查看活动用户
# id # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务服务
# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务程序
# rpm -qa # 查看所有安装的软件包
cat /proc/cpuinfo :查看CPU相关参数
cat /proc/partitions :查看硬盘和分区
cat /proc/meminfo :查看内存信息
cat /proc/version :查看版本,类似uname -r
cat /proc/ioports :查看设备I/O端口
cat /proc/interrupts :查看中断
cat /proc/pci :查看pci设备的信息
cat /proc/swaps :查看所有swap分区的信息
- 查看系统日志
/var/log
/var/log/dmesg /核心启动日志
/var/log/messages /系统报错日志
/var/log/maillog /邮件系统日志
/var/log/xferlog /FTP服务用日志
/var/log/secure /安全信息 系统登陆与网络连接的信息
/var/log/wtwp /登录记录
# tail -f /var/log/messages /查看最近发生的信息.
- 系统开关机
切换虚拟工作台:
Alt键和一个功能键来实现,通常使用F1-F6 。
如用户登录后,按一下“Alt+F2”键,用户就可以看到上面出现的“login:”提示符,说明用户看到了第二个虚拟控制台。只需按“Alt+ F1”键,就可以回到第一个虚拟控制台。
一个新安装的Linux系统允许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。
虚拟控制台最有用的是:当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作,关闭这个程序。
关闭计算机
shutdown -h -t 30 30秒后安全地关机断电
shutdown -c 取消关机命令执行
重启计算机reboot
退出命令行 exit
- 切换运行级别
运行级就是操作系统当前正在运行的功能级别。
这个级别从1 到6 ,具有不同的功能。这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。
大多数的linux 发行版本中,启动脚本位于 /etc/rc.d/init.d。这些脚本被ln 命令来连接到 /etc/rc.d/rcn.d 目录。(这里的n 就是运行级0-6)例如/etc/rc.d/rc2.d 下面的S10network 就是连接到/etc/rc.d/init.d下的network 脚本的。
文件开头的S 代表start 就是启动服务的意思,后面的数字10 就是启动的顺序。例如,在同一个目录下,你还可以看到 S80postfix 这个文件,80 就是顺序在 10 以后,因为没有启动网络的情况下,启动postfix是没有任何作用的。另外,在/etc/rc.d/rc2.d 还可以看到那些K 开头的文件,例如/etc/rc.d/rc2.d/K45named,K 代表 kill ,表示停止服务的意思。
标准的linux运行级为3 或者5 ,如果是3 的话,系统就在多用户状态。如果是5的话,则是运行着X Window。
不同的运行级定义如下:
(可以参考Red Hat linux 里面的/etc/inittab)
# 0 - 停机
# 1 - 单用户模式
# 2 - 多用户,但是没有 NFS
# 3 - 完全多用户模式
# 4 - 没有用到
# 5 - X11
# 6 - 重新启动 (千万不要把initdefault 设置为6 )
对各个运行级的详细解释:
0 为停机,机器关闭。
1 为单用户模式。
2 为多用户模式,但是没有NFS 支持。
3 为完整的多用户模式,是标准的运行级。
4 一般不用,在一些特殊情况下可以用它来做一些事情。
5 就是 X11 ,进到 X Window 系统了。
6 为重启,运行 init 6 机器就会重启。
- 软件包管理
安装 RPM 包
# rpm -ivh package.rpm
升级 RPM 包
# rpm -Uvh package.rpm
卸载 RPM 包
# rpm -ev package
查询 RPM 包中包含的文件列表
# rpm -qlp package
查询 RPM 包中包含的文件列表
# rpm -qlp package
查询 RPM 包中包含的内容信息
# rpm -qip package
查询系统中所有已安装 RPM 包
# rpm -qa
- 用户管理
who:查询当前在线的用户
groups:查询用户所属的组
id:显示当前用户信息
finger:查询用户信息
添加新的用户 useradd username
更改用户密码 passwd username
改变用户home目录 usermod -d /home/username username
usermod -e "2009-01-01" username 给用户设置密码过期时间
usermod -G root(组) username (用户) 将一个用户添加到一个组里
usermod -g root username 更改用户的gid
usermod -s /bin/csh username 更改用户的默认shell
usermod -u 504 username 更改用户的uid,改为504
usermod -L username 锁定用户,锁定后用户不能登陆linux系统
usermod -U username 解锁用户
passwd -s username 看用户是否被锁定
userdel 用户名 仅删除用户注册信息
userdel -r 用户名 删除属于该用户的的家目录和邮件
- 存储管理
查看新的硬盘 # fdisk -l
创建pv # pvcreate /dev/sdb
创建vg # vgcreate datavg /dev/sdb /dev/sdc
注:在使用vgcreate 在创建卷组时,还可以指定PE的大小,需要加上-s参数来实现,PE大小范围为8 KB 到 16GB,并且必须总是2的倍数。一个卷组里面最多允许65534个PE存在。默认设置的PE大小为4 MB,这表示卷组上创建的所有逻辑卷都以 4 MB 为增量单位来进行扩充或缩减,所以4 MB 的PE决定了单个逻辑卷最大容量为 256 GB,若要创建更大的逻辑卷则创建卷组时需要指定更大的PE。
创建lv # lvcreate -L 180M -n lvdata01 datavg
注:使用剩余的空间来创建逻辑卷时,应先通过“vgdisplay”命令可查看当前卷组剩余的空间。
在创建逻辑卷的时候,还可以指定逻辑块与物理块映射的模式,逻辑卷的映射模式共有如下两种:
线性模式――按照顺序把一定范围内的物理块与逻辑块映射,这也是默认的映射方式。例如,把逻辑卷中1-25的LE映射到PV1,把26-50的LE映射到PV2上。
条带模式――将把逻辑块以条带的形式映射到不同的物理卷中,这种方式与前面讲到的RAID 0有些类似,这种方式可以提高逻辑卷读写的性能。例如,将逻辑卷的LE 1映射为PV1的PE1,LE 2映射为PV2的PE1,LE 3映射为PV3的PE1。
# lvcreate -i 3 -I 4 -L 180M -n lvtest1 vgtest
参数的说明如下:
-i:采用条带模式的映射方式创建逻辑卷,该参数的值用于指定所创建的逻辑卷将映射在几个PV上。
-I:指定使用条带模式时所采用块的大小,单位为KB,其值必须是:2N(N≥2)。
-L:指定创建逻辑卷的大小,单位的可以用K、M、G、T表示KB、MB、GB及TB。
-n:用来指定所创建的逻辑卷名称,该名称可根据需要随便定义。
-l:用于指定逻辑卷的PE数量,默认为4MB为单位计算总容量。
在使用“-i”参数指定PV的个数时,一定要确认所指定的这些PV是没有完全被分配给任何逻辑卷的,否则将创建失败,其次若这些PV的大小不等,那么所创建的逻辑卷只能取最小值。
创建文件系统
# mkfs.ext3 /dev/datavg/lvdata01
挂载文件系统
# mkdir /data01
# mount /dev/datavg/lvdata01 /data01
手动激活卷组 # vgchange -a y datavg
手动去激活卷组 # vgchange -a n datavg
注:卷组若不被激活,卷组和逻辑卷是不能被访问的,在LVM 2里创建的卷组默认是激活的。
为卷组增加新的物理卷
当卷组空间不足时,可以加入新的物理卷来扩大卷组容量,这时可用“vgextend”命令来实现。
# vgextend datavg /dev/sde
移除物理卷
要从一个卷组中移除一个物理卷,首先要确认要移除的物理卷没有被任何逻辑卷正在使用,通过“pvdisplay”命令可查看到该物理卷信息,如下:
# pvdisplay /dev/sde
--- Physical volume ---
PV Name /dev/sde
VG Name vgtest
PV Size 100.00 MB / not usable 0
Allocatable yes
PE Size (KByte) 4096
Total PE 25
Free PE 25
Allocated PE 0
PV UUID ee2IFC-UHUq-Xg67-icwt-AhdJ-7kRz-JdDjiq
若其中的“Total PE”与“ Free PE”相等,表明该物理卷没有被使用,如果某个物理卷正在被逻辑卷所使用,就需要将该物理卷的数据转移到其它地方,然后再移除。移除物理卷的命令为“vgreduce”。
# vgreduce datavg /dev/sde
在物理卷间转移数据
当发现逻辑卷下的某个磁盘有错误,或有其它需求要转移其中物理卷的数据时(如,更换大容量或更高速的物理设备),那么可通过“pvmove”来实现在物理卷之间转移数据。
# modprobe dm-mirror
在使用“pvmove ”前需要用 “modprobe dm-mirror”命令来加载dm-mirror模块,因为“pvmove”在转移数据时需要用到该模块,而默认系统是不加载该模块的。# pvmove /dev/sdd /dev/sde
扩展逻辑卷
# lvextend -L +300M /dev/datavg/lvdata01 在原有的基础上,增加300MB空间大小
# lvextend -L 300M /dev/datavg/lvdata01 扩展到300MB空间大小
逻辑卷扩展后并不马上生效,需使用“resize2fs”命令重新加载逻辑卷的大小,该命令只针对ext2/ext3的文件系统(若是reiserfs的文件系统,则使用“resize_reiserfs”命令),如果该逻辑卷正在使用中,就应该先将该逻辑卷卸载后再执行“resize2fs”命令。
# umount lvdata01
# resize2fs /dev/datavg/lvdata01
# mount /dev/datavg/lvdata01 lvdata01
注:以上这些操作可以通过“ext2online”命令直接来实现,这样就不用做卸载逻辑卷等操作了。
# ext2online /dev/datavg/lvdata01
删除逻辑卷:删除逻辑卷前首先需要将其卸载,再执行以下命令:
# lvremove /dev/datavg/lvdata01
移除卷组:在移除卷组前首先要确认该卷组中已没有任何的逻辑卷了,或者可使用“vgchange”手工将卷组停止,移除卷组的具体操作如下:# vgremove datavg
删除物理卷:删除物理卷前,须确认该物理卷已从卷组中移除了。
# pvremove /dev/sde
- 网络配置
可以使用 system-config-network-tui (文本模式) 、system-config-network-gui (图像模式),netconfig(文本模式)等网络配置工具。这些工具都会直接修改Linux系统中关于网络接口的设置文件;
这是 ifconfig 命令所不能比的;其中 redhat-config-network 和system-config-network工具不仅仅是设置网卡的工具,更有设置ISDN和普通猫、ADSL的工具、网络硬件的添加、主机名字的设置、DNS各客户端的设置等。例如:
# /usr/sbin/system-config-network-tui
# /usr/sbin/system-config-network-gui
netconfig 工具是个在文本模式比较好的工具。
# netconfig -d eth0 /设置eth0
# netconfig -d eth1 /设置eth1
设置网卡的DHCP模式自动获得IP
# netconfig -d eth0 --bootproto=dhcp
手动设置网卡的IP等
# netconfig -d eth0 -ip=192.168.1.33 -netmask=255.255.255.0 -gateway=192.168.1.1
(1) 配置eth0的IP地址, 同时激活该设备。
#ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up
(2) 配置eth0别名设备eth0:1的IP地址,并添加路由。
#ifconfig eth0:1 192.168.1.3
#route add –host 192.168.1.3 dev eth0:1
(3) 激活设备。 #ifconfig eth0:1 up
(4) 禁用设备。 #ifconfig eth0:down
(5) 查看指定的网络接口的配置。 #ifconfig eth0
(6) 查看所有的网络接口配置。 #ifconfig
(7) 查看网络接口的连接状态:# ethtool eth0
(1) 添加到主机的路由。
#route add –host 192.168.1.2 dev eth0:0
#route add –host 10.20.30.148 gw 10.20.30.40
(2) 添加到网络的路由。
#route add –net 10.20.30.40 netmask 255.255.255.248 eth0
#route add –net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
#route add –net 192.168.1.0/24 eth1
(3) 添加默认网关。 #route add default gw 192.168.1.1
(4) 查看内核路由表的配置。
#route
(5)删除路由。
#route del –host 192.168.1.2 dev eth0:0
#route del –host 10.20.30.148 gw 10.20.30.40
#route del –net 10.20.30.40 netmask 255.255.255.248 eth0
#route del –net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
#route del –net 192.168.1.0/24 eth1
#route del default gw 192.168.1.1
对于1和2两点可使用下面的语句实现:
Ifconfig eth0 172.16.19.71 netmask 255.255.255.0
Route 0.0.0.0 gw 172.16.19.254
Service network restart
(1) 显示网络接口状态信息。 #netstat –i
(2) 显示所有监控中的服务器的Socket和正使用Socket的程序信息。 #netstat –lpe
(3) 显示内核路由表信息。
#netstat –r
#netstat –nr
(4) 显示TCP/UDP传输协议的连接状态。
#netstat –t
#netstat –u
hostname更改主机名
#hostname myhost
- 清屏
clear是清屏幕,windows是cls
- 列出文件的内容
cat tac head tail more
cat 3.txt 正序 从第一行开始
tac 3.txt 倒序 从倒数第一行开始
head 3.txt 头
head -3 3.txt 列出前3行
head可以带参数 -lines
尾 tail -1 3.txt 最后一行
more 3.txt ------more默认是可以分页的,所以很多管道用到了他
ls 横着排显示,这一行显示满了接着下一行
ls -l 一行只显示一个文件或者目录的详细信息
ls -m 横着排显示,这一行显示满了接着下一行
ls -R 有点像树状展示
- Cp+move
cp copy 拷贝 mv move 移动
cp 1 2 把1这个文件拷贝一份,名字叫2
cp -r d1 d2 拷贝目录必须带参数 r
删出一个目录,先要删去目录下面的东西。要用递归,拷贝也是
mv d2 d1 把d2目录移到d1,如果不行,加递归 mv –r
- 改名字 mv
Mv除了可以移动外,还可以改名字
Mv 3.txt 4.txt 把3.txt的名字改为4.txt
- whoami
显示当前的用户,是root还是其他用户
- 按5下 ESC
按5下 ESC,会出现可以很多使用的命令
display all 2091 possiblities,即RedHat Linux有2000多个命令。
- mount 挂载+卸载
mount point 挂载点
mount /dev/cdrom /mnt/cdr 将dev目录下的cdrom设备与
根目录下的mnt目录下的cdr目录关联起来,这就是挂载
挂载点------cdr 设备-----CDROM
卸载umount /dev/cdrom 或者 umount /mnt/cdr
- VI is important
Vi:命令模式与编辑模式,刚开始进入的命令模式,不能输入内容。
敲a进入编辑模式,底下会出现insert这个单词 append 追加
敲esc 退出编辑模式,进入命令模式
在命令模式敲冒号 : ,然后再敲命w 是存盘
q 是退出 q!是不存盘退出 wq是存盘退出(最常用)
wq是存盘退出 w是不是write的意思
- find
查找某个文件的名字(前提是你记得大概的名字),查找它的路径路径路径。可以根据创建日期查找,查找rc.local
find / -name *local 从根目录下面开始查找,指定一个位置,从那里开始查
find /etc -name *local
find /etc | grep local 系统回去找含有local这几个字母的所有文件或者目录
find / -name MySQL系统只是回去找名字叫MySQL的文件或者目录
find / -name MySQL*找名字叫前几个字母是MySQL(后面任意)的文件或者目录,名字不必写全
- whereis
whereis ls 查找ls这个命令在哪里
/bin bin 目录下面有各种命令 vi cat ls pwd 等等
/usr/bin 目录下面也有各种命令
- 查看环境变量
在DOS下面看环境变量
echo %path%
echo %classpath%
Linux下面 echo $PATH PATH 必须大写
- 链接 ln
ln 3.txt 4 more 4
链接:改了3.txt,4的内容也会自动跟着改,前提是你没有修改4
ln 3.txt 4 硬链接,相当于复制了一份,然后再在两个文件之间建立了快捷方式,修改3.txt,4也会变
ln -s 3.txt 5 软连接,相当于windows的快捷方式,修改3.txt,5也变
两种链接的不同之处:
将3.txt删去,5不存在了,连接断掉了,4还存在。
- wc (word count)
wc -l lines 这个文件有多少行
- grep
global regular expressions print 全局正则表达式版本
在文本文件中查找指定的字符串,并且把包含的那一行给显示出来, grep student 4
在4这个文本文件中找student这个字符串,哪一行包含它,显示出来
^在正则表达式中,代表一行的开头
ls -l | grep ‘^d‘ 只把目录列出来,/etc下面的文件与目录很多
^ 这个字符在数字6上面
rpm –qa 把所有的包都列出来,
rpm -qa | grep MySQL 查找含有MySQL这几个词的所有包,只要包名里面有MySQL这几个字母,就会被找出来
- grep 与 find
find / -name MySQL*
find / | grep MySQL
fdisk -l l显示当前的磁盘信息
- dmesg
列出开机的启动信息 全称是------d message
dmesg | grep eth0 看第一块网卡启动正常吗
- 命令替换wall
warning all 通知所有人,警告所有人
wall helloworld
wall `date` 警告的字符是当前的时间,把date当做一个命令,把这个命令执行的结果警告出去(` 这个字符是数字1左边那个字符)
wall date 警告的字符是 date
- 重定向
Java原来的一个程序,把out替换掉.
System.out.println() 把命令输出到了文件中
ls
ls > cmd.txt 把刚才ls执行的命令的结果输入到cmd.txt这个文件中
错误输出重定向---------
lssss > cmd.txt 不行 , lsss这个命令不存在
lssss 2> cmd.txt
重定向输入 wall < cmd.txt 把cmd.txt里面的内容警告出去
- 管道
分页显示,/etc下面的内容很多
ls -R
ls -R | more 把上一个命令执行的结果交给下一个命令
ls -l /etc | more
more默认是可以分页的,但是ls -l 不会分页,有时候显示的内容巨多无比,用more将结果。分页岂不很好。
ls -l | grep ‘^d‘ 只把目录列出来,/etc下面的文件与目录很多
- 文件权限 file privilege
最左边的一共有10位
- (代表文件) d(代表目录) l(是L代表链接)
把最左边的那一个去掉,就剩下9个了,可以划分成3组。
Linux文件的权限分为4种---------
read write execute none(什么也没有)
9位分成3组:
第一组代表这个文件的所有者有什么权限
第二组代表这个文件的所有者同组的人所拥有的权限
第三组代表剩下的人具有什么权限
x--------------execute
r-------------read
w---------------write
- 代表什么也没有 none
- Chmod-不专业
change mode
chmod +x 4 给4这个文件加上可执行权限,其他两组也具备
chmod -x 4 取消权限
chmod u+x 4 只给自己加上可执行权限,只给第一组加上权限
怎样让同组的其他人也有这个权限:
chmod g+x 4 只给第二组加上权限 group
chmod o+x 4 只给第三组加上权限 other
chmod 755 4
chmod 777 4
7表示权限都齐了 5表示没有写的权限
在Linux(Unix)内部表示权限,是用3个八进制数来表示的
000 =====0 111 ======7
- 怎么修改文件的所有者
chown testuser1 4 -------------change owner
- 简单用户的管理
当一个用户登录的时候,默认的路径是这个用户的主目录
- 添加用户(两种方式)
useradd testuser
adduser testuser
- 设置密码
passwd testuser 给这个用户设置密码
按了退格键 无效,因为密码不显示
- 两个位置变化
增加一个用户后,系统有两个位置会有变化:/home 、 /etc
cd /home ls #home目录会有一个自动生成的目录,叫做testuser
cd /etc more passwd 打开 passwd这个文件
passwd这个文件没有存密码,存的是所有的用户testuser:x:501:502::/home/testuser:/bin/bash
这句话的意思:这个用户 id号---501 所位于的组:502
用户的主目录为----/home/testuser
这个用户用到的shell -------- /bin/bash
用户组------------------------------------------------
组的信息在group这个文件中 /etc/group
添加一个用户不指定组的时候,会添加一个和你用户名一样的组
- 添加一个组
groupadd testg
useradd testuser2 -g testg 添加用户的时候指定组
修改用户所属组 usermod -g testuser testuser2新的组 用户名
usermod---------user modify
- 删除用户与组
删除用户分两步---删掉用户 删掉他的目录
userdel testuser
cd /home
rm -rf testuser
组的删除 groupdel testg
- 用户切换
switch user
su testuser2
- Shell
内核外面有一层,叫做shell,shell会解释你在Linux下面敲的命令,然后再与内核打交道。shell有不同的形式,有不同的shell,c shell -------c 语言形式的shell,不同的shell执行的命令是不一样的,同样的命令在不同的shell底下不能通用,常用的命令,可以通用。
咱们用的shell叫做 bash,以前叫做bsh,名字的由来,是由一个叫做bone的人,写的,所以叫做bsh,后来他又写了一遍,bone again shell ,所以叫做 bash。
bash ------ 切换到bash
csh --- 切换到 C shell
ksh ----- 切换到k shell
sh 最原始最原始的shell
bsh ------ 切换到bsh
以上是关于[05-02]红帽linux常用操作命令的主要内容,如果未能解决你的问题,请参考以下文章