linux下开发常用指令集以及使用案例

linux下开发常用指令集

本文主要介绍Linux开发者Linux系统下开发常用的指令集合。方便初学者进行学习的同时,也方便作一个查阅。

echo

    功能:在shell编程中极为常用,在终端打印变量的时候常用到。
    
    命令格式:echo [-n] 字符串
    其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符时,将字符串原样输出;
    用echo命令输出不加引号的字符串时,将字符串的各个单词作为字符串输出,各字符串之间用一个空格分割。
    

groupAdd

    功能:将用户添加。
    
    
    命令格式:
    
    
    命令参数:
    -l 信号,如果不加信号的编号参数,则使用"-l"参数会列出全部的信号名称。
    -a 当处理当前的进程时,不限制命令名和进程号对应的关系。
    -p 指定kill命令只打印相关进程的进程号,而不发送任何信号。
    -s 指定发送信号
    -u 指定用户

kill

    功能:将用户添加。
    
    
    命令格式:
    kill [参数][进程号]
    
    命令参数:
    -l 信号,如果不加信号的编号参数,则使用"-l"参数会列出全部的信号名称。
    -a 当处理当前的进程时,不限制命令名和进程号对应的关系。
    -p 指定kill命令只打印相关进程的进程号,而不发送任何信号。
    -s 指定发送信号
    -u 指定用户
    
    
    注意:只有第九种信号(SIGKILL)才可以无条件终止进程,其它信号进程都有权利忽略。下面是常用的信号。
    
    HUP  1  终端断线
    INT  2  中断(同ctrl + c)
    QUIT 3  退出(同ctrl + \)
    TERM 15 终止
    KILL 9  强制终止
    CONT 18 继续(与STOP相反,fg/bg命令)
    STOP 19 暂停(同Ctrl + z)
    
   
   
 实例1:列出所有信号名称:
    kill -l 
 
 实例2:得到指定信号的数值
    kill -l KILL
    kill -l SIGKILL
    kill -l TERM
    kill -l SIGTERM
    
 实例3:先用ps查找进程,然后用kill杀掉
 kill 3268
    

 实例4:彻底杀死进程
 
 
 实例5:杀死指定用户所有进程
 
 
 实例6:init进程是不可杀的。
 ps -ef |grep init
 kill -9   1
 kill -HUP 1
 ps -ef|grep init
 kill -KILL 1
 ps -ef|grep init
 
    
