Linux下常见命令

=============挂载和登陆命令========================================

Mount:挂载命令。把存储介质指定成系统中的某个目录,比如挂载光驱mount /dev/cdrom把CDROM挂载,可在目录/mnt/cdrom下查看内容。同样可以挂载盘符,比如mount -t vfat /dev/uba1 /mnt,就可以切换到/mnt目录下查看内容。直接输入mount,会显示已经挂载的FS,按以下类型显示内容:文件系统名 挂载点 类型,比如:

rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0

umount:卸载命令,比如umount /dev/cdrom,或者是umount /mnt。
exit:退出终端命令。

shutdown:关闭linux系统,后面可加参数,比如shut down now。

reboot:重新启动linux。

halt:挂起系统,但没有关机。

chsh:改变登入系统的shell。

tty:显示终端机连接标准输入设备的文件名称。
=============文件处理命令========================================

ls:显示当前目录内容。加参数路径可以显示指定目录内容,/特定指根目录;加-l显示目录下文件的详细信息诸如权限,加-all显示最详细信息。加|more可分屏显示目录文件信息,enter跟进,shift+page up/down翻页。执行:ls -l /dev可以显示当前系统下所有加载的设备详细信息,包括主设备号和次设备号;如果有的文件看不到主次设备号,且最开始显示drw...,说明该文件是目录,进入该目录就可以显示属于该类的多个设备信息了。

最常用的ls -la说明如下:

drwxr-xr-x 3 wangpeng wangpeng 4096 2011-09-20 19:58 dummy

d代表目录,rwxrwxrwx代表9个权限设定;3代表文件个数;wangpeng wangpeng 代表用户 组;4096代表大小;接着是是文件建立时间;最后是文件名。显示当前文件夹下文件数量,用ls -lR|grep "-"|wc -l

du:显示特定文件大小。有的文件夹是很大的,可以用du -sk 目录名 ,显示详细的占空间大小。du -sh意义差不多,但是以整数单位显示占大小,更直观。

rm:删除目录或者文件。加参数-rf强制递归删除一个非空目录。比如说递归删除当前文件下的目标文件,用:

find . -name "*.o" | xargs rm -rf 。递归删除当前目录下的.svn目录,用find ./ -type d -name .svn | xargs rm -rf 。

cd:进入某个目录。加参数表示路径,/表示linux根目录;cd ~返回home下的用户目录;cd ..返回上层目录。

cp:拷贝命令。加参数表示待拷贝文件和目标目录。cp 1.txt usr/local/arm拷贝当前目录下的1.txt文件到目标目录。cp -r dir1 dir2用来拷贝目录,从dir1拷贝到dir2。

./:执行当前目录应用程序,后跟应用程序名做参数。

Cat: 查看一个文件的内容,后面直接接文件名;如果文件内容较长在屏幕上一滚而过,可执行cat 文件名|less来查看,上下键来移动。还可以查看LINUX内核版本,用cat /proc/version;查看内存信息,用cat /proc/meminfo;查看声卡信息,用cat /proc/asound/cards。还有个功能就是重定向,比如cat >文件名,就是将cat的输出重定向到>后面的文件中,并会覆盖文件;如果理解成广义重定向,cat **.wav >/dev/snd/dsp,或者cat **.wav > /dev/snd/audio,播放音频文件使能;cat /dev/snd/audio > 1.wav, 录音使能;cat /proc/asound/oss/sndstat查看oss配置信息;cat /proc/asound/version查看alsa版本。也可查看中断分配信息:cat /proc/interrupts;查看内核模块加载信息:cat /proc/modules;还可以查看UART的IO传输信息:cat /dev/ttySAC2验证是否通讯OK;cat /proc/uptime:显示系统的已运行时间和空闲时间,单位是秒。cat /proc/bootprof:查看开机过程以及每个过程的消耗时间。

more:类似cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示。

less:less命令的用法与more命令类似,也可以用来浏览超过一页的文件。所不同的是less命令除了可以按空格键向下显示文件外,还可以利用上下键来卷动文件。当要结束浏览时,只要在less命令的提示符“: ”下按Q键即可。
Mkdir:创建目录命令。如mkdir dirname,当前目录下创建由dirname命名的目录,或者创建已有目录路径下的下一级目录,不能一次创建多层目录。

diff:功能为逐行比较两个文本文件,列出其不同之处以怎样达到一致。比如:diff file1 file2,得到n1,n2 c n3,n4。其中n1n2是指第一个文件若干行,n3n4是指第二个文件若干行。中间的字母a指添加,d指删除,c指修改。

