嵌入式开发学习总结——Linux常用shell命令

RobinLiew 2010-06-08

嵌入式开发学习总结——Linux常用shell命令  

【目录】

一、shell命令

1、内建命令

2、外部命令

3、实用程序

4、用户程序

5、shell脚本

二、命令帮助文档

1、命令自身的帮助功能

2、man手册

3、在线帮助文档

三、分类介绍

(一)文件、目录操作命令

(二)查看文件内容命令

(三)基本系统命令

(四)监视系统状态命令

(五)磁盘操作命令

(六)用户和组相关命令

(七)备份压缩命令

(八)网络相关命令

(九)其他命令

【参考资料】

一、shell命令

作为用户和Linux内核之间的接口程序,shell的一个很重要的功能就是对用户输入的命令进行解释。这些命令可以分为以下几类:

1、内建命令

处于效率的考虑,将一些常用的命令解释程序构造在shell内部。

用enable命令可以查看到shell的内建命令。

例如,GNUbash3.1.17的内建命令如下:

.  :  [  alias  bg  bind  break  builtin  caller  cd  command  compgen  complete  continue  declare  dirs  disown  echo    eval  exec  exit  export  false fc  fg  getopts  hash  help  history  jobs  kill  let  local  logout  popd  printf  pushd  pwd  read  readonly  return  set  shift  shopt  source  suspend  test  times  trap  true  type  typeset  ulimit  umask  unalias  unset  wait

2、外部命令存放在/bin, /sbin目录下的命令。

3、实用程序存放在/usr/bin, /usr/sbin, /usr/share, /usr/local/bin等目录下的实用工具和程序。

4、用户程序用户程序经过编译生成可执行文件后, 也可作为shell命令运行。

5、shell脚本由shell脚本编写的批处理文件。

二、命令帮助文档

我们可以通过下述三种方法获得帮助:

1、命令自身的帮助功能

大多数命令都可以通过--help参数获取自身提供的帮助。

2、man手册

可以通过man命令来查看任何命令的联机帮助信息。它将命令名作为参数,该命令的语法格式为:man【命令名】。

3、在线帮助文档

还可以通过一些专业网站或者搜索引擎获得帮助。例如,Linux命令大全

http://wiki.chinaunix.net/index.php/Linux%E5%91%BD%E4%BB%A4%E5%A4%A7%E5%85%A8

三、分类介绍

(一)文件、目录操作命令

1、ls命令

功能:显示文件和目录的信息

ls 以默认方式显示当前目录文件列表

ls-a显示所有文件包括隐藏文件

ls-l显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行

ls-lh显示文件的大小,以容易理解的格式印出文件大小(例如1K234M2G)

ls -lt 显示文件,按照修改时间排序

2、cd命令

功能:改名目录

cddir 切换到当前目录下的dir目录

cd/ 切换到根目录

cd.. 切换到到上一级目录

cd../.. 切换到上二级目录

cd ~ 切换到用户目录,比如是root用户,则切换到/root下

3、cp命令

功能:copy文件

cpsourcetarget 将文件source复制为target

cp/root/source. 将/root下的文件source复制到当前目录

cp –av soure_dir target_dir 将整个目录复制,两目录完全一样

4、rm命令

功能:删除文件或目录

rmfile 删除某一个文件

rm-ffile删除时候不进行提示。可以于r参数配合使用

rm -rf dir 删除当前目录下叫dir的整个目录

5、mv命令

功能:文件移动,或者改名,在uinx下面没有改名的命令,如果想改名,可以使用该命令

mvsourcetarget 将文件source更名为target

6、diff

功能:比较文件内容

diffdir1dir2 比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出

difffile1file2 比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的

commfile1file2 比较文件,显示两个文件不相同的内容

7、ln命令

功能:建立链接

lnsource_pathtarget_path硬连接

ln -s source_path target_path 软连接

(二)查看文件内容命令

1、cat命令

显示文件的内容,和DOS的type相同

cat file 

2、more命令

功能:分页显示命令

more file

more命令也可以通过管道符(|)与其他的命令一起使用,例如:

psux|more

ls|more

3、tail 命令

功能:显示文件的最后几行

tail -n 100 aaa.txt 显示文件aaa.txt文件的最后100行

4、vi命令

vifile 编辑文件file

vi原基本使用及命令:

输入命令的方式为先按[ESC]键,然后输入:w(写入文件),:w!(不询问方式写入文件),:wq保存并退出,:q退出,q!不保存退出

(三)基本系统命令

1、man命令

功能:查看某个命令的帮助

例如:

manls显示ls命令的帮助内容

2、w命令

功能:显示登录用户的详细信息

例如:

Sarge:~#w

22:06:51up43min,1user,loadaverage:0.00,0.00,0.00

USERTTYFROMLOGIN@IDLEJCPUPCPUWHAT

zhouljpts/010.140.0.10921:240.00s0.85s0.09ssshd:zhoulj[priv]

3、who命令

功能:显示登录用户

例如:

Sarge:~#who

zhouljpts/0Mar1321:24(10.140.0.109)

4、last命令

功能:查看最近那些用户登录系统

例如:

Sarge:~#last

zhouljpts/010.140.0.109MonMar1321:24stillloggedin

rebootsystemboot2.6.8-2-386MonMar1321:23(00:43)

zhouljpts/010.140.0.105SunMar1222:51-down(00:00)

zhouljpts/010.140.0.105SunMar1222:51-22:51(00:00)

roottty1SunMar1222:50-down(00:01)

roottty1SunMar1222:46-22:48(00:02)

roottty1SunMar1222:43-22:46(00:02)

rebootsystemboot2.6.8-2-386MonMar1306:34(-7:-41)

wtmpbeginsMonMar1306:34:112006

5、date命令

功能:系统日期设定

date 显示当前日期时间

date-s20:30:30 设置系统时间为20:30:30

date-s2002-3-5 设置系统时期为2003-3-5

date-s"06052006:00:00" 设置系统时期为2006年5月20日6点整。

6、clock命令

功能:时钟设置

clock–r 对系统Bios中读取时间参数

clock–w 将系统时间(如由date设置的时间)写入Bios

7、uname命令

功能:查看系统版本

uname-R 显示操作系统内核的version

例如:

Sarge:~#uname-a

LinuxSarge2.6.8-2-386#1TueAug1612:46:35UTC2005i686GNU/Linux

8、关闭和重新启动系统命令

reboot 重新启动计算机

shutdown-rnow重新启动计算机,停止服务后重新启动计算机

shutdown-hnow关闭计算机,停止服务后再关闭系统

halt关闭计算机

一般用shutdown-rnow,在重启系统是,关闭相关服务,shutdown-hnow也是如此。

9、su命令

功能:切换用户

su-切换到root用户

su-zhoulj切换到zhoulj用户,

注意:-,他很关键,使用-,将使用用户的环境变量

(四)监视系统状态命令

1、top命令

功能:查看系统cpu、内存等使用情况

2、free命令

功能:查看内存和swap分区使用情况

例如:

Sarge:~#free-tm

totalusedfreesharedbufferscached

Mem:187421450616

-/+buffers/cache:19167

Swap:2430243

Total:43042388

3、uptime

功能:现在的时间,系统开机运转到现在经过的时间,连线的使用者数量,最近一分钟,五分钟和十五分钟的系统负载

例如:

Sarge:~#uptime

21:54:46up31min,1user,loadaverage:0.00,0.00,0.00

4、vmstat命令

功能:监视虚拟内存使用情况

例如:

#vmstat

procsmemoryswapiosystemcpu

rbswpdfreebuffcachesisobiboincsussyidwa

1006370481003227200831031701981

5、ps命令

功能:显示进程信息

psux显示当前用户的进程

psuxwww显示当前用户的进程的详细信息

psaux显示所有用户的进程

psef显示系统所有进程信息

6、kill命令

功能:干掉某个进程,进程号可以通过ps命令得到

kill-91001 将进程编号为1001的程序干掉

killall-9apache 将所有名字为apapche的程序杀死,kill不是万能的,对僵死的程序则无效。

(五)磁盘操作命令

1、df命令

功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

参数功能

-a列出全部目录

-Ta列出全部目录,并且显示文件类型

-B显示块信息

-i以i节点列出全部目录

-h按照日常习惯显示(如:1K、100M、20G)

-x[filesystype]不显示[filesystype]

例如:

#df-Th

FilesystemTypeSizeUsedAvailUse%Mountedon

/dev/sda1ext3265M64M187M26%/

tmpfstmpfs94M094M0%/dev/shm

/dev/sda6ext3714M8.1M667M2%/home

/dev/sda8ext3956M215M691M24%/usr

/dev/sda7ext3714M57M619M9%/var

2、du命令

功能:检测一个目录和(递归地)所有它的子目录中的文件占用的磁盘空间。

参数功能

-s[dirName]显示目录占用总空间

-sk[dirName]显示目录占用总空间,以k为单位

-sb[dirName]显示目录占用总空间,以b为单位

-sm[dirName]显示目录占用总空间,以m为单位

-sc[dirName]显示目录占用总空间,加上目录统计

-sh[dirName]只统计目录大小

例如:

#du-sh/etc

1.3M/etc

3、mount命令

功能:使用mount命令就可在Linux中挂载各种文件系统。

格式:mount-t设备名挂载点

(1)mount/dev/sda1/mnt/filetest

mount-tvfat/dev/hda/mnt/fatfile

mount-tntfs/dev/hda/mnt/ntfsfile

mount-tiso9660/dev/cdrom/mnt/cdrom

mount-o设备名挂载点

(2)使用usb设备

modprobeusb-storage

mkdir/mnt/usb

mount-tauto/dev/sdx1/mnt/usb

umount/mnt/usb

4、mkswap命令

功能:使用mkswap命令可以创建swap空间,如:

debian:~#mkswap-c/dev/hda4

debian:~#swapon/dev/hda4#启用新创建的swap空间,停用可使用swapoff命令

5、fdisk命令

功能:对磁盘进行分区

fdisk/dev/xxx格式化xxx设备(xxx是指磁盘驱动器的名字,例如hdb,sdc)

fdisk-l显示磁盘的分区表

6、mkfs命令

功能:格式化文件系统,可以指定文件系统的类型,如ext2、ext3、fat、ntfs等

格式1:mkfs.ext3options/dev/xxx

格式2:mkfs-text2options/dev/xxx

参数功能

-b块大小

-i节点大写

-m预留管理空间大小

例如:

debian:~#mkfs.ext3/dev/sdb1

7、e2fsck命令

功能:磁盘检测

e2fsck/dev/hda1 检查/dev/hda1是否有文件系统错误,提示修复方式

e2fsck-p/dev/hda1 检查/dev/hda1是否有错误,如果有则自动修复

e2fsck-y/dev/hda1 检查错误,所有提问均于yes方式执行

e2fsck-c/dev/hda1 检查磁盘是否有坏区

8、tune2fs命令

功能:调整ext2/ext3文件的参数

参数功能

-l查看文件系统信息

-c设置强制自检的挂载次数

-i设置强制自检的间隔时间,单位天

-m保留块的百分比

-j将ext2文件系统转换成ext3格式

#tune2fs-l/dev/sda1

9、dd命令

功能:功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。

跟DOS下的diskcopy命令的作用类似。

ddif=/dev/fd0of=floppy.img 将软盘的内容复制成一个镜像

dd if=floppy.img of=/dev/fd0 将一个镜像的内容复制到软盘,做驱动盘的时候经常用。

(六)用户和组相关命令

1、groupadd命令

功能:添加组

groupaddtest1添加test1组

groupadd-g1111test2添加test2组,组id为1111

2、useradd命令

功能:添加用户

useradduser1添加用户user1,home为/home/user1,组为user1

useradd-gtest1-m-d/home/test1test1添加用户test1,home为/home/test1,组为test1

userlist 显示已登陆的用户列表

3、passwd命令

功能:更改用户密码

passwduser1 修改用户user1的密码

passwd-droot 将root用户的密码删除

4、userdel命令

功能:删除用户

userdeluser1 删除user1用户

5、chown命令

功能:改变文件或目录的所有者

chownuser1/dir 将/dir目录设置为user1所有

chown-Ruser1.user1/dir 将/dir目录下所有文件和目录,设置为user1所有,组为user1。-R递归到下面的每个文件和目录

6、chgrp命令

功能:改变文件或目录的所有组

chgrpuser1/dir 将/dir目录设置为user1所有

7、chmod命令

功能:改变用户的权限

chmoda+xfile 将file文件设置为可执行,脚本类文件一定要这样设置一个,否则得用bashfile才能执行

chmod666file 将文件file设置为可读写

chmod750file将文件file设置为,所有者为完全权限,同组可以读和执行,其他无权限

8、id命令

功能:显示用户的信息,包括uid、gid等

#idzhoulj

uid=500(zhoulj)gid=500(zhoulj)groups=500(zhoulj)

9、finger命令

功能:显示用的信息

注意:debian下没有该命令。

#fingerzhoulj

Login:zhouljName:

Directory:/home/zhouljShell:/bin/bash

OnsinceSunMay2107:59(CST)onpts/0from192.168.1.4

Nomail.

NoPlan.

(七)备份压缩命令

1、gzip格式命令

功能:压缩文件,gz格式的

注意:生成的文件会把源文件覆盖

gzip-v压缩文件,并且显示进度

-d解压缩

gnuzip-f解压缩

例如:

#gzipa.sh

#ll

-rwxr-xr-x1rootroot7112月1821:08a.sh.gz

#gzip-da.sh.gz

#ll

-rwxr-xr-x    1 root     root           48 12月 18 21:08 a.sh

2、zip格式命令

功能:压缩和解压缩zip命令

zip

unzip

例如:

#zipa.sh.zipa.sh

adding:a.sh(stored0%)

#ll

-rw-r--r--1rootroot1885月2110:37a.sh.zip

#unzipa.sh.zip

Archive:a.sh.zip

replacea.sh?[y]es,[n]o,[A]ll,[N]one,[r]ename:r

newname:a1.sh

extracting:a1.sh

#ll

-rwxr-xr-x1rootroot4812月1821:08a1.sh

3、bzip2格式命令

功能:bzip2格式压缩命令,

注意:生成的文件会把源文件覆盖

bzip2

bunzip2

例如:

#bzip2a.sh

#ll

-rwxr-xr-x1rootroot8512月1821:08a.sh.bz2

#bunzip2a.sh.bz2

#ll

-rwxr-xr-x1rootroot4812月1821:08a.sh

4、tar命令

功能:归档、压缩等,比较重要,会经常使用。

-cvf压缩文件或目录

-xvf解压缩文件或目录

-zcvf压缩文件或,格式tar.gz

-zxvf解压缩文件或,格式tar.gz

-zcvf压缩文件或,格式tgz

-zxvf解压缩文件或,格式tgz

举例:

#tarcvfabc.tar*.sh

#tarxvfabc.tar

#tarczvfabc.tar.gz*.sh

#ll

-rw-r--r--1rootroot204805月2110:50abc.tar

-rw-r--r--1rootroot12235月2110:53abc.tar.gz

# tar xzvf abc.tar.gz

(八)网络相关命令

1、ifconfig命令

功能:显示修改网卡的信息

ifconfig显示网络信息

ifconfigeth0显示eth0网络信息

修改网络信息:

ifconfigeth0192.168.1.1netmask255.255.255.0设置网卡1的地址192.168.1.1,掩码为255.255.255.0

ifconfigeth0:1192.168.1.2 捆绑网卡1的第二个地址为192.168.1.2

ifconfigeth0:x192.168.1.n 捆绑网卡1的第n个地址为192.168.1.n

例如:

#ifconfigeth0:1192.168.1.11

#ifconfig

eth0Linkencap:EthernetHWaddr00:0C:29:06:9C:24

inetaddr:192.168.1.5Bcast:192.168.1.255Mask:255.255.255.0

UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1

RXpackets:4220errors:0dropped:0overruns:0frame:0

TXpackets:3586errors:0dropped:0overruns:0carrier:0

collisions:0txqueuelen:1000

RXbytes:342493(334.4Kb)TXbytes:469020(458.0Kb)

Interrupt:9Baseaddress:0x1400

eth0:1Linkencap:EthernetHWaddr00:0C:29:06:9C:24

inetaddr:192.168.1.11Bcast:192.168.1.255Mask:255.255.255.0

UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1

Interrupt:9Baseaddress:0x1400

2、route命令

功能:显示当前路由设置情况

route显示当前路由设置情况,比较慢一般不用。

routeadd-net10.0.0.0netmask255.255.0.0gw192.168.1.254添加静态路由

routedel-net10.0.0.0netmask255.255.0.0gw192.168.1.254添加静态路由

routeadddefaultgw192.168.1.1metric1 设置192.168.1.1为默认的路由

routedeldefault 将默认的路由删除

举例:

#routeadd-net10.0.0.0netmask255.255.0.0gw192.168.1.254

#netstat-nr

KernelIProutingtable

DestinationGatewayGenmaskFlagsMSSWindowirttIface

192.168.1.00.0.0.0255.255.255.0U000eth0

10.0.0.0192.168.1.254255.255.0.0UG000eth0

169.254.0.00.0.0.0255.255.0.0U000eth0

0.0.0.0192.168.1.2540.0.0.0UG000eth0

#routedel-net10.0.0.0netmask255.255.0.0gw192.168.1.254

#netstat-nr

KernelIProutingtable

DestinationGatewayGenmaskFlagsMSSWindowirttIface

192.168.1.00.0.0.0255.255.255.0U000eth0

169.254.0.00.0.0.0255.255.0.0U000eth0

0.0.0.0192.168.1.2540.0.0.0UG000eth0

3、netstat命令

功能:显示网络状态

netstat-an查看网络端口信息

netstat-nr查看路由表信息,比route快多了,

4、启动网络的命令

redhat族的命令:

/etc/init.d/network

debian命令:

/etc/init.d/networking

例如:

/etc/init.d/networkstop停止网络

/etc/init.d/networkstart启动网络

5、手工修改网络配置

(1)debian系统

配置文件位置为:/etc/network/interfaces

#Theloopbacknetworkinterface

autolo

ifaceloinetloopback

#Theprimarynetworkinterface

autoeth0eth1

ifaceeth0inetstatic

address10.4.5.6

netmask255.255.255.0

network10.4.5.0

broadcast10.4.5.255

ifaceeth1inetstatic

address219.25.5.60

netmask255.255.255.192

network219.25.5.0

broadcast219.25.5.63

gateway219.25.5.30

修改后保存配置后,运行

/etc/init.d/networkingrestart

网络配置就改变了

(2)redhat系统

配置文件位置为:/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

BROADCAST=192.168.1.255

IPADDR=192.168.1.5

NETMASK=255.255.255.0

NETWORK=192.168.1.0

GATEWAY=192.168.1.254

ONBOOT=yes

TYPE=Ethernet

修改后保存配置后,运行

/etc/init.d/networkrestart

或者

servicenetworkrestart

网络配置就改变了。

默认DNS的文件的位置为:/etc/resolv.conf

#cat/etc/resolv.conf

searchtest.com.cn

nameserver192.168.1.11

6、网络排错

(1)ping命令

功能:不说了,不知道就用干这行了。

ping

www.163.com

(2)traceroute命令

功能:路由跟踪

traceroute

www.163.com

traceroute207.68.173.7

(3)nslookup命令

功能:域名解析排错

例如:

$nslookup

Note:nslookupisdeprecatedandmayberemovedfromfuturereleases.

Considerusingthe`dig'or`host'programsinstead.Runnslookupwith

the`-sil[ent]'optiontopreventthismessagefromappearing.

>

www.dlut.edu.cn

Server:192.168.1.11

Address:192.168.1.11#53

Non-authoritativeanswer:

Name:

www.dlut.edu.cn

Address:202.118.66.66

>server202.118.66.6

Defaultserver:202.118.66.6

Address:202.118.66.6#53

>

www.baidu.com

Server:202.118.66.6

Address:202.118.66.6#53

Non-authoritativeanswer:

www.baidu.com

canonicalname=

www.a.shifen.com

.

Name:

www.a.shifen.com

Address:202.108.22.5

(九)其他命令

1、ssh命令

功能:远程登陆到其他UNIX主机

ssh-luser1192.168.1.2使用用户名user1登陆到192.168.1.2

ssh

[email protected]

   使用用户名user1登陆到192.168.1.2

2、scp命令

功能:安全copy

例如:

scpabc.tar.gz

[email protected]

:~ 将本地的abc.tar.gz 复制到 192.168.1.5的user1用户的根(/home/user1)下。

3、telnet命令

功能:登陆到远程主机

例如:

telnet 192.168.1.5

4、touch命令

功能:修改文件的时间戳,当文件不存在时可以创建文件

例如touch aaa.txt  创建一个空文件,文件名为aaa.txt

【参考资料】

【1】LinuxShell常用shell命令作者:周立军

http://blog.chinaunix.net/u/12505/showart_156827.html

【2】Linux命令大全

http://wiki.chinaunix.net/index.php/Linux%E5%91%BD%E4%BB%A4%E5%A4%A7%E5%85%A8

相关推荐