说明:
init是Linux系统中不可缺少的程序之一。所谓的init进程,
它是一个由内核启动的用户级进程。内核自行启动(已被载入内存,
开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,
就通过启动一个用户级成内需init的方式,完成引导进程。
所以,init始终是第一个进程(其进程编号始终为1)。
其它所有进程都是init进程的子孙。init进程是不可杀的。
    
    
    

pidof

    功能:find the process ID of a running program.程序可以是一个二进制程序,也可以是一个shell脚本。如果是找出java程序的进程PID,pidof就无能为力了,
    可以使用ps -ef |grep java或者jps-l来查看java进程的信息。通常找出进程PID的目的是确认程序是否在运行或者为了把它杀掉或者发送一个信号给它。
    
    常用参数:
    格式:pidof program
    找出program程序的进程pid,如果有多个就会全部列出,program不能杀死shell脚本名称。
    
    
    格式:pid -s program
    找出program程序的进程PID,只列出一个。(single shot - this instructs the program to only return one pid.)
    
    格式:pidof -x script
    找出shell脚本script的进程pid.
    
    
    参数:-o omitpid
    参数: -o omitpid1 - omitpid2
    在列出的进程PID中忽略omitpid.可以有多个。

    参数:-s
    只列出一个



使用示例:
示例一
pidof pidof
pidof console
pidof bash
pidof man
pidof java
jps -l


示例二
下面演示了怎么查看脚本的PID的,可以发现通过不含路径的脚本文件名称、或者执行时的路径来查看,其它方式不行。
ls /opt/imx/imx_web3q/update.sh

ps -ef|grep update.sh

pidof update.sh

pidof -x /opt/imx/imx_web3q/updatesh

pidof ./update.sh

tar

-c:建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件


这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有g_zip属性的。
-j:有bz2属性的。
-Z:有compress属性的。
-v:显示所有过程
-O:将文件解开到标准输出。

下面的参数-f是必须的
-f:使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。


#tar -cf all.tar *.jpg
这条命令是将所有的.jpg的文件打包成一个名为all.tar的包。-c是表示产生新的包,-f制定包的文件名。

#tar -rf all.tar *.gif
这条命令是将所有的.gif文件增加到all.tar的包里去。-r是表示着表示增加文件的意思。

#tar -uf all.tar logo.gif
这条命令是更新原来的tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

#tar -tf all.tar
这条命令是列出all.tar包中的所有文件,-t是列出文件的意思。


#tar -xf all.tar
这条命令是解出all.tar包中的所有文件,-x是解开的意思。






压缩:
tar  -cvf jpg.tar *.jpg//将目录所有jpg文件打包成jpg.tar
tar -czf jpg.tar.gz *.jpg//将目录里所有jpg文件爱你打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -czf jpg.tar.bz2 *.jpg//将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip2压缩,生车工你一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg//将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩
,生成一个umcompress压缩过的包,命名为jpg.tar.z


rar a jpg.tar *.jpg//rar格式的压缩,首先要下载rar for linux

zip jpg.zip *.jpg//zip格式的压缩,需要先下载zip for linux


解压
tar -xvf file.tar//解压tar包
tar -xzvf file.tar.gz//解压tar.gz
tar -xjvf file.tar.bz2//解压tar.bz2
tar -xZvf file.tar.Z//解压tar.Z
urar e file.rar//解压rar
unzip file.zip//解压zip



总结:
1.*.tar用tar -xvf解压
2.*.gz用gzip -d 或者gunzip解压
3.*.tar.gz和*.tgz用tar -xzf解压
4.*.bz2用bzip2 -d 或者用bunzip2解压
5.*.tar.bz2用tar -xjf解压
6.*.Z用uncompress解压。
7.*.tar.z用tar -xZf解压
8.*.rar用unrar e解压
9.*.zip用unzip解压

Linux下如何解压后缀名为.tar.xz的文件

原文链接:
https://blog.csdn.net/wy_bk/article/details/79347598
1.解压“.xz”
xz -d your_file_name.tar.xz
注释:运行上述命令后your_file_name.tar.xz会被删除。

2.解包"tar.gz"
tar -xvf your_file_name.tar
注:运行上述命令后,your_file_name.tar会被删除。

注:
    1..xz”是一种压缩文件格式。Linux系统中常使用的文件格式还有".gz",".bz2"等。关于xz的更多内容,可以使用""man xz"查看
    
    2.".tar"是一个文件打包格式。tar命令本身只用于打包或解包,tar本身并没有压缩和解压缩的功能。关于tar的更多内容,可以使用"man tar"查看。
    




Linux下如何正确使用rar命令进行解压

 rar x *.rar

ed

ed编辑器是Linux操作系统下最简单的文本编辑器。它是以行为单位对文本进行编辑不想MS-DOS系统下的edit那样是以整个屏幕框架为单位对文本进行编辑的。
ed编辑器有两个状态:命令行状态,

[root@EM335X /mnt/usb2/test]#ed 1.txt
"1.txt", 2 lines, 24 chars
: a      
hello 
s
q
.
: ls
q$
: w  
"1.txt", 5 lines, 35 chars
: x
ed: unimplemented command
: q
Really quit? y

ash

    命令行解释器:
    一个简单的轻量级的Shell,占用资源少,适合运行于低内存环境,但是与下面讲到的bash shell完全兼容。
    
    

echo $0 或者 echo $SHELL可以查看到板子里运行的是bash还是ash

BusyBox是一个集成了三百多个最常用的Linux命令和工具的软件。BusyBox包含了一些简单的工具,例如ls,cat和echo等等,还包含了一些更大更复杂的攻击,例如grep、find、mount以及telnet.有些人将BusyBox称为Linux的瑞士军刀。简单的说,BusyBox就好像一个巨大的工具箱,它集成压缩了Linux的许多工具和命令,也包含了Android系统自带的shell。

Linux下的ln命令

这是linux中一个非常重要的命令,请大家一定要熟悉。它的功能是为某一个文件或目录在另外一个位置建立一个同步的链接,类似windows下的超级链接。
这个命令最常用的参数是:-s,具体的用法是:
sudo ln -s 源文件 目标文件

举例:
当前目录是/local,而我经常要访问/usr/local/linux/work

true /false

 将程序退出码设置为1或者0

ts_calibrate校准触摸屏

    使用ts_lib包自带的ts_calibrate校准触摸屏非常简单使用,但是基于xServer的GUI应用环境下,有两个问题存在:
    1.校准后必须重新启动X,应用端才能生效。这样处理用户肯定不能接受,因为启动一次机器毕竟耗时。
    2.在使用ts_calibrate校准触摸屏时,要触摸5个点,这时,如果GUI应用端在运行其它响应触摸时间(鼠标事件)的程序就会出乱,所以安全的做法应该是在校准触摸屏时,应该进行锁屏操作。

pdflush的工作原理

    大家知道,在Linux操作系统中,写操作是异步的,
    即写操作返回的时候数据并没有真正写到磁盘上,
    而是先写到了系统cache里,随后由pdflush内核线程将系统中的脏页写到磁盘上,
    在下面几种情况下,系统会唤醒pdflush写回脏页。
    

login登陆

    login gl
    
    在输入密码,即能登陆成功。


route查看路由表


[gl@EM335X ~]$route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.201.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.202.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1

printenv

    功能:env和printenv均可以打印当前系统的环境变量。

tslib移植后,会生成五个应用程序。

bin目录下生成:
ts_calibrate
ts_haverst
ts_print
ts_print_raw
ts_test
etc目录下生成:
ts.conf

include目录下有头文件:
tslib.h

lib目录下有
libts-1.0.so.0
libts-1.0.0.0
libts.la
libts.so
pkgconfig
ts


fgrep:
    将样式视为固定字符串的列表
    
egrep:
    将样式为延伸的普通表示法来使用。
    

recurse 递归

chattr

    chatter:锁定文件,不能删除,不能更改。
    +a:只能给文件添加内容,但是删除不了
        chattr +a /etc/passwd
    -d: 不可删除
    
    加锁:chattr +i /etc/passwd 文件不能删除,不能更改,不能移动。
    
    查看加锁:lsattr /etc/passwd 文件加了一个参数i表示锁定
    
    解锁:chattr -i /home/omd/h.txt -表示解除
    

A:即Atime,告诉系统不要修改对这个文件的最后访问时间。
S:即Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
a: 即AppendOnly,系统只允许这个文件之后添加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
b:不更新文件或者目录的最后存取时间。
c:将文件或目录压缩后存放。
d:当dump程序执行时,该文件或目录不会被dump备份。
D:检查压缩文件中的错误。
i:即Immutable,系统不允许对这个文件进行任何的修改,如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
s:彻底删除文件,不可恢复,因为是从磁盘上删除,然后用0填充文件所在区域。
u:当一个应用程序请求删除这个万恶我呢见,系统会保留其数据块,以便以后能恢复删除这个文件,用来防止意外删除文件或目录。

t:文件系统支持尾部合并(tail-merging)。
X:可以直接访问压缩文件的内容。

fsync 文件同步指令

pwd

pwd是print working directory的缩写,其功能是现实当前所在工作目录的全路径。主要用当不确定当前所在位置时,通过pwd来查看当前目录的绝对路径。


示例1:查看当前所在路径
pwd

示例2:查看当前所在路径,不使用连接路径
pwd -P

示例3:多层连接文件时,现实所有连接文件最终指向的文件全路径。


cat

cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容;

cat主要分为三大功能:
1.一次显示整个文件。
cat filename

2.从键盘创建一个文件
cat > filename
只能创建新文件,不能编辑已有文件。


3.将几个文件合并为一个文件
cat file1 file2 > file
cat具体命令格式为:cat [-AbtEnstTuv][--help][--version] fileName

说明:把档案串联接后,传到基本输出(屏幕或加>fileName到另一个文档)

参数:
-n或-number由1开始对所有输出的行数编号。
-b或-number-nonblank和-n相似,只不过对于空白行不编号。
-s或-squeeze-blank当遇到有连续两行以上的空白行,就替换为一行的空白行。
-v或-show-nonprinting

范例:
cat -n linuxfile1 > linuxfile2把linuxfile1的档案内容加上行号后输入linuxfile2这个档案里。

cat -b linuxfile1 linuxfil2 >> linuxfile3把Linuxfile1和linuxfile2的档案内容加上行号(空白行不加)之后将内容附加到linuxfile3里。



范例:
把linuxfile1的档案内容加上行号输入linuxfile2这个文档里。


把linuxfile1和linuxfile2的档案内容加上行号(空白行不加)之后将内容附加到linuxfile3里。

cat -b linuxfile1 linuxfile2 >> linuxfile3
cat /dev/null > /etc/test.txt此为清空档案内容。


linux shell脚本中,我们经常看到类似于cat <<EOF语句,不熟悉的童鞋可能会绝的很奇怪:EOF好像是文件的结舒符,用到这里起到什么作用呢?



首先必须要说明的是EOF这里没有特殊的含义,你可以使用FOE或者ooo等(当然也不限制在三个字符或大写字符)
可以将EOF替换成其它的东西,意思就是把内容当成标准输入传给程序。

结合这两个表示,即可避免使用多行echo命令的方式,并实现多行输出的结果。

接下来,简单描述一下几种常见的使用方式及其作用:
1、cat<<EOF,以EOF输入字符为标注输入结束
2、cat>filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束;
3、cat >fileame<<EOF,EOF作为输入结束,和ctrl + d作用一样。



二、使用

看例子是最快的熟悉方法
# cat <<EOF > test.sh
># !/bin/bash  #"shell脚本"
># you shell script writes here
>EOF

结果:
引用#cat test.sh
#!/bin/bash
#you Shell script writes here.
可以看到,test.sh的内容就是cat生成的内容。
cat <<EOF >test.sh内容EOF

---就是将内容写入test.sh,之前存在的内容会被覆盖掉。EOF可以换成其他的符号比如EEE:cat <<EEE > test.sh内容EEE


三、其他写法
1、追加文件
cat << EOF >>test.sh内容EOF
---将内容追加到test.sh的后面,不会覆盖掉原有的内容。
2、换一种写法
cat > test.sh <<EOF 内容 EOF

3EOF只是标识,不是固定的
cat << HHH > iii.txt
>adafd
>dafad
>afads
>HHH
这里的“HHH”就代替了“EOF”的功能。结果是相同的。
引用#cat iii.txt
sdlkfad
sdkjf
asdlfj



4.非脚本中
如果不是在脚本中,我们可以用ctrl -D输出EOF的标识。
#cat > iii.txt
skldjfklj
sdkfjkl
kljlk
Ctrl -D

结果:
引用#cat iii.txt
skldjfklj
sdkfjkl
kljlk


注意:关于">",">>","<","<<"等的意思,请自行查看bash的介绍。

chgrp 命令

功能:改变文件或目录所属的组
语法:chgrp [选项] group filename1/4

getopt工作的例子

getopt工作的例子
getopt ab:cd -a -b test1 -cd test2 test3
-a -b test1 -c -d -- test2 test3

optstring定义了四个有效字母:a,b,c,d.冒号(:)被放在了字母b后面,因为b选项需奥一个参数值,当getopt命令运行时,它会检测提供的参数列表(-a -b test1 -cd test2 test3),并给予提供的optstring进行解析,它会自动将-cd选项分割成两个单独的选项,并插入双破折线来分割行中的额外参数。


lzop

lzop工具最适合在注重压缩速度的场合,压缩文件时会新建.lzo文件,而原文件保持不变(使用-U选项除外)

cpio命令

 cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以(*.cpio)
 或者“.tar”结尾的文件。
  
 

more命令

 more功能类似于cat,cat命令是整个文件的内容从上到下显示在屏幕上。more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示,而且还有搜寻字符串的功能。more命令从前向后读取文件,因此在启动时就夹在整个文件。

sed

 sed:Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上。还可以对原文件改动,但是不会在屏幕上返回结果。
 
 
 sed命令的选项(option):
 -n:只打印模式匹配的行
 -e: 直接在命令行模式上进行sed动作编辑,此为默认选项。
 -f: 将sed的动作写在一个文件内,用-f filename执行filename内的sed动作。
 
 -r: 支持扩展表达式
 -i:直接修改文件的内容。
 

nice

功能:调整程序的优先级。
优先级的范围:-20-19;当调整后的优先级小于-20后,以优先级-20来运行程序;当调整程序的优先级大于19后,则以19的优先级运行程序。


[root@EM335X /mnt/usb1/test]#nice   
0
[root@EM335X /mnt/usb1/test]#nice nice
10
[root@EM335X /mnt/usb1/test]#nice nice nice 
19
[root@EM335X /mnt/usb1/test]#

[root@EM335X /mnt/usb1/test]#nice -n -21 nice
-20


date

    #date +"%Y-%m-%d-%H-%m-%S"
    格式化输出时间:
    

ionice

    功能--获取或设置程序的IO调度与优先级。
    命令格式--
    ionice  [[-c class][-n classdate] [-t]] -p PID [PID]...
    ionice [-c class] [-n classdata] [-t] COMMAND [ARG]...
    
    IO调度策略:
    ionice将磁盘IO调度分为三类:
    ilde:空闲磁盘调度,该调度策略是在当前系统没有其它进程需要进行磁盘IO时,才能进行磁盘;因此该策略对当前系统的影响基本为0;当然,该调度策略不能带有任何优先级参数;目前,普通用户是可以通过使用该调度策略。
    Best effort:是缺省的磁盘io调度策略;
    (1)该调度策略可以指定优先级(范围是0~7,数值越小,优先级越高);
    (2)针对处于哦那个一优先级的程序将采用round-robin方式;
     (3)对于best effort调度策略,8个优先级等级可以说明在给定的一个调度窗口中时间片的大小。
    (4)目前,普通用户(非root用户)是可以使用该调度策略。(5)在内核2.6.26之前,没有设置IO优先级的进程会使用"none"作为调度策略,但是这种策略时的进程看起来像是采用了best effort调度策略,因为其优先级是通过关于cpu nice有关的公式计算得到:io_priority= (cp_nice + 20)/5(6)在内核2.6.26之后,如果当前系统使用的是CFQ调度器,那么如果进程没有设置IO优先级别,将采用与内核2.6.26之前版本同样的方式,推到出io优先级级别。
    
    Real time:实时调度策略,如果设置了该磁盘io调度策略,则立即访问磁盘,不管系统中其他进程是否有IO。因此使用实时调度策略,需要注意的是,该访问策略可能会使得其他进程处于等待状态。

参数说明:
-c class: class 表示调度策略,其中0 for none,1 for read time,2 for best-effort,3 for idle.
-n classdata:class data表示io优先级级别,对于best effort和real time,class data可以设置成0~7-p pid:指定要查看或设置的进程号,如果没有指定pid参数,ionice will run the listed program with the given parameters.
-t :忽略设置优先级产生的错误。
COMMAND:表示命令名



ionice -c 3 -p 89 #设置进程号为89的进程的调度策略是idle.
ionice -c 2 -n 0 bash
#运行bash,调度策略是best-effort,最高优先级
ionice -p 89 91 #打印进程号为8991的进程的调度策略和io优先级。
ionice -c3 -p$$ 
#将当前的进程(也就是shell)磁盘IO调度策略设置为idle类型。

    

mount

功能:
   挂载
   
   
挂载的概念:
    Linux中的根目录以外的文件想要被访问,需要将其关联到根目录下的某个目录来实现,这种关联就是"挂载",这个目录就是“挂载点”,解除次关联关系的过程称为"卸载"。
    


注意:挂载点的目录需要以下几个要求:
(1)目录事先存在,可以用mkdir命令新建目录。
(2)挂载点目录不可被其它进程使用到。
(3)挂载点下原有文件被隐藏。



挂载与卸载:

挂载方法:mount DECE MOUN_POINT
    mount:通过查看/ect/mtab(文章最后会对/ect/mtab有个解释)文件显示当前系统已挂载的所有设备。
    
 命令使用格式:mount [-fnrsvw][-t vfstype][-o options] device dir
 device :指明要挂载的设备;
 (1)设备文件:例如/dev/sda5
 (2)卷标:-L 'LABEL',例如 -LMYDATA
 (3)UUID-U 'UUID':例如, -U0C5050-4313
 (4)伪文件系统名称:proc,sysfs,devtmpfs,configfs
 
 dir:挂载点
 
     事先存在;建议使用空目录:
     进程正在使用中的设备无法被卸载;
常用命令选项:
-t sftype:指定要挂在的设备上的文件系统类型。
-r:readonly,只读挂载;
-w:read and write,读写挂载;
-n:不更新/etc/mtab;
-a:自动挂载所有支持自动挂载的设备;(定义在/etc/fstab文件中,且挂载选项中有自动挂载的功能。)
-L 'LABEL':以卷标指定挂载设备;
-U 'UUID':UUID指定要挂载的设备;
-B,--bind:绑定到另一个目录上。
 
 
 事先存在;建议使用空目录。
     进程正在使用中的设备无法被卸载:
     
常用命令选项:
-t vsftype:指定要挂载的设备上的文件系统。
-r readonly,只读挂载
-w red and write:读写挂载
-n 不更新/etc/mtab;
-a 自动挂载所有支持自动挂载的设备;(定义在了/etc/fstab文件中,且挂载中有“自动挂载”功能。)
-L 'LABEL':以卷标指定挂载设备;
-U 'UUID'
 
 
 UUID:含义是通用唯一识别码(Universally Unique Identifier),这是一个软件构建的标准。
-o options:(挂载文件系统的选项)
async:异步模式
sync:同步模式
atimee/noatime:包含目录和文件;
diratime/nodiratime:目录的访问时间戳。
auto/noauto:是否支持自动挂载
exec/noexec:是否支持将文件系统上应用程序运行为进程。
dev/nodev:是否支持在此文件系统上使用特殊权限。
remount:重新挂载
ro:只读
rw:只写
user/nouser:是否允许普通用户挂载此设备。
acl:启用此文件系统上的acl功能。
注意:上述选项可多个同时使用,彼此使用逗号分隔。
默认挂载选项:
defaults:rw,suid,dev,exec,auto,nouser,and async
上述信息可以通过查看超级块信息看到,这里不再对其进行演示。



命令演示:
1.指定文件系统将块设备挂载至指定空万恶文件夹内:演示内容:1)没有指定文件系统,命令是否能正确执行;2)指定错误文件系统,命令是否能正确执行;3)挂载点有内容的文件夹,查看被挂载后其内容是否消失。



