Linux常用命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令相关的知识,希望对你有一定的参考价值。

参考技术A 列出当前目录的文件

常用参数: 

-a: 显示当前目录的所有文件,包含隐藏文件; 

-l: 显示文件详情; 

-Z: 显示文件的 SE Linux context。 

示例:ls -laZ [if !vml] [endif] 以 acct 为例: drwxr-xr-x:其中 d 代表该文件为目录,若为 l 则为软链接,软连接后又箭头代表其实际指向的文件,如etc -> /system/etc 则访问 etc 实际等同访问/system/etc,留空则代表该文件为一个文件;rwxr-xr-x 代表其权限为 755,具体算法为将上述字段每 3 个分为 1 组得 rwx,r-x,r-x,凡是有字母标记的皆计数 1,反之为 0,得二进制 111,101,101,转为 10 进制数字即得7, 5,5 ,即为该文件权限; root root :依次代表该文件的所有者(owner)为 root,用户组(group)为 root,上述属性可通过 chown 命令修改,日常替换文件需与原文件该属性维持一致; unlabeled:代表 SE Linux context。

前往指定目录

更改文件所有者和用户组   示例:chown root:root temfile 将 tmpfile文件 的所有者和用户组从 meidia:media 更改为 root:root

将文件内容显示出来。

注意不要随便去 cat 一个很大的文件或与 log 驱动节点无关的文件,否则将造成串口输出乱码或死机!!!示例:cat /proc/kmsg 将打印出所有 kernel log。

用于抓取 android logcat 打印。

常用参数:

-v : 设置打印格式,可用选项为 brief process tag thread raw time threadtime long,我们比较常用 logcat -v time,此时抓的 log 将在每一行开头添加时间信息;

-s : 设置过滤器,过滤器的选择取决于软件中打印 log 时使用的 TAG ,如

ActivityManagerService.java 中的打印使用的 TAG = ActivityManager,则抓相关打印方法为 logcat -s ActivityManager;

-c : 清除 log 缓存,常用于清除之前的打印缓存,如复现某个必现问题,则可先执行 logcat -c 再抓 logcat 重现必现手法以排除无关 log 冗余信息影响问题定位; pm

包管理命令,用于管理安卓 app 应用。

常用参数:

-l : 显示所有安装包应用,等同于 pm list packages

以 package:/system/priv-app/Launcher2.apk=com.android.launcher 为例:

Apk Launcher2 路径位于/system/priv-app/Launcher2.apk,其包名为 com.android.launcher

path : 根据报名返回所在 apk 路径

install : 安装 apk

-r :安装一个已经存在的 apk 并保留其数据;

-d : 允许降级安装

如:pm install -r xxx.apk

uninstall : 卸载 apk,命令仅支持卸载 data/app,后接包名;

如:pm uninstall com.sys.migusmartlink.ott.tv //卸载包名为 com.sys.migusmartlink.ott.tv 的 apk

随机测试指令,会自动模拟一些用户操作对 APP 进行压力测试。

常用参数:

-p :指定启动的 APK,我们比较常用的是 monkey -p com.xxx.yyy 1 来启动一个 apk 的随机页面。

用于启动和管理 activity 和 service

常用参数:

start : 后接 intent 启动一个页面;

startservice : 后接 intent 启动一个 service; stopservice :后接 intent 停止一个 service; broadcast :后接一个 intent 发送一个广播; kill :后接一个 app 包名,杀掉该 app 所有进程;在 shell 环境下用如下参数表述一个 intent:

[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]

[-c <CATEGORY> [-c <CATEGORY>] ...]

[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]

[--esn <EXTRA_KEY> ...]

[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]

[--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]

[--el <EXTRA_KEY> <EXTRA_LONG_VALUE> ...]

[--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE> ...]

[--eu <EXTRA_KEY> <EXTRA_URI_VALUE> ...]

[--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>]

[--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]

[--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]

[--efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]]

[-n <COMPONENT>] [-f <FLAGS>]

示例:

如我们在 logcat 抓到如下打印启动了播放器:

START u0 act=android.intent.action.VIEW dat=file:///storage/external_storage/sda1/[4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 typ=video/* flg=0x13000000 cmp=com.meson.videoplayer/.VideoPlayer from pid 15204

则我们可以使用如下 am 指令来启动它:

am start -a android.intent.action.VIEW -d file:///storage/external_storage/sda1/[4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 -t video/* -f 0x13000000 -n com.meson.videoplayer/.VideoPlayer am start -n com.android.settings/.Settings //启动原生安卓设置主页

