Linux常用命令
Shell是一种Linux中的命令行解释程序,就如同Command.com是DOS下的命令解释程序一样,为用户提供使用操作系统的接口。用户在提示符下输入的命令都由Shell先解释然后传给Linux内核。
Shell是命令语言、命令解释程序集程序设计语言的统称。它不仅拥有自己的内建的Shell命令集,同时也能被系统中其他应用程序所调用。
命令格式说明
格式中带[ ]的表明为可选项,其他为必选项
选项可以多个连带入
用户系统相关命令
用户切换(su)
(1) 作用
变更为其它使用者的身份,主要用于将普通用户身份转变为超级用户,而且需输入相应用户密码
(2)格式
su[选项][使用者]
其中的使用者为要变更的对应使用者
(3) 常见参数
-,-l,–login | 为该使用者重新登录,大部分环境变量(HOME、SHELL、USER)和工作目录都是以该使用者(USER)为主。若没有指定USER,缺省情况是root |
-m,-p | 执行su时不改变环境变量 |
-c,–command | 变更账号为USER的使用者,并执行指令(command)后再变回原来使用者 |
(4) 使用示例
[sunq@ww sunq]$ su - root
Password:
[root@www root]#
示例通过 su 命令将普通用户变更为root用户,并使用选项 “-” 携带root环境变量
(5) 使用说明
在将普通用户变更为root用户时建议使用 “-” 选项,这样可以将root的环境变量和工作目录同时带入,否则在以后的使用中可能会由于环境变量的原因而出错。
在转变为root权限后,提示符变为#
环境变量:用户运行环境的参数集合。Linux是一个用户的操作系统。而且在每个用户登录系统后,都会有一个专有的运行环境。通常每个用户默认的环境都是相同的,而这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量
PATH是系统路径
HOME是系统根目录
HISTSIZE是指保持历史命令记录的条数
LOGNAME是指当前用户的登录名
HOSTNAME是指主机的名称,若应用程序要用到主机名的话,通常是从这个环境变量中来取得的
SHELL是指当前用户用的是哪种Shell
LANG/LANGUGE是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量
MAIL是指当前用户的邮件存放目录
设置环境变量方法
etho显示字符串
export设置新的环境变量
env显示所有环境变量
set命令显示所有本地定义的Shell变量
unset命令来清除环境变量
用户管理(useradd和passwd)
(1) 作用
useradd 添加用户账号
passwd 更改对应用户账户密码
(2) 格式
useradd: useradd[选项] 用户名
passwd: passwd[选项][用户名]
其中用户名为修改账号密码的用户,若不带用户名,缺省为更改当前使用者账号密码
(3) 常用参数
选项 | 参数含义 |
---|---|
-g | 指定用户所属的组 |
-m | 自动建立用户的登入目录 |
-n | 取消建立以用户名称为名的群组 |
passwd:一般很少使用选项参数
(4) 使用实例
[root@www root]# useradd yul
[root@www root]# passwd yul
New password:
Retype new password:
passwd: all authentication tokens updated successfully
[root@www root]# su - yul
[yul@www yul]$
[yul@www yul]$ pwd(查看当前目录)
/home/yul
实例中先添加了用户名为yul的用户,接着又为该用户设置了账号密码。并从su的命令可以看出,该用户添加成功,其工作目录为"/home/yul"
(5) 使用说明
在使用添加用户时,这两个命令是一起使用的,其中,useradd必须用root的权限。而且useradd指令所建立的账号,实际上是保持在"/etc/passwd"文本文件中,文件中每一行包含一个账号信息
在缺省情况下,useradd所做的初始化操作包括在"/home"目录下为对应账号建立一个名为同名地方的主目录,并且还为该用户单独建立一个与用户单独建立一个与用户名同名的组
adduser只是useradd的符号链接,两者是相同的
passwd还可用于普通用户修改账号密码,Linux并不采用类似windows的密码回显(显示为*号),所以输入的这些字符用户是看不见的。密码最好包括字母、数字和特殊符号,并且设成6为以上。
系统管理命令(ps和kill)
命令 | 命令含义 | 格式 |
---|---|---|
ps | 显示当前系统中由该用户运行的进程列表 | ps[选项] |
top | 动态显示系统中运行的程序(一般为每隔5s) | top |
kill | 输出特定的信号给指定PID(进程号)的进程 | kill[选项] 进程号(PID) |
uname | 显示系统的信息(可加选项-a) | uname[选项] |
setup | 系统图形化界面配置 | setup |
crontab | 循环执行例行性命令 | crontab[选项] |
shutdown | 关闭或重启Linux系统 | shutdown[选项][时间] |
uptime | 显示系统已经运行了多长时间 | uptime |
clear | 清除屏幕上的信息 | clear |
(1) 作用
ps: 显示当前系统中由该用户运行的进程列表
kill: 输出特定的信号给指定PID(进程号)的进程,并根据该信号而完成指定的行为。其中可能的信号有进程挂起、进程等待、进程终止等
(2) 格式
ps: ps[选项]
kill: kill[选项] 进程号(PID)
kill命令中的进程号为信号输出的指定进程的进程号,当选项是缺省时为输出终止信号给该进程
(3) 常见参数
ps主要选项参数
选项 | 参数含义 |
---|---|
-ef | 查看所有进程及其PID(进程号)、系统时间、命令详细目录、执行者等 |
-aux | 除可显示-ef所有内容外,还可显示CPU及内存占用率、进程状态 |
-w | 显示加宽并且可以显示较多的信息 |
kill主要选项参数
选项 | 参数含义 |
---|---|
-s | 根据指定信号发送给进程 |
-p | 打印出进程号(PID),但并不送出信号 |
-l | 列出所有可用的信号名称 |
(4) 使用实例
[root@www root]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 2005 ? 00:00:05 init
root 2 1 0 2005 ? 00:00:00 [keventd]
root 3 0 0 2005 ? 00:00:05 [ksoftirqd_CPU0]
root 4 0 0 2005 ? 00:00:05 [ksoftirqd_CPU1]
root 7421 1 0 2005 ? 00:00:05 /usr/local/bin/ntpd -c /etc/ntp.
root 21787 21739 0 17:16 pts/l 00:00:00 grep ntp
[root@www root]# kill 7421
[root@www root]# ps -ef|grep ntp
root 21787 21739 0 17:16 pts/l 00:00:00 grep ntp
该实例中首先查看所有进程,并终止进程号为7421的ntp进程,之后再次查看时已经没有该进程号的进程
(5) 使用说明
ps在使用中通常可以与其他一些命令结合起来使用,主要作用是提高效率
ps选项中的参数w可以写多次,通常最多写3次,它的含义表示加宽3次,这足以显示很长的命令行了。例如:ps -auxwww
管道:Linux中信息通信的重要方式。它是把一个程序的输出直接连接到另一个程序的输入,而不经过任何中间文件。管道线是指连接二个或更多程序管道的通路。在shell中字符 “|” 表示管道线。如前面例子中的 ps -ef|grep ntp所示,ps -ef的结果直接输入到grep ntp的程序中。grep、pr、sort和wc都可以在上述管道线上工作
磁盘相关命令(fdisk)
选项 | 参数含义 | 格式 |
---|---|---|
free | 查看当前系统内存的使用情况 | free[选项] |
df | 查看文件系统的磁盘空间占用情况 | df[选项] |
du | 统计目录(或文件)所占磁盘空间的大小 | du[选项] |
fdisk | 查看硬盘分区情况及对硬盘进行分区管理 | fdisk[-l] |
(1) 作用
fdisk可以查看硬盘分区情况,并可对硬盘进行分区管理,fdisk也是一个非常好的硬盘分区工具
(2) 格式
fdisk [-l]
(3) 使用实例
可以看出,使用"fdisk -l"列出了文件系统的分区情况
(4) 使用说明
使用fdisk必须用于有root权限
IDE硬盘对应的设备名称分别为hda、hdb、hdc和hdd,SCSI硬盘对应的设备名称则为sda、sdb 此外,hda1代表hda的第一个硬盘分区,hda2代表hda的第二个分区,以此类推。
通过查看/var/log/message文件,可以找到Linux系统已辨认出来的设备代号
磁盘挂载命令(mount)
(1) 作用
挂载文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。挂载是指把分区和目录对应的过程,而挂载点是指挂载在文件树中的位置。mount命令就可以把文件系统挂载到相应的目录下,并且由于Linux中把设备都当作文件一样使用,因此,mount命令也可以挂载不同的设备
通常,在Linux下 “/mnt” 目录是专门用于挂载不同文件系统的,它可以在该目录下新建不同的子目录来挂载不同的设备文件系统
(2) 格式
mount[选项][类型] 设备文件名 挂载点目录
其中的类型是指设备文件的类型
(3) 常见参数
mount常见参数
选项 | 参数含义 |
---|---|
-a | 依照/etc/fstab的内容装载所有相关的硬盘 |
-l | 列出当前已挂载的设备、文件系统名称和挂载点 |
-t 类型 | 将后面的设备以指定类型的文件格式装载到挂载点上。常见的类型:vfat、ext3、ext2、iso9660、nfs等 |
-f | 通常用于除错。它会使mount不执行实际 挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用 |
(4) 使用实例
① 确认是否为Linux可以识别的文件系统,Linux可识别的文件系统主要是一下几种
Windows95/98常用的FAT32文件系统:vfat
WinNT/2000的文件系统:ntfs
OS/2用的文件系统:hpfs
Linux用的文件系统:ext2、ext3、nfs
CD-ROM光盘用的文件系统:iso9660
② 确定设备的名称,确定设备名可通过使用命令 “fdisk -l” 查看
③ 查找挂接点
必须确定挂载点已经存在,也就是在 “/mnt” 下的相应子目录已经存在,一般建议在 “/mnt” 下新建几个如 “/mnt/windows”,“/mnt/usb” 的子目录
④ 挂载文件系统如下
[root@sunq mnt]# mount -t vfat /dev/hda1 /mnt/c
[root@sunq mnt]# cd /mnt/c
....
C盘是原先Windows系统的启动盘。可见,在挂载了C盘后,可直接访问Windows下的C盘的内容
⑤ 在使用完该设备文件后可使用命令umount将其卸载
[root@sunq mnt]# umount /mnt/c
[root@sunq mnt]# cd /mnt/c
[root@sunq c]# ls
可见,此时目录 “/mnt/c” 下为空。Windows下的C盘成功卸载
⑥ Linux下挂载U盘
一般U盘为SCSI格式的硬盘,其格式为vfat格式,其设备号可通过 “fdisk -l” 进行查看,假如设备名为 “/dev/sdal”,则可用如下命令就可将其挂载:mount -t vfat /dev/sdal /mnt/u
若想设置在开机时自动挂载,可在文件 “/etc/fstab” 中加入相应的设置行即可