https://blog.csdn.net/daydayup654/article/details/78788310



 
 
 
 

df命令

    用来检测Linux服务器的文件系统的磁盘空间占用情况。
    
    实例一:
    显示所有磁盘空间占用情况:
    df -ha[-a 显示所有]
    注意:tmpfs是一个不存在与实体硬盘上,而是驻在记忆里的特殊文件系统。其中一个副作用就是当你失去电源(或重新开机时),tmpfs上的一切内容就会消失。tmpfs驻守在内存里,它的速度极快。它的寻觅时间与驻守在硬盘上的一般文件系统根本不能相比。
    
    
    mount -t tmpfs tempfilesystem /mnt/tmpfs[手动挂载tmpfs文件系统]
    
    以inode模式显示磁盘使用情况。
    df -i
    
    显示指定磁盘:
    df -ht ext4
    
    
    列出文件系统的类型:
    df -h
    
    [root@EM335X /bin]#df -ha
Filesystem                Size      Used Available Use% Mounted on
ubi0:rootfs              98.8M     52.8M     46.0M  53% /
devtmpfs                121.2M      4.0K    121.2M   0% /dev
proc                         0         0         0   0% /proc
sysfs                        0         0         0   0% /sys
tmpfs                   121.4M         0    121.4M   0% /tmp
tmpfs                   121.4M      4.0K    121.4M   0% /var
devpts                       0         0         0   0% /dev/pts
/dev/sda1                14.7G    735.9M     14.0G   5% /mnt/usb1
ubi1_0                  111.2M     20.0K    106.5M   0% /mnt/nandflash


