Linux常用命令解析

          从今天起,周期更新嵌入式开发技术文档。学习嵌入式必须持之以恒,绝不是小说里的大侠习武,内功深厚,一看即成!尤其是张无忌、段誉、虚竹,那是明显的开挂行为。社会上三教九流的那些速成班也都是为金钱而奴役的,并没有多少是授人以渔。要学好嵌入式是必须先扎实计算机语言,比如C就是必须的,因为底层驱动无论是Linux还是uc/OS或者裸跑,都是离不开他的,当然能懂点汇编就更好了。关于作者,也并不是什么高手,只是一个嵌入式技术爱好者,对UC/OS和Linux略懂一二,现任职台湾某IC设计公司应用工程师,负责公司产品驱动以及应用的开发,对视频模块以及音频模块有较深理解。大家有什么技术问题欢迎贴出来一起探讨。

      第一篇将贴出我整理的一些Linux常用命令,这个是嵌入式开发基础的基础,这是特别篇,从第二篇开始将贴出本人写的一些小程序,从程序分析一些驱动开发原理以及应用的多线程。因为本人不是一个理论爱好者,虽然喜欢写文章,但是不喜欢玩纸上谈兵,要当一名将军,必须到战场上去,实战才能成就韩信,徐达,只搞理论最后不是赵括就是李景隆。

1.添加用户:useradd

