常用linux命令整理
目录及文件
- ls 列目录
- ls -l (ll) 列出目录详细信息
- pwd 显示当前目录
- cd /home/root/ [cd]更改目录命令
- cd .. 退到当前目录的上一级目录
- cd / 直接进入到根目录
- cd ~ 进入宿主目录
- ./test 进入当前目录下的test目录
- mkdir 新键目录[可以同时建立多个目录]#mkdir dira dirb dirc
- rmdir 删除目录[删除指定的空目录]
- cp 复制文件
- rm -r 删除有内容的目录
- file 文件类型查看
- touch 新键文件
- cp 复制文件
- rm 删除文件
- mv 文件重命名与文件移动[#mv a b][#mv a b backup/]
- find 查找文件命令
- 文本文件查看命令:
- cat 简单的文本文件查看
- more 分屏显示文件中的内容
- less 适合较大的文本文件的阅览、
--------------------------------------------------------------------
- head 显示文件的头部[默认显示10行内容]#head -3[显示头部3行内容]
- tail 显示文件的尾部
--------------------------------------------------------------------
用户/组管理命令
- less /etc/passwd 查看所有用户
- less /etc/passwd 查看用户密码
- adduser sunchen 添加用户
- passwd sunchen 为sunchen用户设置密码
- userdel sunchen 删除用户
- usermod -L [用户帐号] 禁用系统中的用户帐号
- usermod -U [用户帐号] 启用系统中被禁用的用户帐号
- usermod -e YYYY-MM-DD name 设置帐号的有效期限
- groupadd class1 添加用户组[class1]
- adduser -g class1 sunchen 添加sunchen用户到class1组
- less /etc/group 查看系统中所有的组
- groupdel class1 删除用户组
- usermod -g [组] [用户] 将用户添加到组
--------------------------------------------------------------------
文件权限设定
- chmod [ugoa] [+-=] [rwx] [文件名] 更改某类用户的操作权限
- [u:文件属主] [g:文件属组] [o:其他用户(除u&g)] [a:所有用户]
- [+:增加相应权限] [-:减少相应权限] [=:赋值权限]
- [r:读4][w:写2][x:执行1]
- chown sunchen abc 更改abc文件的属主为sunchen
- chown :class1 abc 更改abc文件的属组为class1
- chown sunchen:class1 abc 更改ABC文件的属主和属组
--------------------------------------------------------------------
文本编辑
- vi 新键一个为命名的空文件
- a 进入输入模式
- [ESC] 推到命令模式
- [SHIFT]+: 进入末行模式
- :q! 强退不保存
- :e [文件名] 进入另一个文件进行编辑
- :e! [文件名] 强行进入另一个文件
- :r [文件名] 读取文件内容到当前文件
- :w abc 保存文件并命名问abc
- :q 退出VI编辑器
- :wq 保存并退出
- k上 命令模式
- h左 l右
- j下
- 命令模式
- ^ 转到本行的行首字符
- $ 转到本行的行末字符
- 1G 跳转到文件的首行
- G 跳转到文件的末尾行
- #G 跳转到文件的第#行
- dd 删除光标所在行
- yy 复制当前整行的内容到VI缓冲区
- y$ 复制到行尾
- y^ 复制到行首
- #yy 复制当前行及后续#行的文本内容到VI缓冲区
- /word 从上而下在文件中查找指定的字符串
- n 查找下一个匹配的字符 N 反向查找下一个字符
- ?word 自下而上查找
- :s/old/new 替换操作
- :s/old/new/g 行内全部替换
- :#,#s/old/new/g 在行区域内进行替换
- :%s/old/new/g 整个文件内的替换
- 以上命令:%S/old/new/gc 强制每个替换操作都需要用户进行确认
- y,替换当前已经定位的匹配字符串
- n,不替换当前
- a,替换指定范围内所有匹配字符
- q,退出确认界面,并取消当前命令所有的替换操作。
--------------------------------------------------------------------
编辑多文件操作
- vi aa bb cc 打开多文件
- :args 显示多文件信息
- :next 向后切换文件[!]不保存切换
- :prev 向前切换文件
- [CTRL]+^ 快速文件切换,最近打开的两个文件
--------------------------------------------------------------------
SHELL的使用
echo $SHELL 查看用户当前登陆使用的Shell程序
chsh 更改用户自己的登陆SHELL
1.环境变量
- set 查看系统中的SHELL变量
- echo $USER 表示当前用户登陆名称[whoami]
- echo $UID 表示当前用户的用户号[id -u]
- echo $SHELL 表示当前用户的登陆SHELL
- echo $HOME 当前用户的登陆目录(宿主目录)
- echo $PWD 用户当前所在的目录[pwd]
- echo $PATH 当前拥护的命令搜索路径
- echo $PS1 当前用户的主提示符
- echo $PS2 辅助提示符
2.位置变量$1--$9
- 例:
- #vi abc
- --------------------------------------------------------------------
- #a
- --------------------------------------------------------------------
- ~#!/bin/bash
- ~echo my name is sunchen
- ~
- ~
- :wq
- --------------------------------------------------------------------
- #bash abc [. abc][./abc]要权限 #chmod u=x abc
- my name is sunchen
- --------------------------------------------------------------------
- ~#!/bin/bash
- ~echo my name is $1
- ~
- ~
- :wq
- --------------------------------------------------------------------
- #bash abc 123
- my name is 123
--------------------------------------------------------------------
3.预定义变量
ps 当前进程
echo $# 表示位置参数的数量
echo $* 表示所有位置参数的内容
echo $? 表示命令执行后返回的状态,检测上一个命令是否正确;0:正确
echo $$ 表示当前进程的进程号
echo $! 表示后台运行的最后一个进程号
echo $0 表示当前执行的进程名
4.用户自定义变量
#DAY=sunday
#echo $DAY
sunday
export DAY 输入指定名称的变量为全局变量
unset DAY 清除自定义变量
--------------------------------------------------------------------
Bash常用功能:左右方向键 光标的移动
- [Home][End] 光标快速移动到命令行的行首和行尾
- Ctrl+U 删除当前光标到行首的内容
- Ctrl+K 删除当前光标到行尾的内容
- [Tab] 命令行补全功能
- history 显示历史命令列表
- which [] 查看[]是不是命令
- !12 快速输入12历史的命令
- history -c 命令历史的清除
- alias 显示用户当前Bash中已经定义的所有命令别名
- alias history=h 定义命令别名
- unalias h 取消命令别名
- unalias -a 全部清楚命令别名
--------------------------------------------------------------------
管道与重定向
- < 输入重定向(输入重定向是将命令中接收输入的途径由默认的键盘更改[重定向为指定的文件)
- > 输出重定向(将命令执行结果重定向输入到指定的文件中,命令进行输出重定向后执行结果将不显示在屏幕上)
- >> 输出重定向(将命令执行的结果重定向并追加到指定文件的末尾保存)
- 2> 错误重定向(清空指定文件的内容,并保存标准错误输出的内容到指定文件)
- 2>> 错误重定向(向指定文件中追加命令的错误输出,而不覆盖文件中的原有内容)
- &> 输出与错误组合重定向(将标准输出与错误输出的内容全部定向到指定文件)
- | 管道,实现数据从左至右的传输
--------------------------------------------------------------------
Shell脚本
- ~#!/bin/bash 首行内容(决定使用bash解释执行的Shell脚本)
--------------------------------------------------------------------
Linux应用程序组成
保存目录 文件类型
- /usr/bin 普通执行程序文件
- /usr/sbin 服务器执行程序文件和管理程序文件
- /etc 应用程序配置文件
- /usr/share/doc 应用程序文挡文件
- /usr/share/man 应用程序手册页文件
--------------------------------------------------------------------
RPM包管理
- grep 指定内容查找
- bash-3.0-19.2.i386.rpm RPM软件包的文件名
- rpm -qa 查询Linux系统中的所有软件包
- rpm -q [包名称] 查询指定名称的软件包是否安装
- rpm -qi [包名称] 查询指定名称软件包的详细信息
- rpm -ql [包名称] 查询指定名称软件包中所包括的文件列表
- rpm -qf [软件名称] 查询指定文件所属的软件包
- rpm -qpi [包名称] 查询指定RPM包文件的详细信息
- rpm -qpl [包名称] 查询指定RPM包中包含的文件列表
- rpm -qa | grep ii 查询内容含ii的软件包
--------------------------------------------------------------------
使用rpm命令安装软件包
- rpm -i [RPM软件包文件名] 安装指定的RPM软件包
- rpm -ivh [RPM安装包文件] 安装软件包的同时显示详细信息
- rpm -ivh --test [RPM安装包文件] 检测试安装
- rpm --force -i [RPM包文件] 显示依赖关系
- rpm -e [软件包名称] 卸载软件包
- rpm -ivh --nodeps [软件包名称] 忽略依赖关系强制安装
- rpm -U [RPM安装包文件名] 升级软件包
- tar jxf [原代码软件包] 释放已下载的源代码软件包文件
--------------------------------------------------------------------
编译安装 [configure命令需要进入源代码目录后执行]
- ./configure --prefix=程序安装目录的绝对路径 指定应用程序编译完成后的安装路径
- ./configure 配置源代码的默认安装路径为“/usr/local/bin”目录
- make 进行程序的二进制编译
- make install 编译后安装已编译完成的程序到预先配置的目录(确定目标目录存在)
--------------------------------------------------------------------
Linux系统管理
运行级别
- 0:停机 1:单用户模式 2:多用户模式 3:完全多用户模式(文本界面) 4:未分配使用 5:图形多用户模式 6:重新启动
- chkconfig --list 显示全部服务的启动状态
- chkconfig --list [服务名称] 查看系统中单一服务的启动状态
- chkconfig --add [name] 添加一个服务
- chkconfig --del [name] 删除一个服务
- chkconfig --level [运行级别] [服务名称] [on|off|reset] 设置指定服务在运行级别中的启动状态
- chkconfig [服务名称] [on|off|reset] 设置非独立服务的启动状态
- 只有xinetd服务启动后才有可能启动非独立服务程序
- service xinetd restart 重启
- status 查看状态
- stop 停止
- start 启动
- 使用chkconfig命令对非独立服务的启动状态进行了更改后,需要重新启xinetd服务,以使对xinetd服务更改的设置生效。
--------------------------------------------------------------------
INIT进程
- /etc/inittab INIT的配置文件(可以通过vi修改其进程)
- #vi /etc/inittab
- id:(0123456):initdefault:
--------------------------------------------------------------------
进程管理类命令
- ps 查看当前进程
- ps aux 查看所有进程
- top 查看进程的列表和每一个进程运行的状态
- pstree 查看进程树
- & 启动后台进程 [#cp /dev/cdrom mucd.iso &]
--------------------------------------------------------------------
调度启动
- date 查看系统当前的时间
- at 指定某个命令在某个时间一次性在系统中执行
- at -t [MMDDhhmm] 月份/日期/小时/分钟
- Ctrl + D 结束at命令的执行
- atq 查询系统中设置的还未执行的at命令
- atrm 删除指定任务编号的at命令
- crontab 在系统中设置需要周期性(如每天,每周等)完成的任务
--------------------------------------------------------------------
改变进程的运行方式
- Ctrl + Z 将当前终端的进程调入后台并停止运行
- jobs 查看后台的进程
- fg [后台进程编号] 将后台的进程恢复到前台运行
- Ctrl + C 终止命令执行
- kill -9 [PID] 终止系统中的进程(PID)命令参数
- /var/spool/mail/root 计划任务执行后系统给用户的提示
--------------------------------------------------------------------
系统任务的定时运行
- cron服务的软件包名称是"vixie-cron",而不是"cron".
- crontab -l 查看用户的cron任务
- crontab 用于对用户自己需要周期执行的任务
- vi /etc/crontab 用于自动完成系统管理任务
- 任务格式
- #crontab
- 分钟 小时 日期 月份 星期 [要执行的命令]
- 50 18 30 12 [0~7] run_daily_cmd (12月30日18点50分执行)
- less /var/spool/cron/root 查看用户创建的cron任务
- ls /var/spool/cron 查看创建cron任务的用户
- crontab -e 调用文本编辑器对cron任务进行编辑
- crontab -r 删除用户现有的cron任务
- #cat /etc/crontab 系统任务配置文件
--------------------------------------------------------------------
空间配额
- rpm -q quota 查询是否安装quota软件包
- 设置磁盘配额的步骤
- (1).修改"fstab"文件
- //编辑“/etc/fstab”文件
- #vi /etc/fstab
- //对“/”分区进行修改
- LABEL= / ext3 defaults 11
- //改为
- LABEL= / ext3 defaults,usrquota,grpquota 11
- usrquota 用户配额 grpquota 组的配额
- (2).重新挂载文件系统
- #reboot 重新启动
- (3).创建配额文件
- //使用“quotacheck”命令创建配额文件
- #quotacheck -cmug [/]分区
- //查看已建立的配额文件
- #ls /aquota.*
- /aquota.group /aquota.user
- //“aquota.user”是用户配额文件,“aquota.group”是用户组的配额文件
- //配额文件总是建立在文件系统的根目录中
- (4)设置配额
- //使用“edquota -u”命令设置用户配额
- #edquota -u root
- #edquota -g root 设置组的配额
- quotaon /[分区] 启动配额
- edquota命令的编辑界面
- Disk quotas for user st01 (uid 501):
- Filesystem blocks soft hard inodes soft hard
- /dev/hda3 76 90000 100000 11 0 0
- Filesystem表示文件系统,即需要设置配额的硬盘分区。
- blocks表示拥护已经占用的数据块数量(KB)。
- inodes表示用户拥有的文件数。用户占用“i节点”的个数
- soft表示磁盘容量或文件个数的软限制数量(KB/个)超过-收到系统的警告信息
- hard表示磁盘容量或文件个数的硬限制数量(KB/个)超过-不能正常使用系统
- 磁盘配额的命令
- quotacheck -cmug /[文件系统挂载点目录] 建立文件系统配额文件
- quotacheck -mfvug /[文件系统] 对文件系统的配额进行一致性检测
- 配额的宽限时间
- edquota -t 用户占用的(磁盘空间/文件数)超过软限制,能够使用系统的最长时限。
--------------------------------------------------------------------
文件的归档与备份
- tar cf 文件名.tar [需备份的文件或目录/名] 对文件和目录进行归档
- tar czf 文件名.tar.gz [需备份的文件或目录] 对文件和目录进行压缩备份
- tar tf 文件名.tar 查看tar归档文件中的目录列表
- tar tzf 文件名.tar 查看压缩归档文件中的目录文件
- tar xf 文件名.tar 恢复(释放)归档文件中的内容
- tar xzf 文件名.tar.gz 恢复(释放)压缩的归档文件中的内容
- tar xf(xzf) [文件名.tar(.gz)] -C [目录名/] 恢复归档文件到指定目录
--------------------------------------------------------------------
Linux基本网络配置
查看网络接口信息
- ifconfig 查看网络接口信息(/sbin/ifconfig)
- ifconfig [网络接口] 查看指定网络接口信息
- ifconfig -a 查看系统中所有网络接口的信息
- 查看网关地址和路由信息
- route 查看主机路由信息(/sbin/route)
- route | grep default 显示默认网关地址
- ping 目的主机地址 测试与其他主机的网络连接
- Ctrl + C 结束ping命令执行
- ping -c [测试数据包数量] [目的主机地址] 发送指定数量的数据包进行网测
- traceroute [目的主机地址] 测试与其他主机的网络连接路径
--------------------------------------------------------------------
查看主机名称信息
- hostname 查看当前主机的主机名称
- hostname [sunchen] 更改主机名(重启后消失)
- vi /etc/sysconfig/network 更改主机名(重起后生效)
- ~# grep HOSTNAME /etc/sysconfig/network
- HOSTNAME=sunchen
--------------------------------------------------------------------
使用DNS服务器查询域名
- nslookup 域名查询
- exit 退出交换环境
--------------------------------------------------------------------
网络设置
- dhclient 从DHCP服务器中申请新的网络配置应用于当前Linux主机
- ifconfig [网络接口名称] [ip地址] netmask [子网掩码] 配置IP地址
--------------------------------------------------------------------
路由配置
- route add default gw [默认网关地址] 添加默认网关路由
- route del default gw [默认网关地址] 删除默认网关路由
--------------------------------------------------------------------
使用工具进行网络配置
- netconfig 窗口配置界面进行网络配置
--------------------------------------------------------------------
网络服务启动脚本
- /etc/init.d/network restart 重新设置当前系统的网络属性(否则新的配置将在系统下次启动时生效)
- /etc/init.d/network stop 停止网络服务
- cat /etc/sysconfig/network-scripts/ifcfg-eth0 查看eth0接口的配置
- ifdown [网络接口名称] 停止网络接口
- ifup [网络接口名称] 启动网络接口
- ifdown eth0 ; ifup eth0 关闭接口并启动使网络配置生效
--------------------------------------------------------------------
本地主机名称解析文件
- cat /etc/hosts 保存本地的主机名与IP地址的对应记录
- vi /etc/hosts 添加更多的IP地址与主机名称的对应记录
--------------------------------------------------------------------
域名服务器配置文件
- cat /etc/resolv.conf 查询用于域名解析的DNS服务器
--------------------------------------------------------------------
NFS文件系统
NFS服务器的安装
- rpm -q nfs-utils portmap 查询"nfs-utils"和"portmap"两个软件包是否安装
- nfs-utils和portmap两个软件包在RHEL4的第2张安装光盘的/RedHat/RPMS目录中
- rpm -ivh nfs-utils-1.0.6-46.i386.rpm portmap-4.0-63.i386.rpm 安装nfs-utils和portmap两个软件包
--------------------------------------------------------------------
NFS服务器的配置
- vi /etc/exports 配置输出共享目录
- ~[nfs共享目录名称] [客户端主机地址](设置选项)
- ~/home/share *(sync,ro)
- * 所有主机
- sync 设置NFS服务器同步写磁盘,这样不会轻易丢失数据
- ro 设置输出的共享目录只读
- rw 设置输出的共享目录读写 (ro和rw不能同时使用)
--------------------------------------------------------------------
NFS服务器的启动与停止
- service [服务程序脚本名称] status 查询指定服务器程序的运行状态
- 当portmap,nfs两个服务程序都正常运行时,能够正常对外提供NFS目录共享
- service [服务程序脚本名称] start 启动程序
- stop 停止程序
--------------------------------------------------------------------
设置服务器的开机启动状态
- chkconfig --list 服务程序 查看程序的开机启动状态
- chkconfig --level 0~6 程序名称 on/off 设置服务程序的启动级别
--------------------------------------------------------------------
showmount命令
- showmount 显示当前主机中NFS服务器的连接信息
- showmount [NFS服务器主机地址] 显示指定主机中NFS服务器的连接信息
- showmount -e 显示当前主机中NFS服务器的输出列表
- showmount -d [ip] 显示NFS服务器中已经被NFS客户机挂载使用的共享目录
- showmount -a [ip] 显示NFS服务器中已经被挂载的共享目录列表和客户机地址
--------------------------------------------------------------------
exportfs命令
- exportfs -rv 使新设置的“exports”文件内容生效
- exportfs -auv 停止输出所有目录
- exportfs -av 输出(启动)所有目录
--------------------------------------------------------------------
使用光盘
- mount -t iso9660 /dev/cdrom /media/cdrom/ 光盘的挂载
- ls /media/cdrom/ 光盘内容的读取
- umount /dev/cdrom [umount /media/cdrom/] 光盘的卸载
- eject 自动弹出光盘托盘
- eject -t 自动收回托盘光盘
- cp /dev/cdrom backup.iso 制作光盘镜像文件
- mount -o loop -t iso9660 backup.iso /media/cdrom/ 挂载光盘镜象文件
- umount /media/cdrom/ 卸载光盘镜像文件
--------------------------------------------------------------------
U盘的识别
- fdisk -l 列出系统中所有存储设备
- mount -t vfat /dev/sda1 /mnt/ U盘的挂载
- mount -t ntfs /dev/sda1 /mnt/
- umount /dev/sda1 U盘的卸载
--------------------------------------------------------------------
浙公网安备 33010602011771号