dd命令

dd命令用于读取、转换并输出数据。
dd可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

dd的流程: 读取 -->格式 -->输出

参数说明:
 if=文件名:输入文件名,缺省为标准输入。即指定源文件。
 of=文件名:输出文件名,缺省为标准输出。即制定目的文件。
 ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
 obs=bytes:一次输出bytes个字节,即指定一个块大小为butes个字节
 cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
 skip=blocks:从输入文件开头跳过blocks个块后开始复制。
 count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
 
 conv=<关键字>,关键字可以有以下11种:
   conversion:用于指定的参数转换文件
   ascii:转换ebs dic为ascii
   ebsdic:转换ascii为ebc dic
   ibm:转换ascii为altermate ebc dic
   block:把每一行转换为长度为cbs,不足部分用空格填充
   unblock:把每一行的长度都为cbs,不足部分用空格填充
   lcase:把大写字符转换为小写字符。
   ucase:把小写字符转化为大写字符。
   swab:交换输入的每对字节。
   noerror:出错时不停止
   notrunc:不截短输出文件。
   sysnc:将每个输入块填充到libs个字节,不足部分用空(NUL)字符补齐。
 
 
 
 实例:
    在linux下制作启动盘,可使用如下命令:
    dd if=boot.img of=/dev/fd0 bs=1440k
    将testfile文件中的所有英文字母转阿虎为大写,然后转化成testfile_1文件,在命令提示符中使用如下命令:
    dd if=testfile2 of=testfile_1 conv=ucase
    
    其中testfile_2的内容为:
    
 