格式:useradd  [选项用户名

例:

useradd dhtzlfx   

创建dhtzlfx用户

选项诠释:

-m

home目录下创建用户   

例:useradd  -m  dhtzlfx   

home 目录下创建dhtzlfx用户

-d

在指定目录下创建用户   

例:useradd  –d  /home/download/dhtzlfx    

download目录中创建dhtzlfx用户

2.创建用户密码:passwd

格式:passwd  用户名     

为新建的用户创建密码

3.删除用户:

格式:userdel  用户名    

删除用户

4.切换用户:su

格式:su  [选项用户名

选项诠释:

-f ,–fast

不必读启动文件(如 csh.cshrc等),仅用于cshtcsh两种Shell

-l ,–login

加了这个参数之后,就好像是重新登陆一样,大部分环境变量(例如HOMESHELLUSER)都是以该使用者(USER)为主,并且工作目录也会改变。如果没有指定USER,缺省情况是root

-m -p,–preserve-environment

执行su时不改变环境变数。

-c  command

变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。

:

su  –c ls dhtzlfx

变更帐号为 dhtzlfx 并在执行 ls 指令后退出变回原使用者。

su  [用户名]

a>root用户下,输入 su 普通用户.则切换至普通用户, root切换到变通用户不需要密码

b>在普通用户下,输入 su  [用户名]

提示 password:

输入用户的PASSWORD, 则切换至该用户

5.关机:shutdown now

格式:shutdown now

立刻关机

6.拷贝: cp

格式:cp  [选项源文件或目录  目标文件或目录

该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中

例:1.  cp  file1  dir1

将文档 file1 复制到目录 dir1 下,文件名仍为 file1

 cp  /tmp/file1

目录 /tmp 下的文档 file1复制到现行目录下,档名仍为 file1.

 cp  /tmp/file1  file2

将目录 /tmp 下的文档 file1复制到现行目录下,档名变为为file2

选项含义:

- a  

该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。

- d  

拷贝时保留链接。

- f  

删除已经存在的目标文件而不提示。

- i  

f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。

例:cp  -i  file1  file2

将文档 file1 复制成 file2 . –i为提示确认。

- p  

此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。

- r  

若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。

例:cp  -r  dir1  dir2

     (recursive copy) 复制整个目录.若目录 dir2存在,则将目录dir1,及其所有文档和子目录,复制到目录 dir2下,新目录名称为dir1.若目录dir2不存在,则将dir1,及其所有文档和子目录,复制为目录 dir2

- l  

不作拷贝,只是链接文件。  

需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖

 

7.移动、更名: mv

格式:mv  [选项]  源文件或目录 目标文件或目录

例:

1. mv  /home/test  /home/test1

/home目录下的test文件更名为test1

2.mv  /home/dir1  /tmp/

/home目录下dir1目录移动(剪切)到/tmp目录下

选项的含义:

- i

交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答yn,这样可以避免误覆盖文件。

- f

禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。

命令格式:mv a b

总结起来有以下几种情况:

a是文件名,b不存在 a改名为b
a
是文件名,b是文件名 a改名为b,b被覆盖。
a
是文件名,b是目录名,b下没有名为a的文件或目录 a移动到b目录下。
a
是文件名,b是目录名,b下没有名为a的文件 a移动到b目录下,覆盖原b/a

a是文件名,b是目录名,b下已有名为a的目录 cannotoverwrite directoryb/a' with non-directory(不能用非目录覆盖’b/a‘)
a是目录名,b不存在 a改名为b
a
是目录名,b是文件名 cannot overwrite non-directory 'b' with directory 'a'(不能使用目录覆盖非目录'b'

a是目录名,b是目录名,b下没有名为a的文件或非空目录 a移动到b目录下成为子目录。

 

8.删除:  rm

格式:rm  [选项]  文件或目录

例:

1. rm  /home/test

删除/home目录下的test文件

2.rm  r  /home/dir

删除/home目录下的dir目录

选项含义:

- f

忽略不存在的文件,从不给出提示。

- r

指示rm将参数中列出的全部目录和子目录均递归地删除。

- i

进行交互式删除。

 

9.创建目录: mkdir

格式:mkdir  [选项]  目录名

例:

1. mkdir  /home/workdir

/home目录下创建workdir目录

2. mkdir  p  /home/dir1/dir2

创建/home/dir1/dir2目录,如果dir1不存在,先创建dir1

      选项含义:

-m

用于对新建目录设置存取权限,也可以用 chmod命令进行设置。

-p

需要时创建上层文件夹(或目录),如果文件夹(或目录)已经存在,则不视为错误。

 10.改变工作目录:  cd

格式:cd  目录名

例:

 cd  /home/

进入/home目录

11.查看当前路径: pwd

格式:pwd

范例:

1. pwd

显示当前工作目录的绝对路径

12.查看目录: ls

格式:ls  [选项]  [目录或文件]

例:

1. ls  /home

显示/home目录下的文件与目录(不包含隐藏文件)

2. ls  a  /home

显示/home目录下的所有文件与目录(包含隐藏文件)

3. ls  l  /home

显示/home目录下的文件与目录的详细信息

4. ls  c  /home

显示/home目录下的文件与目录,按修改时间排序

     选项参数:

      -a

用于显示所有文件和子目录(保罗点文件)

-l

除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。

 -r

将目录的内容清单以英文字母顺序的逆序显示。

-t

按文件修改时间进行排序,而不是按文件名进行排序。

 -A

-a,但不列出“.(表示当前目录)和“..(表示当前目录的父目录)

-F

在列出的文件名和目录名后添加标志。例如,在可执行文件后添加“*”,在目录名后添加“/”以区分不同的类型。

-R

如果目标目录及其子目录中有文件,就列出所有的文件。

-Cx

按行跨页对文件名进行排序。

-CF

按列列出目录中的文件名,并在文件名后附加一个字符以区分目录和文件的类型:目录文件名之后附加一个斜线(/)。可执行文件名之后附加一个星号(*)。符号链接文件名之后附加一个@符号。普通文件名之后不附加任何字符。

-CR

   以分栏格式显示目标目录及其各级子目录中的所有文件(目录文件都可以称为文件),也称为递归列表。

13.打包与压缩: tar

格式:tar  [选项]  目录或文件

例:

1.tar  cvf  tmp.tar /home/tmp

/home/tmp目录下的所有文件和目录打包成一个

tmp.tar文件

2.tar  xvf  tmp.tar

将打包文件tmp.tar在当前目录下解开

3.tar  cvzf  tmp.tar.gz /home/tmp

/home/tmp目录下的所有文件和目录打包并压

缩成一个tmp.tar.gz文件

4.tar  xvzf  tmp.tar.gz

将打包压缩文件tmp.tar.gz在当前目录下解开

选项参数:

-c

建立一个压缩文件的参数指令(create的意思)

-x

解开一个压缩文件的参数指令!

-t

查看 tarfile 里面的文件!

特别注意,在参数的下达中, c/x/t仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。

-z

是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

-j

是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

-v

压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f

使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成

tar -zcvPf tfile sfile』才对喔!

-p

使用原文件的原来属性(属性不会依据使用者而变)

-P

可以使用绝对路径来压缩!

-N

比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!

14.解压缩: unzip

格式:unzip  [选项]  压缩文件名.zip

范例:

1.unzip  tmp.zip

解压tmp.zip文件

15.改变访问权限: chmod

知识点:

linux文件权限:

例:

-rw-r--r--  2  dhtzlfx  dhtzlfx  483997   8  17  15:34  sobsrc.Tgz

注意这里共有10个位置。第一个字符指定了文件类型,如果第一个字符是横线,表示是一个非目录的普通文件。如果是d,表示是一个目录。r代表只读,w代表写,x代表可执行,横线代表无该项权限。

格式:chmod  [who][+ | - | =][mode]  文件名

参数:

who:

u 表示文件的所有者。

g 表示与文件所有者同组的用户。

o 表示“其他用户”。

a 表示“所有用户”。它是系统默认值。

 

+ 添加某个权限

- 取消某个权限

= 赋予给定权限

mode:

r 可读

w 可写

x 可执行

例:

chmod g+w cwork.c

与文件所有者同组的用户添加可写权限

 

mode所表示的权限可使用下述字母

(数字)的任意组合:

r 可读(4)

w 可写(2)

x 可执行(1)

例:

chmod 764  cwork.c

第一种用户:74+2+1

第二种用户:64+2

第三种用户:44

16.查看磁盘使用情况:df

格式:df  [选项]

范例:

df k

KB为单位显示磁盘使用情况

选项参数:

-a

显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。

-k

k字节为单位显示。

-i

显示i节点信息,而不是磁盘块。

-t

显示各指定类型的文件系统的磁盘空间使用情况。

-x

列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。

-T

 显示文件系统类型。

 

17.查看目录大小:du

格式:du  [选项]  目录

范例:

du b  ipc

以字节为单位显示ipc这个目录的大小

  选项参数:
-a-all

为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。
-b-bytes

显示目录或文件大小时,以byte为单位。
-c–total

除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。
 -D–dereference-args

 显示指定符号连接的源文件大小。
-h–human-readable

KMG为单位,提高信息的可读性。
-H–si

-h参数相同,但是KMG是以1000为换算单位,而不是以1024为换算单位。
 -k–kilobytes

1024 bytes为单位。
-l–count-links

重复计算硬件连接的文件。
-L<符号连接>–dereference<符号连接>

显示选项中所指定符号连接的源文件大小。
-m–megabytes

1MB为单位。
-s–summarize

仅显示总计,即当前目录的大小。
-S–separate-dirs

显示每个目录的大小时,并不含其子目录的大小。
-x–one-file-xystem

以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
 -X<文件>–exclude-from=<文件>

<文件>指定目录或文件。
–exclude=<目录或文件>

略过指定的目录或文件。
–max-depth=<目录层数>

超过指定层数的目录后,予以忽略。
–help 显示帮助。
–version 显示版本信息。
 linux中的du命令使用示例:
 1>
要显示一个目录树及其每个子树的磁盘使用情况
 du /home/linux
 
这在/home/linux目录及其每个子目录中显示了磁盘块数。
 2> 要通过以1024字节为单位显示一个目录树及其每个子树的磁盘使用情况
 du -k /home/linux
这在/home/linux目录及其每个子目录中显示了 1024字节磁盘块数。
3> MB为单位显示一个目录树及其每个子树的磁盘使用情况
du -m /home/linux
这在/home/linux目录及其每个子目录中显示了 MB磁盘块数。
4> GB为单位显示一个目录树及其每个子树的磁盘使用情况
du -g /home/linux
这在/home/linux目录及其每个子目录中显示了 GB磁盘块数。
5>查看当前目录下所有目录以及子目录的大小:
du -h .
“.”
代表当前目录下。也可以换成一个明确的路径
-h表示用KMG的人性化形式显示
6>查看当前目录下user目录的大小,并不想看其他目录以及其子目录:
du -sh user
-s
表示总结的意思,即只列出一个总结的值
du -h –max-depth=0 user
–max-depth
n表示只深入到第n层目录,此处设置为0,即表示不深入到子目录。
7>列出user目录及其子目录下所有目录和文件的大小:
du -ah user
-a
表示包括目录和文件
8>列出当前目录中的目录名不包括xyz字符串的目录的大小:
du -h –exclude=’*xyz*’
9>
想在一个屏幕下列出更多的关于user目录及子目录大小的信息:
du -0h user
-0
(杠零)表示每列出一个目录的信息,不换行,而是直接输出下一个目录的信息。

18.网络配置:ifconfig

格式:ifconfig  [选项]  [网络接口]

范例:

1. ifconfig  eth0  192.168.0.1

配置eth0这一网卡的ip地址为192.168.0.1

2. ifconfig  eth0  down

暂停eth0这一网卡的工作

3. ifconfig  eth0  up

恢复eth0这一网卡的工作

19.查看网络状态:netstat

格式:netstat  [选项]

范例:

1. netstat -a

查看系统中所有的网络监听端口。

20.软件安装:rpm

格式:rpm  [选项]  [安装文件]

范例:

1. rpm  -ivh  tftp.rpm

安装名字为tftp的文件

2. rpm  -qa

列出所有已安装rpm

3. rpm  e  name

卸载名字为namerpm

21.挂载:mount    umount

mount

格式:mount  [选项]  设备源 目标目录

范例:

 mount /dev/cdrom  /mnt

将光驱挂载到/mnt目录下

umount

格式:umount  目标目录

范例:

umount  /mnt (对应mount例)

取消光驱在/mnt下的挂载

22.查找文件:find

格式:find  路径  -name  ‘文件名’

范例:

1. find  ./  -name co*

在当前目录及其子目录中寻找名为co开头的文件

2. find  ./  -name test

在当前目录及其子目录中寻找名为test的文件

23.查找字符串:grep

格式:grep  [选项]  字符串

范例:

1. grep file./  -rn

在当前目录及其子目录中,查找包含file字符串的文件

2. netstat a | grep  tftp

查看所有端口中用于tftp的端口

24.动态查看CPU的使用:top  ctrl+c退出)

格式:top

范例:

top

查看系统中的进程对cpu、内存等的占用情

况。

25.查看进程:ps

格式:ps  [选项]

范例:

1.ps  aux

查看系统中的所有进程

26.杀死进程:kill

格式:kill  [选项进程号

范例:

1.kill  s  SIGKILL 4096

杀死4096号进程

27.帮助:man     Q退出)

格式:man  命令名

范例:

1. man  grep

查看grep命令的使用方法

2. man  ping

查看ping命令的使用方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值