am broadcast -a com.chinamobile.action.KEY_PRESS_DOWN --ei keyCode 11 && am broadcast -a com.chinamobile.action.IR_TEST --es irphycode "0x008EDD22" //发送广播

查找命令,查找文件中是否包含指定字符串并输出该行示例:

grep -rns "repeat" /system/etc/remote1.conf //找出/system/etc/remote1.conf 所有包含 repeat 的行并展示行号

参数说明:

-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。

-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。

-f:覆盖已经存在的目标文件而不给出提示。

-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。

-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

-l:不复制文件,只是生成链接文件。

命令示例:cp -a a  parentPath/sonPath/ a对应当前文件夹下目录或文件名  可替换为绝对路径 

移动指令,等效于 windows 的移动和重命名。

示例:

mv /data/tmp1 /data/local/tmp2 //将 data/tmp1移动到/data/local/ 并重命名为 tmp2

删除指令,用于删除文件和文件夹,示例:

rm -rf tmp // 删除 tmp,建议加上-rf参数,其会删除 tmp 所有的目录和文件。

创建目录。常用参数:

-p :若 mkdir -p 后接路径包含不存在路径则一并创建。

同步命令,常用于 cp 替换文件或指令结束后同步状态,有益无害。

重定向,即将一个命令的输出指向另外路径的文件,使用覆盖模式,即重定向到的文件若存在将覆盖里面的内容。

示例:

logcat > /data/xxx.log; //将 logcat输出到/data/xxx.log;

cat /proc/kmsg > /data/kmsg.log; //将 kmsg 打印输出重定向到/data/kmsg.log

重定向,即将一个命令的输出指向另外路径的文件,使用拼接模式,即重定向到的文件若存在则将输出拼接到原文件的后面。

示例:

logcat > >/data/xxx.log; //例如我们做 netreboot的时候需要每一次开关机的 log,则会用拼接模式记录log。

将指令放至后台静默执行。

依次执行指令,若有指令执行失败,则后续指令不会执行。

示例:

logcat -c && logcat //先清除 logcat 缓存再抓取 log

Linux常用基本命令大全介绍