ip

使用ip命令显示不同网络接口的统计数据:

[root@EM335X /mnt/usb1/test]#ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0      
2: can1@NONE: <NOARP,ECHO> mtu 16 qdisc noop state DOWN mode DEFAULT qlen 10
    link/can 
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0      
3: can0@NONE: <NOARP,ECHO> mtu 16 qdisc noop state DOWN mode DEFAULT qlen 10
    link/can 
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0      
4: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
    link/ether c8:df:84:9b:7b:d3 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0      
5: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
    link/ether c8:df:84:9b:7b:d5 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0      

ip

查看所有ip的连接状态:
ip addr show

ip link set eth0 down

ip link set eth0 up



mountpoint查看一个目录是不是挂载点。

    mountpoint [-q][-d] /path/to/directory
    mountpoint -x /dev/device
    
    [功能]
    查看一个目录是不是挂载点。
    
    [描述]
    mountpoint查看一个目录是不是挂载点
    选项如下:
    -q 安静模式,不会打印任何东西。
    -d 在标准输出上打印文件系统的主/次设备号。
    -x 在标准设备上打印块设备的主/次设备号。
    
    如果挂载点返回0,如果不是就返回非0[举例]
    *查看/mnt目录是不是挂载点;
    $mountpoint /mnt
    输入之后,输出如下:
    /mnt is a mountpoint
    这里,我在/mnt目录下面挂载了一些东西。
    
    