make menuconfig:图形界面配置系统内核参数。

mv:移动或者重命名文件或目录。mv name1 ppp,重命名name1为ppp;mv name1 /usr/ 将文件移动至目标目录下。

apt-get:用于自动查找安装软件,更新软件,一般需要root权限。所以格式是sudo apt-get install(安装),sudo apt-get remove(卸载),sudo apt-get upgrade(升级)。如果出现在编译使用时缺少XX文件,需要重新下载linux内核,使用apt-get install linux-source 。

find:查找文件。格式为:find . -name "*.java" ,其中.表示当前目录,-name表示以名字查找,*即是通配符。类似还有:find ../../kernel/ -name "*.c"。可以用它完成递归删除SVN目录的操作:find . -name "*.svn" -type d -print -exec rm -rf {} \; 此时会有No such file or directory 的打印,不用管即可。

grep:查找命令,包括库文件或者压缩文件的内容也可以查找。比如:find ./out/ -name '*.jar' | xargs grep 'AFDataCallback',意即查找包含该回调的Jar库。

fgrep:全局查找命令,比如特定的文本字符串,以在特定的目录下的所有文本中查找特定的字符串文本:fgrep "Unable to install hw params" external/alsa-lib/* -r。与grep功能相似。类似有命令:find ../../kernel/ -name "*.c" -exec grep -Hn "get_cust_alsps_hw" {} \;(分号一定要加,告诉-exec参数结束)
|:管道命令,通常是把管道左边命令的输出再当作管道右边的命令输入。

head:查看文件的前几行,比如查看文件的前五行head -5 /etc/passwd。

tail:查看文件的后几行,比如查看文件的后十行tail -10 /etc/passwd。

alsa_aplay:播放测试声音命令,alsa_aplay xxx.wav。

alsa_amixer:混音器信息和命令。

alsa_alsactl :ALSA控制。

arecord:加-l参数列出当前数字音频设备,加-L列出当前PCM设备。arecord -D 设备名 xxx.wav可录音。

ldd:ldd不是一个可执行程序,而只是一个shell脚本,ldd显示可执行模块的dependency的工作原理,其实质是通过ld-linux.so(elf动态库的装载器)来实现的。例如:$ ldd a.out,则会显示linux-gate.so.1=>(0xb802b000)等模块依赖信息。

ln:它的功能是为某一个文件在另外一个位置建立一个不同的链接,不必重复的占用磁盘空间。这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件。例如:ln -s /bin/less /usr/local/bin/less。这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s,它会在你选定的位置上生成一个和源文件大小相同的文件。它的用处:还在于如果你在一个新建的硬盘ubuntu系统上挂接了老的硬盘,又想用老硬盘的数据,如果老硬盘文件系统是/dev/sdb1,挂载在/media/d57949bf-2263-4ba3-a102-a25f8ffbf6c3下,用ln -s /home/liwei /media/d57949bf-2263-4ba3-a102-a25f8ffbf6c3/home/liwei (未验证)。

strace:跟踪程式执行时的系统调用和所接收的信号。比如:strace ./a.out

arm-linux-readelf:显示一个elf文件的相关信息。包括依赖库,编译机器等。格式为:arm-linux-readelf -option xxx。

touch:更新文件的访问时间和修改时间到当前系统时间。如:touch /root ,修改root目录下的每个文件的访问时间和修改时间到当前。也可以创建文件所用,比如touch test.cpp,创建一个CPP文本。

sed:查看某个打文件中的某些行。比如:sed -n '45,50p' kd_imgsensor_define.h ,就是查看某个文件中的45到50行。

echo:终端打印命令,也可当做输入,比如echo "hello world">readme.txt,创建一个带内容的文本文件。echo "git is cool">>readme.txt,在该文件末尾再添加一行内容。

=============系统管理命令========================================

Pwd:显示完整的当前工作目录。

Source:通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录,比如修改玩环境变量配置后,运行source ~/.bashrc。

ls dev:显示系统设备。

top:显示资源状况,类似于XP的资源管理器。

free:显示系统内存使用状况。

at:在某个约定的时间执行特定操作。

adduser:在home目录下添加一个用户,多用。一般不用useradd,用法:useradd zhangcheng ,奇怪的是添加的第一个目录是看不见的。

userdel:删除某个用户,userdel xxx

passwd:给用户目录添加密码。用法:passwd zhangcheng 。

groupadd:建立一个新群组。

unzip:解压缩zip文件。

gzip:将文件压缩成.gz文件。

gunzip:解压缩.gz文件。

last:列出过去与目前登入系统的用户相关信息。

lspci :用lspci -v查看硬件芯片组。

lsusb:显示系统USB总线设备信息。

depmod:分析可载入模块的相依性。比如:depmod -a,分析所有可用的模块。

lsmod:显示系统已经加载的模块信息。格式是模块名,模块大小,用户。

modinfo:显示具体某个模块信息。比如:modinfo 模块名,显示模块路径,GPL,配置等信息。

modprobe:显示所有模块的具体.ko或者.o文件所在的路径。比如:modprobe -l。也可载入模块,比insmod更强大。

uname:查看系统软硬件信息。用uname -r -m -p -i得到内核版本和处理器架构等信息。

insmod:加载模块,Linux有许多功能是通过模块的方式,在需要时才载入kernel。

rmmod:卸载模块。

rpm:它的功能类似于Windows里面的“添加/删除程序”,被广泛应用于在Linux下安装、删除软件。如:rpm -q modutils,查询系统中有没有modutils软件包。

df:硬盘空间使用状况,及挂载信息。比如:

Filesystem Size Used Free Blksize
/dev 482M 52K 481M 4096
/mnt/secure 482M 0K 482M 4096
/system 640M 364M 276M 4096
/data 1008M 122M 885M 4096
/cache 124M 4M 119M 4096
/storage/sdcard0 1G 846M 989M 16384
/mnt/secure/asec 1G 846M 989M 16384
/storage/sdcard1 120M 4M 116M 2048

从上图看出,可知道外置SD(120M)和内部划分的SD的挂载点究竟是什么。(很多APK操作T卡默认路径是sdcard0,按上述就会造成误操作,所以要进行SD SWAP)

mplayer:利用该工具包调试和使用声音。mplayer xxx.wav,会播放音频文件,显示当前音频所用设备。当然,也可以指定用OSS或者ALSA来播放,如:mplayer -ao alsa xxx.wav,用alsa音频组件来播放。

fdisk:显示分区信息,比如fdisk -l,显示挂载点、分区信息、ID号、系统类型。如果是IDE硬盘,设备名依次为:/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd等;如果是SCSI硬盘,则设备名依次为/dev/sda,/dev/sdb。比如如下信息(部分):

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 201099263 100548608 83 Linux
/dev/sda2 201101310 209713151 4305921 5 Extended
/dev/sda5 201101312 209713151 4305920 82 Linux swap / Solaris

dmesg:打印内核信息,有些打印语句是输出到内核而非终端。

lsof:显示打开文件的所有进程等。比如lsof abc.txt 显示开启文件abc.txt的进程。

tty:在Linux操作系统中,所有外围设备都有其名称与代号,这些名称代号以特殊文件的类型存放于/dev目录下。你可以执行tty指令查询目前使用的终端机的文件名称。例如:$tty,得/dev/pts/0。

set:显示系统全部环境变量。比如:

ANDROID_ASSETS=/system/app
ANDROID_BOOTLOGO=1
ANDROID_DATA=/data 。。。。。

PATH=/sbin:/system/sbin:/system/bin:/system/xbin

$PATH:显示系统的PATH值,相比set显示的内容要少很多。各个值之间用:分隔开,且不能换行。PATH=~/bin:$PATH,把新的路径并入PATH中。

file:显示文件的类型,用命令file 可以使你知道某个文件究竟是ELF格式的可执行文件,还是shell script文件或是其他的什么格式。例如:file busybox,显示busybox: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.14, stripped

tree:是Linux下列出目录树的小工具,它会列出指定目录下的所有文件,包括子目录里的文件。执行:tree /sys/bus/i2c/可以把I2C的适配器及设备相关信息列出。

pstree:显示当前系统的进程树,比较容易看出子进程和父进程的对应。

ps:则是当前运行进程的快照信息。包括用户号,进程号,时间,命令等。一般用ps -ef,也可以用ps aux。可以用它来快速索引运行的进程,比如:ps aux|grep ssh

uptime:显示系统运行时间信息。显示:17:12:47 up 1:38, 8 users, load average: 0.94, 0.51, 0.47。分别表示分别表示该指令启动时刻、状态、系统已运行总时间、用户数、过去1、5、15分钟的负载平衡。

sleep:使当前系统延迟操作一段时间。比如sleep 1延时一秒。参数为时间长度,后面可接s、m、h或d,其中s为秒,m为分钟,h 为小时,d 为日数。

dpkg:软件包管理命令。dpkg -l查看系统中所有已安装的软件包信息。如果要查看某个软件的安装信息,用dpkg -l|grep 文件名,如dpkg -l|grep libc6-dev。

whereis:whereis指令会在特定目录中查找符合条件的文件。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。如:whereis file-roller.

alias:自定指令的别名,如alias[别名]=[指令名称]。若仅输入alias,则可列出目前所有的别名设置。alias的效力仅及于该次登入的操作。

who:显示当前服务器上的全部登录用户及其信息。

w:显示当前服务器上的全部登录用户机操作信息,比who更详细。

startx:从命令界面进入linux图形界面。

su:用来在用户之间切换。比如su root,从其他账户切换到root账户。

date:修改系统时间和日期。设置系统日期为2008年9月9日 date -s 20080909;设置系统时间为14:25:49 date -s 14:25:49。

insmod:加载KO模块文件,用dmesg可以查看加载消息加载消息(如果有Printk的话)。

rmmod:移除KO模块文件。

locate:文件定位命令,快速定位某个文件在linux系统中的位置。比如:locate module.h 。

============网络操作命令========================================

service network restart:配置好网络服务后,重启。

ip:就是整合了 ifconfig 与 route 这两个指令。

ping:功能与XP一样。如果要其停下来,用ctrl+c。

netstat:netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。运行:netstat -an|grep 20000,查看端口号20000的状态,得到tcp 0 0 0.0.0.0:20000 0.0.0.0:* LISTEN 。

telnet:开启终端机阶段作业,并登入远端主机。

rlogin:remote login,开启终端机阶段作业,并登入远端主机。

ftp:登录ftp服务器。

route:显示当前系统路由表信息。

finger:显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。

mail:邮件信息。

w3m:终端登入文字版浏览器。

=============系统安全命令===================================

passwd:修改密码。

su:作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码。

sudo:是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。如:sudo echo 8 > /proc/sys/kernel/printk 想修改控制台的日志级别。

chmod:改变文件权限。比如chmod 777 cc,设置cc权限为777。第一位是文件所有者权限,第二位是群组权限,第三位是其它人权限。每位的权限值是读权限(4)与写权限(2)与执行权限(1)之和。如果是递归修改文件夹及其子目录的属性,用chmod -R 777 xxx。

chown:改变与文件关联的所有者和组。如chown jim:jim program.c,即program.c的用户访问权限和组权限都应用到jim;chown -R john:build /tmp/src,将/tmp/src目录下面所有文件关联到用户john,组build。

=============VI编辑器命令==================================

vi编辑器操作:
退出:按esc,按shift+:,q。其中,q!强制退出,wq保存后退出。
编辑:按i进入编辑状态,从光标前开始编辑;按a也是进入编辑状态,不过从光标后开始编辑。
查找:按esc退出编辑模式,执行“/单词”就可以查找要找的字符串,按N查找下一个。
复制:按esc退出编辑模式,要复制当前行,按yy;要复制n行,跳转光标到起始行,输入yny。
粘贴:复制后跳转光标到目标位置,按p。

删除字符:先按一下ESC键从编辑模式切转到命令行模式,按x键即可实现删除光标前一个字符,按X键删除光标后一个字符。

删除行:先按一下ESC键从编辑模式切转到命令行模式,按dd删除当前行。

移动光标:按ESC键退出编辑状态,再使用方向键。

文件起始:按esc退出编辑模式,按gg。

文件末尾:按esc退出编辑模式,按shift+g。

直接编辑行:如果在使用vi 命令时,在文件后面直接加上行号,光标就可以直接跳转到要编辑的位置。比如$ vi setlocalversion +148,就直接编辑文件的148行。

=============压缩与解压缩命令==========================

tar:解压命令。

.tar.gz
解压:tar zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName 把DirName的内容压缩成以FileName命名的压缩文档。

.tar.bz2
解压:tar jxvf FileName.tar.bz2

压缩:tar jcvf FileName.tar.bz2 DirName

.tar

解压:tar xvf FileName.tar

打包:tar cvf FileName.tar DirName 该命令起不了压缩作用

.tgz

解压:tar zxvf FileName.tgz

如果出现多个分离的带编号的压缩包,比如:

ALPS.xxx_INHOUSE.tar(20110410).gz00
ALPS.xxx_INHOUSE.tar(20110410).gz01
ALPS.xxx_INHOUSE.tar(20110410).gz02
ALPS.xxx_INHOUSE.tar(20110410).gz03
ALPS.xxx_INHOUSE.tar(20110410).gz04

那么解压命令是:cat ALPS.xxx_INHOUSE.tar(20110410).gz*|tar -zx

你可能感兴趣的:([Linux]菜鸟入门)