参考技术A

  学习Linux系统,命令是最基础的一部分,有着很重要的地位,所以入门必须掌握好常用命令。下面由我为大家整理了Linux系统常用的基本命令入门篇,希望对大家有帮助!

  Linux系统常用的基本命令入门篇一、基础命令

  1.Linu x的进 入与退出系统

  进入Linux系统:

  必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号:

  1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。

  2.普通用户--这个帐号供普通用户使用,可以进行有限的操作。

  一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作。如果只需要完成一些由普通帐号就能完成的任务,建议不要使用超级用户帐号,以免无意中破坏系统。影响系统的正常运行。

  用户登录分两步:第一步,输入用户的登录名,系统根据该登录名识别用户;第二步,输入用户的口令,该口令是用户自己设置的一个字符串,对其他用户是保密的,是在登录时系统用来辨别真假用户的关键字。

  当用户正确地输入用户名和口令后,就能合法地进入系统。屏幕显示:

  [root@loclhost/root] #

  这时就可以对系统做各种操作了。注意超级用户的提示符是&ldquo;#&rdquo;,其他用户的提示符是&ldquo;$&rdquo;。

  2.修改口令

  为了更好的保护用户帐号的安全,Linux允许用户随时修改自己的口令,修改口令的命令是passwd,它将提示用户输入旧口令和新口令,之后还要求用户再次确认新口令,以避免用户无意中按错键。如果用户忘记了口令,可以向系统管理员申请为自己重新设置一个。

  3.虚拟控制台

  Linux是一个真正的多用户 操作系统 ,它可以同时接受多个用户登录。Linux还允许一个用户进行多次登录,这是因为Linux和UNIX一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台进行多次登录。虚拟控制台的选择可以通过按下Alt键和一个功能键来实现,通常使用F1-F6例如,用户登录后,按一下Alt-F2键,用户又可以看到"login:"提示符,说明用户看到了第二个虚拟控制台。然后只需按Alt-F1键,就可以回到第一个虚拟控制台。 一个新安装的Linux系统默认允许用户使用Alt-F1到Alt-F6键来访问前六个虚拟控制台。虚拟控制台可使用户同时在多个控制台上工作,真正体现Linux系统多用户的特性。用户可以在某一虚拟控制台上进行的工作尚未结束时,切换到另一虚拟控制台开始另一项工作。

  退出系统

  不论是超级用户,还是普通用户,需要退出系统时,在shell提示符下,键入exit命令即可。

  4.查看命令帮助信息

  man命令

  man命令用于查询命令和程序的使用 方法 和参数。

  例如:

  man ls

  将显示ls命令的基本格式和使用方法

  Linux系统常用的基本命令入门篇二、关机重启命令

  首先,是关机/重启命令,仅在虚拟机时使用,实际工作中用不到

  reboot 一般不跟参数使用,输入指令即可重启

  shutdown 一般需要跟参数,例:

  shutdown -r 延时多少分钟重启,一般使用now

  shutdown -r now 立即重启

  shutdown -f 强制重启

  跟windows一样,linux也存在注销功能

  exit

  1)halt

  halt 可不接参数

  halt -f 强制关机

  2)poweroff

  poweroff 可不接参数使用

  poweroff -f 强制关机

  3)init 0

  4)shutdown 不可单独使用

  shutdown -h 分钟数 延时多久关机

  shutdown -h now 立即关机

  Linux系统常用的基本命令入门篇三、vi编辑

  vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。

  Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。

  vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。

  默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用&ldquo;esc&rdquo;键,从命令模式切换到编辑模式使用&ldquo;A&rdquo;、&ldquo;a&rdquo;、&ldquo;O&rdquo;、&ldquo;o&rdquo;、&ldquo;I&rdquo;、&ldquo;i&rdquo;键。

  vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号&ldquo;:&rdquo;开头输入。常用内置命令如下:

  1 Ctrl+u:向文件首翻半屏;

  2 Ctrl+d:向文件尾翻半屏;

  3 Ctrl+f:向文件尾翻一屏;

  4 Ctrl+b:向文件首翻一屏;

  5 Esc:从编辑模式切换到命令模式;

  6 ZZ:命令模式下保存当前文件所做的修改后退出vi;

  7 :行号:光标跳转到指定行的行首;

  8 :$:光标跳转到最后一行的行首;

  9 x或X:删除一个字符,x删除光标后的,而X删除光标前的;

  10 D:删除从当前光标到光标所在行尾的全部字符;

  11 dd:删除光标行正行内容;

  12 ndd:删除当前行及其后n-1行;

  13 nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;

  14 p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;

  15 P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;

  16 /字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;

  17 ?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;

  18 a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,&ldquo;s/&rdquo;表示进行替换操作;

  19 a:在当前字符后添加文本;

  20 A:在行末添加文本;

  21 i:在当前字符前插入文本;

  22 I:在行首插入文本;

  23 o:在当前行后面插入一空行;

  24 O:在当前行前面插入一空行;

  25 :wq:在命令模式下,执行存盘退出操作;

  26 :w:在命令模式下,执行存盘操作;

  27 :w!:在命令模式下,执行强制存盘操作;

  28 :q:在命令模式下,执行退出vi操作;

  29 :q!:在命令模式下,执行强制退出vi操作;

  30 :e文件名:在命令模式下,打开并编辑指定名称的文件;

  31 :n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;

  32 :f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;

  33 :set nu:在命令模式下,用于在最左端显示行号;

  34 :set nonu:在命令模式下,用于在最左端不显示行号;

  35 :1,3y 复制第一行到第三行

  36 :1,3d 删除第一行到第三行

  37 :1,3s/str/str_new/g 替换第一行到第三行中的字符串

  38 :1,3s/str/str_new 替换第一行到第三行中的字符串第一个字符

  39 :1,3 g/str /d 删除第一行到第三行中含有这个字符串的行

  Linux常用命令一、查询相关

  find

  按规则查找某个文件或文件夹,包括子目录

  find . -name '_sh' -- 以.sh结尾的文件

  find . -name '_hannel_ -- 包含channel字符的文件

  find . -name 'build_ -- 以build开头的文件

  find . -name 'abc??' -- abc后面有两个字符的文件

  grep

  查找内容包含指定的范本样式的文件,Global Regular Expression Print

  grep -n pattern files -- 规则 -n表示显示行号

  grep -n 'PostsActivity' AndroidManifest.xmlgrep -n '\\d' AndroidManifest.xmlgrep 'aapt' build-channel.xml -- 文件中包含字符串的所有地方

  grep -n 'aapt' build-channel.xml -- 文件中包含字符串的所有地方,并显示行号

  ps -e | grep java -- 所有java进程

  ps -e | grep -i qq --所有qq进程,不区分大小写

  find . -name '_hannel.xml' | xargs grep -n 'aapt' -- 在以channel.xml结尾的文件中查找包含&lsquo;aapt&rsquo;关键字的地方

  ls | grep 'channel' -- 包含channel关键字的文件

  which

  在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果

  which zipwhich grep

  Linux常用命令二、查看命令

  tail

  tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File]

  从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。

  tail -f test.log,循环查看文件内容,Ctrl+c来终止

  tail -n 5 test.log,显示文件最后5行内容

  tail -n +5 test.log,从第5行开始显示文件

  more

  more [-dlfpcsu] [-num] [+/ pattern] [+linenum] [file...]

  more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。

  more +3 test.log,显示文件中从第3行起的内容

  more -5 test.log,设定每屏显示行数

  ls -l | more -5,每页显示5个文件信息

  more +/day3 test.log,查找第一个出现"day3"字符串的行,并从该处前两行开始显示输出

  less

  less [options] [file...]

  与more命令一样,less命令也用来分屏显示文件的内容。但是二者存在差别:less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。

  less test.log,查看文件

  ps -ef | less,查看进程信息并通过less分页显示

  history | less,查看命令历史使用记录并通过less分页显示

  less test1.log test2.log,浏览多个文件,n和p切换文件

  watch

  watch [options] command

  每隔一段时间重复运行一个命令,默认间隔时间是2秒。要运行的命令直接传给shell(注意引用和转义特殊字符)。结果会展示为全屏模式,这样你可以很方便的观察改变

  watch -n 60 date,执行date命令每分钟一次,输入^C 退出

  watch -d ls -l,查看目录变化

  watch -d &rsquo;ls -l | fgrep joe&rsquo;,想找joe用户的文件

  watch -d 'ls -l|grep scf',监测当前目录中 scf' 的文件的变化

  watch -n 10 'cat /proc/loadavg',10秒一次输出系统的平均负载

  watch -n 1 -d netstat -ant,每隔一秒高亮显示网络链接数的变化

  watch -n 1 -d 'pstree | grep http',每隔一秒高亮显示http链接数的变化

  Linux常用命令三、文件相关

  vi

  vi file

  按i键,进入编辑模式

  按esc键,进入命令模式

  :w 保存文件但不退出vi

  :w file 将修改另外保存到file中,不退出vi

  :w! 强制保存,不推出vi

  :wq 保存文件并退出vi

  :wq! 强制保存文件,并退出vi

  q: 不保存文件,退出vi

  :q! 不保存文件,强制退出vi

  :e! 放弃所有修改,从上次保存文件开始再编辑

  chmod

  change mode,变更文件或目录的读、写、运行权限

  chmod [-cfvR] [--help] [--version] mode file...

  mode:权限设定字串,格式如下 : [ugoa...][[+-=][rw xX ]...][,...]

  u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是

  + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

  r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

  chmod也可以用数字来表示权限,语法为:chmod abc file,如chmod 777 file

  其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 r=4,w=2,x=1

  chmod 777 file,等同于 chmod a=rwx file

  chmod ug=rwx,o=x file,等同于 chmod 771 file

  chmod 4755 filename,可使此程序具有root的权限

  ls -l 可以查看列出当前用户的文件权限

  zip

  zip -r filename.zip filesdir

  zip -r test.zip ./_把当前所有文件压缩到test.zip

  zip -r test.zip test,把test文件所有文件及目录,要是到test.zip

  zip -d test.zip test.txt,删除压缩文件中test.txt文件

  zip -m test.zip ./test.txt,向压缩文件中test.zip中添加test.txt文件

  zip -r test.zip file1 file2 file3 filesdir,处理多个文件和目录,空格隔开

  unzip

  unzip zip-file,解压到当前目录

  unzip -d dst-dir zip-file,解压到指定的目录,-d后为指定目录

  unzip -n zip-file,不覆盖已经存在的文件,-n为不要覆盖原有的文件

  unzip -n -d dst-dir zip-file,解压到指定的目录,不覆盖已经原有的文件

  unzip -o -d dst-dir zip-file,-o不必先询问用户覆盖原有文件

  unzip -l zip-file,仅查看压缩文件内所包含的文件

  tar

  tar cvf test.tar test,把test下所有文件和目录做备份tar czvf test.tar.gz test,把test下所有文件和目录做备份并进行压缩tar xzvf test.tar.gz,把这个备份文件还原并解压缩tar tvf test.tar | more,查看备份文件的内容,并以分屏方式显示在 显示器 上

  tar czvf test.tar.gz test --exclude=test/svn,备份压缩并排除目录

  touch


以上是关于Linux常用命令的主要内容,如果未能解决你的问题,请参考以下文章

linux常用命令多少个

Linux第二章-Linux常用命令

Linux文本操作常用命令

:常用工具命令第23节:常用命令 - Linux命令

Linux常用命令

Linux部署项目常用命令