注意:    
[root@EM335X /mnt/usb1]#mountpoint /mnt
/mnt is not a mountpoint
[root@EM335X /mnt/usb1]#mountpoint /dev/sda
/dev/sda   /dev/sda1
[root@EM335X /mnt/usb1]#mountpoint /dev/sda1
mountpoint: /dev/sda1: Not a directory
[root@EM335X /mnt/usb1]#mountpoint /dev     
/dev is a mountpoint
    
首先:挂载点是一个文件夹,我们挂载点的设备文件目录,而不是我们映射到的文件夹。


linux中如何建立挂载点/mnt/usb
1.首先usb这个目录自己创建
    mkdir /mnt/usb
2.mount /dev/设备文件(要挂载的设备文件) /mnt/usb(挂载点)
[root@EM335X /]#mount /dev/sda1 /mnt/usb3


[root@EM335X /mnt/usb1]#mountpoint /mnt/usb1
/mnt/usb1 is a mountpoint
[root@EM335X /mnt/usb1]#mountpoint /mnt/usb2
/mnt/usb2 is not a mountpoint
[root@EM335X /mnt/usb1]#mountpoint /mnt/usb3
/mnt/usb3 is a mountpoint

    
    
    

mount

通俗来说,挂载就是将一个磁盘分区或者一个文件和一个目录绑定在一起,

比如挂载一个磁盘分区:
mount /dev/sda1 /mnt
解释:mount就是挂载命令,/dev/sd1就是要挂载的磁盘分区,/mnt是要绑定的目录。

挂载后就能到目录/mnt去访问磁盘分区/dev/sda1里面的资料了。
比如挂载一个ISO文件:
mount -o loop myfile.iso /mnt/iso
一个文件不能有几个挂载点,会提示设备忙碌。



如何卸载一个挂载点

我们可以通过rm -r /mnt/usb3
将挂载点进行删除,即可不使用多余的u盘挂载点。

linux加载insmod和卸载rmmod驱动。

    假设要加载的驱动模块名称为1.ko
    
    方法一:
    insmod 1.ko 即可安装
    
    方法二:
    rmmod <module_name>
    注意:其中,module_name:显示的是模块名称,而不是对应的ko文件名。
    

读取鼠标设备坐标,以十六进制输出。

[root@EM335X /]#cat /dev/input/mice | hexdump  
0000000 0208 0800 0106 0a08 0803 030e 1108 0802
0000010 0112 1308 0800 0012 1108 0800 0011 1008
0000020 0800 000e 0b08 0800 0009 0808 0800 0107
0000030 0608 0801 0106 0508 0801 0105 0508 0801
0000040 0003 0208 0800 0001 0028 28ff fe00 0028
0000050 28fc fc00 0028 28fe ff00 0028 28ff ff00
0000060 0028 28ff ff00 0028 28ff fe00 ff38 38fe
0000070 feff 0028 28fe ff00 0008 0801 0200 0008
0000080 0805 0701 0108 0808 0a01 0108 0809 0701
0000090 0208 0806 0602 0208 0805 0402 0208 0804
00000a0 0302 0308 0803 0404 0608 0804 0407 0808
00000b0 0805 040a 0a08 0804 040a 0a08 0803 0307
00000c0 0408 0801 0003 0108 0800 0100 0108 0801
00000d0 0002 0208 0800 0102 0108 2801 ff00 0028
00000e0 28fd fc00 0028 28fc fb00 0028 28fb fd00
00000f0 0028 28fd fc01 0128 28fc fc00 0128 28fc
0000100 fc01 0128 28fb fb01 0028 28fc fd00 0028
0000110 28fd fd00 0028 28fe fe00 0028 28fd fd00
0000120 0128 28fe fe01 0028 28fe ff00 0028 28ff
0000130 ff00 0028 28ff fd00 0128 28f9 f602 0228
0000140 28f5 f402 0228 28f5 f701 0128 28f9 fc01

virtual box如何建立共享文件夹

1.在virtual box设置中,添加windows下的文件夹,假如为sharing

2.在虚拟机的ubuntu中/mnt/目录下新建sharing目录
cd /mnt
sudo mkdir sharing


3.接下来我们建立两个系统之间的共享文件的联系。

需要安装相应的增强功能。

之后,我们用root用户权限执行下面命令。

sudo mount -t vboxsf sharing /mnt/sharing

  • 技术交流可加入群聊:
qq1:498339061
qq2:875479019 
原创文章 59 获赞 39 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_28174951/article/details/106108791