Linux常用命令

Linux常用命令,第1张

列出当前目录文件

常用参数: 

-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常用命令

1 文件与目录 *** 作命令

1.1文件内容查询命令

grep、fgrep、egrep

CODE:[Copy to clipboard]语法:grep[选项][查找模式][文件名1,文件名2,……]

选项:

QUOTE:

-E 每个模式作为一个扩展的正则表达式对待

-F 每个模式作为一组固定字符串对待,而不作为正则表达式

-i 比较时不区分大小写

-l 显示首次匹配匹配串所在的文件名并用换行符将其分开。当在文件中多次出现匹配串时,不重复显示次文件名;

-x 只显示整行严格匹配的行

1.2文件查找命令 find、locate

语法:

CODE:[Copy to clipboard]find 起始目录 寻找条件 *** 作

以名称和文件属性查找

QUOTE:

-name‘字串‘ 查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[]。

-lname‘字串‘ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、[]。

-gid n 查找属于ID号为n的用户组的所有文件。

-uid n 查找属于ID号为n的用户的所有文件。

-group‘字串‘ 查找属于用户组名为所给字串的所有的文件。

-user‘字串‘ 查找属于用户名为所给字串的所有的文件。

-path‘字串‘ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[]。

-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711、644。

-type x 查找类型为 x的文件,

语法:locate 相关字

1.3文件的复制、删除和移动命令

文件复制命令

CODE:[Copy to clipboard]cp [选项] 源文件或目录 目标文件或目录

选项:

QUOTE:

- a 通常在拷贝目录时使用

-d 拷贝时保留连接

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

-i 和f选项相反

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

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

-l 不作拷贝,只是链接文件

文件移动命令

CODE:[Copy to clipboard]mv[选项] 源文件或目录 目标文件或目录

QUOTE:

-i 交互式 *** 作

-f 禁止交互式 *** 作

文件删除命令

CODE:[Copy to clipboard]rm[选项] 文件…

QUOTE:

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

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

-i 进行交互式删除

1.4文件链接命令

CODE:[Copy to clipboard]ln [选项] 目标 [链接名] 或 ln [选项] 目标 目录

QUOTE:

选项:

- s 建立符号链接

1.5目录的创建和删除命令

mkdir 创建一个目录

语法:

CODE:[Copy to clipboard]mkdir [选项] dirname

选项:

- m 对新建目录设置存取权限

-p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。

rmdir 删除空目录

语法:

CODE:[Copy to clipboard]rmdir [选项] dirname

QUOTE:

选项:

- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。

1.6改变工作目录,显示目录内容命令

1、改变工作目录:

CODE:[Copy to clipboard]cd [directory]

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

CODE:[Copy to clipboard]pwd

3、显示目录内容:

CODE:[Copy to clipboard]ls [选项] [目录或是文件]

QUOTE:

选项:

- a 显示指定目录下所有子目录与文件,包括隐藏文件;

-c 按照文件的修改时间排序

-C 分成多列显示各项

-d 如果参数是目录,只显示其名称而不显示其下的个文件

-F 在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记“@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。

-l 以长格式来显示文件的详细信息

-L 若指定的名称为一个符号链接,则显示链接所指向的文件

-t 显示时按修改时间而不是名字排序

-u 显示时按文件上次存取的时间而不是名字排序

4、改变文件或目录的访问权限命令

CODE:[Copy to clipboard]chmod [who] [+| - | = ] [mode] 文件名?

QUOTE:

Who选项:

- u表示用户,即文件和目录的所有者

-g表示同组用户

-o(other)表示其他用户

-a (all)表示所有用户

QUOTE:

*** 作符号:

+ 添加某个权限 - 取消某个权限

= 赋予给定权限并取消其他所有的权限(如果有的话)

QUOTE:

mode 选项:

- r 可读

-w 可写

-x 可执行

CODE:[Copy to clipboard]chgrp [-R] group filename? 改变目录或文件所属的组

CODE:[Copy to clipboard]chown [-Rv] 用户或组 文件

1.7备份与压缩命令

1、tar命令 为文件和目录创建档案

语法:

CODE:[Copy to clipboard]tar [主选项+辅助选项] 文件或者目录

QUOTE:

u 主选项

c 创建新的档案文件。如果用户想备份一个目录或是一些文件,则选此项

r 把要存档的文件追加到档案文件的末尾

t 列出档案文件的内容,查看已经备份了哪些文件;

u 更新文件

x 从档案文件中释放文件;

u 辅助选项

b 该选项为磁带机设定的,其后跟一位数字,用来说明区块的大小,系统预设值为20

f 使用档案文件或设备,这个选项通常是必选的

k 保存已经存在的文件。例如把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖;

m 在还原文件时,把所有文件的修改时间设定为现在;

M 创建多卷的档案文件,以便在几个磁盘中存放;

v 详细报告tar处理的文件信息

w 每一步都要求确认

z 用gzip来压缩/解压缩文件

2、gzip命令 压缩/解压缩命令

语法:

CODE:[Copy to clipboard]gzip [选项] 压缩(解压缩)的文件名

QUOTE:

选项:

-c 将输出写到标准输出上,并保留原有文件

-d 将压缩文件解压

-l 显示每个压缩文件的详细信息

-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩

-t 测试、检查压缩文件是否完整

-v 对每一个压缩和解压的文件,显示文件名和压缩比

3、unzip 命令

用MS windows下的压缩软件winzip压缩的文件在linux系统下展开

语法:

CODE:[Copy to clipboard]unzip [选项] 压缩文件名.zip

QUOTE:

选项:

-x 文件列表 解压缩文件,但不包括指定的file文件

-v 查看压缩文件目录,但不解压

-t 测试文件有无损坏 ,但不解压

-d 目录 将压缩文件解到指定目录下

-z 只显示压缩文件的注解

-n 不覆盖已经存在的文件

-o 覆盖已经存在的文件且不要求用户确认

-j 不重建文档的目录结构,把所有文件解压到同一目录下

1.8在LINUX环境下运行DOS命令

linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读写文件和目录。

QUOTE:

mcd 目录名 改变MSDOS目录

mcopy 源文件 目标文件 在MSDOS和UNIX之间复制文件;

mdel 目录名 删除MSDOS目录

mdir 目录名 显示MSDOS目录

mformat 驱动器号 在低级格式化的软盘上创建MSDOS文件系统

rnlabel 驱动器号 产生MSDOS卷标

mmd 目录名 删除MSDOS目录

mren 源文件 目标文件 重新命名已存在的MSDOS文件

mtype 文件名 显示MSDOS文件的内容

2 设备管理命令

1)linux采用下面的形式定义一个IDE硬盘:

CODE:[Copy to clipboard]/dev/hd[drive][partition]

2)SCSI硬盘使用同样的机制表示:

CODE:[Copy to clipboard]/dev/sd[drive][partition]

3)对于一般的LINUX分区,可以用mkfs将其格式化并生成文件系统,命令如下:

CODE:[Copy to clipboard]mk2fs –c <partition><size>

4)装载文件系统:

CODE:[Copy to clipboard]mount –t ext2 [-o optioms] partition mountpiont

其中,

QUOTE:

-t为指定装载文件系统的类型;

-o指定一些选项,如只读ro,可读可写rw等等;

partition定义分区名称;

mountpiont定义文件系统被装载的目录名称。

5)装载CD-ROM文件系统:

CODE:[Copy to clipboard]mount –t iso9660 –r /dev/cdrom /mnt/cdrom

6)装载软驱文件系统:

CODE:[Copy to clipboard]mount –t msdos –rw /dev/fd0 /dev/mnt/floppy

7)卸载文件系统

CODE:[Copy to clipboard]umount /mnt/cdrom

磁带设备的安装要注意以下几点:

QUOTE:

1、 首先要选择一个唯一的SCSI ID号,然后再将设备链接到适当的位置

2、 选择驱动程序。

3、 生成设备文件。SCSI磁带设备的主要设备号是9,次要设备号是0。设备文件名通常是/dev/nrst0(不支持回绕的磁带设备)或/dev/nst0(支持回绕的磁带设备)

用 ls /dev/*rst*

检查磁带设备文件是否存在,如果不存在,用

mknod –m 666 /dev/nrst0 c 9 9

mknod –m 666 /dev/rst0 c 9 0 生成

4、 可以对块长度、缓存、磁带密度等参数进行一些设置,例如

mt setblk 20 将块长度指定为20

mt setblk 0 指定块程度没有限制

5、 通过检查系统的启动信息可以确定系统是否识别了新的磁带设备。用dmesg命令,查看是否有以下类似的信息:

aha274x:target 4now synchronous at 4.4Mb/s

Vendor:TANDBERG Model:TDC 3800 Rev: =05:

Type: Sequential-Access ANSI SCSI revision: 02

Detected scsi tape st0 at scsi0, id4, lun0

Scsi : detected 1 SCSI tape 1 SCSI crom 1 SCSI disk total

3 软件包管理命令

3.1软件安装的步骤

在LINUX系统上安装软件的步骤有:

QUOTE:

1、 查找所要安装软件的源文件

2、 把源文件解开放到一个目录中,命令如下:

tar zxvf <源文件名>

3、 针对本 *** 作系统配置源文件。可以是编辑make文件或其他文件,也可能是运行该软件自带的自动配置工具,如./configure

4、 make源文件,通常是运行make命令,即执行 make

5、 安装二进制文件和其他支撑文件,运行命令: make install

6、 最后,完成所有其他必须的配置

3.2软件包管理命令

QUOTE:

rpm –ivh <软件包>

安装指定的软件包,并在安装过程中用#表示安装的进度

rpm –Uvh <软件包>

更新一个已经存在的或还没安装好的软件包,并删除所有该软件包的旧版本。

rpm –e

卸载一个rpm软件包

rpm –qa

查看系统中已经安装的软件包

rpm –q <软件包>

查看系统中某个软件包的版本号;

rpm –qlp <软件包>

列出某个软件包中的所有文件

rpm –qf <软件包>

找出一个文件属于哪个软件包

4 LINUX系统常用命令

4.1 与系统管理有关的命令

Wall (Write All)

QUOTE:

对全部已 登录的用户发送信息,用户可以先反要发送的信息写好存入一个文件中,然后输入:

# wall <FileName

例:Wall ‘Thank you !’

Write

向某一用户发送信息。

Write xxq

hello

输入Ctrl+C组合即可终止

Shutdown命令

CODE:[Copy to clipboard]Shutdown [选项] [时间] [警告信息]

QUOTE:

-k 并不真正关机,而只是发出警告信息给所有的用户。

-r 关机后立即重新启动。

-h 关机后不重新启动。

-f 快速关机,启动时跳过fsck。

-n快速关机,不经过init程序。

-c 取消一个已经运行的shutdown

例:系统马上关机:Shutdown –h now

Free命令

查看当前系统内存的使用情况,

CODE:[Copy to clipboard]Free [-b] [-k] [-m]

CODE:[Copy to clipboard]-b 以字节为单位显示。

-k 以K字节为单位显示。

-m 以M字节为单位显示。

Uptime

QUOTE:

显示系统已经运行了多长的时间:现在时间、系统已经运行的时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。

4.2与用户有关的命令

Passwd命令

设置、更换用户口令。

CODE:[Copy to clipboard]Passwd [用户名]

Su

使一个普通的用户具有超级用户的权利,离开可用EXIT命令。

4.3其它命令

Echo命令

在显示器上显示一段文字,一般起到一个提示的作用。

CODE:[Copy to clipboard]echo [-n] 字符串

Cal命令

显示某年某月的日历。

CODE:[Copy to clipboard]cal [选项] [月[年]]

QUOTE:

选项的含义:

-j 显示也给定月中的每一天是一年中的和几天(从1月1日算起)。

-y 显示也整年的日历。

Date命令

date命令的功能是显示和设置系统日期和时间。

4.4磁盘管理

磁盘空间管理

df命令

检查文件系统的磁盘空间占用局部。

CODE:[Copy to clipboard]Df [选项]

QUOTE:

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

-k 以K字节为单位显示。

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

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

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

-T 显示文件系统类型。

du命令

du的英文原意为disk usage,含义为显示磁盘空间的使用情况。功能是统计目录(或文件)所占磁盘空间的大小。

CODE:[Copy to clipboard]du [选项] [Names…]

QUOTE:

-s 对每人Names 参数只给也占用的数据块总数。

-a 递归地显示指定目录中各文件用子孙目录中的各文件占用的数据块总数。

-b 以字节为单位列也磁盘窨使用情部(缺省以K字节为单位)

-k 以1024字节为单位列也磁盘空间使用情况。

-c 最后再加上一个总计(系统缺省)

-l 计算所有的文件大小,对硬链接文件,则计算多次。

-x 跳过在不同文件系统上的目录不予统计。

dd命令

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

CODE:[Copy to clipboard]dd 〔选项〕

QUOTE:

if =输入文件(或设备名称)。

of =输出文件(或设备名称)。

ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。

skip = blocks 跳过读入缓冲区开头的ibs*blocks块。

obs = bytes 一次写入bytes字节,即写 入缓冲区的字节数。

bs = bytes 同时设置读/写缓冲区的字节数(等于设置obs和obs)。

cbs = bytes 一次转换bytes字节。

count = blocks 只拷贝输入的blocks块。

conv = ASCII 把EBCDIC码转换为ASCII码。

conv = ebcdic 把ASCII码转换为EBCDIC码。

conv = ibm 把ASCII码转换为alternate EBCDIC码。

conv = blick 把变动位转换成固定字符。

conv = ublock 把固定们转换成变动位

conv = ucase 把字母由小写变为大写。

conv = lcase 把字母由大写变为小写。

conv = notrunc 不截短输出文件。

conv = swab 交换每一对输入字节。

conv = noerror 出错时不停止处理。

conv = sync 把每个输入记录的大小都调到ibs的大小(用ibs填充)。

fdformat命令

低级格式化软盘。

CODE:[Copy to clipboard]format [-n] device

QUOTE:

-n 格式化后不做检验

4.5常用的网络命令

FTP命令

Tel命令。

Netstat命令

QUOTE:

-a 显示所有的scoket,包括正在监听和。

-c 每隔1秒就重新显示一遍,直到用户中断它。

-i 显示所有网络接口的信息,格式同”ifconfig –e”

-n 以网络IP地址代替名称,显示也网络连接情形。

-r 显示核心路由表,格式同”route –e:。

-t 显示TCP协议的连接情况。

-u 显示UDP协议的连接情况。

-v 显示正在进行的工作。

nslookup命令。

finger命令,功能是查询用户的信息。

ping命令。

(用户和组的管理可以使用工具:TurboUserCfg或是XturboUserCfg。)

4.6有关进程的命令。

进程和启动

CODE:[Copy to clipboard]at [-V] [-q] [-f文件名] [-mldbv]时间

at –c 作业 [作业….]

AT命令启动的进程系统只执行一次。

batch [-V] [-q 队列] [-f 文件名] [-mv] [时间]

在系统负载较小时,资源比较空闲时执行。

cron命令

按一定的时间间隔执行命令。

crontab命令

用于安装、删除或列出用于驱支cron后台进程的表格。

进程查看

CODE:[Copy to clipboard]who命令。

w命令

是一个比who命令更强大的命令

w –[husfV] [user]

-h 不显示标题。

-u 当列出当前进程和CPU时间时忽略用户名。

-s 使用短模式。不显示登录时间JCPU和PCPU时间。

-f 切换显示FROM项,也就是远程主机名项。

-V 显示版本信息。

user 只显示指定用户的情况。

ps命令。

-e 显示所有进程。

-f 全格式

-h 不显示标题。

-l 长格式。

-w 宽输出。

a 显示终端上所有进程,包括其他用户的进程。

r 只显示正在运行的进程。

x 显示没有控制终端的进程。

top 命令

动态显示系统当前的进程和其他状况。

5系统的启动过程。

5.1初始启动

在PC机启动时,BIOS从指定的启动设备中读入“主引导记录”(MBR)。MBR的格式是:

地址偏移量 内容 大小

+00 h 可执行的代码(启动模块) 可能变化

+1BE h 第一分区表项 16字节

+1CE h 第二分区表项 16字节

+1DE h 第三分区表项 16字节

+1EE h 第四分区表项 16字节

+1FE h 可执行的标记(AA55 h) 2字节

启动模块包含足以装入 *** 作系统的代码,或者是第二步的加载代码的位置。启动模块需要使用BIOS调用来从磁盘装入数据,而这些中断调用,如INT 13h等,限制了最大磁盘柱面号为1023。这也就是说启动模块需要加载的一切内容,如初始内存磁盘、内核、启动的时间信息等,必须存放在1024个柱面以内。

在MBR中只有四个分区表项,每个表项的格式如下:

地址偏移 内容 大小

+00h 分区状态:00代表非启动分区,80h代表启动分区 1字节

+01h 分区的起始位置 磁头 1字节

+02h 分区的起始位置 柱面和扇区 1字节

+04h 分区的类型 1字节

+05h 分区的结束位置 磁头 1字节

+06h 分区的结束位置 柱面和扇区 1字节

+08h 在主引导区和本分区的第一个扇区间的扇区数目 4字节

+0Ch 分区内的扇区数目 4字节

5.2 Linux的启动过程

1启动的命令行参数

在Linux启动时,它处理所有传递给它的命令行参数。这可以影响Linux的运行方式。命令行参数包括:

QUOTE:

mem=xxxM:定Linux可以使用的内存大小。这在用户的计算机系统有超过64MB的内存时才需要。因为从前的主板只对第一个64MB内存进行缓存,使用超过64MB的内存会使整个计算机的性能下降,所有内存均按无缓存的速度运行。

single:使Linux按单用户方式启动,缺省方式是多用户方式。

root=/dev/xxx:指定Linux要安装为根文件系统的设备。

init=<file>:指定作为初始化进程的文件。

initrd=<dev>:指定作为初始内存磁盘的设备。

ro:指定根文件系统为只读。

rw:指定根文件系统为可读可写。

2 Init进程

在内核初始化自身和找到的硬件设备后,在后台启动进程init(/ *** in/init),init进程号1运行。

在UNIX世界中有许多启动过程的版本,一些是基于系统V,一些是基于BSD。大多数Linux版本使用系统V的实现方法,在这里描述的就是这样。

init是由文件/etc/inittab内容和功能控制的,随启动模式是单用户或多用户而不同。

QUOTE:

单用户模式:init进程忽略/etc/inittab文件,在执行少数几个脚本程序后调用/dev/console shell。这样,用户就可以有了一个shell,而且可以执行一定限度的任务。

多用户模式:init进程把系统带入/etc/inittab文件指定的运行级别。Init通过标准的Linux方法进入一个指定的进行级别。

3.进行级别

Linux与其他UNIX *** 作系统一样,可以任何时刻处于任何一个运行级别。这些运行级别提供的功能不同,为主要是由于其运行的服务方程序(后台daemon)的不同造成的。Linux共有6种运行级别。

QUOTE:

0:关闭计算机或终止计算机运行,这个级别就是系统停止运行。

1:单用户启动级别,系统只有一个用户,就是root,该用户在控制台登录。

2:多用户运行级别,但无网络功能。在这个运行级别,网络功能没有启动,但是系统允许多个用户登录,可以通过虚拟控制台或串行线路。

3:多用户模式,有网络功能。在这个运行级别,所有标准网络服务均被启动。

4:目前没有实现。

5:X11运行级别,在这个运行级别,X服务器软件运行,提供图形界面的登录方式。

6:系统重新启动。

查询当前运行级别:runlevel;

4在启动过程中运行的脚本

在init进程运行时,它负责查看缺省的运行级别,并进入该运行级别。这是通过运行在/etc/rc.d/rcX.d目录下的脚本程序来实现的,其中X代表运行的级别,即一个运行级别对应一个目录。不同的字母开头的文件有不同的作用。其中:

以K开头的脚本程序是系统离开某个运行级别时执行的,作用是停止某种服务。当系统从某个支持级别变为其他级别时,首先要进行原运行级别所对应的所有K程序。

以S开头的脚本程序是系统进入某个运行级别时所执行的,作用是启动某种服务。当系统改变为某个运行级别时,就要运行新运行级别所对应的所有S程序。

5增加启动脚本程序

用户可能有一些特定的硬件设备要初始化,或需要在系统启动时初始化一些其他应用程序,用户可以增加自己的初始化脚本程序来完成这些工作。通常步骤是:

复制一个已经存在的脚本,这样可以得到一个通用的框架格式。

修改这个脚本,以完成自己的需求,要注意使程序可以处理启动和关闭的参数,尽管可能关闭处理什么也不需要干。

把这个肢本拷贝到/etc/rc.d/init.d目录下,命名为”serv”。

按下面的方法在相应的目录下建立运行控制链接:

CODE:[Copy to clipboard]ln –s ../init.d/serv/etc/rc.d/rc3.d/s99 serv

进行测试。

6 LILO和其他的启动模块

要启动Linux,启动模块是必须的。一般用于Linux的启动模块是LILO,LILO用自己的主引导区代替一般的主引导区。LILO可以通过修改/etc/lilo.conf文件内容来进行配置,对引导区内容的更新通过lilo命令来完成。

下面给也了一个装有DOS,TurboLinux3.4.0和RedHat 5.2系统的计算机的lilo.conf文件。在例子中的数字标号是用户加上去并要在文中详细解释的。

CODE:[Copy to clipboard]# more /etc/lilo.conf

boot=dev/had

map=/boot/map

instll/boot/boot.b

prompt

#表示启动盘是/dev/had,这是主IDE硬盘。

timeout=50

#表示等待用户输入的时间是50秒。

default=TL3.4

other=dev/hda1

#表示如果在上述的时间内没有输入,缺省的启动系统是TL3.4,即TurboLinux 3.4.0

label=dos

table=dev/had

#表示如果在LILO提示用户输入启动系统时,用户按了<Tab>键,各个系统将以label的内容显示出来,供用户选择。

image=/mnt/tl3.4/boot/vmlinuz

label=TL3.4

root=/dev/hda3

read-only

TurboLinux的启动文件,/mnt/tl3.4/boot/vmlinuz被确定,根文件系统在/dev/hda3,根文件系统是只读方式的。

CODE:[Copy to clipboard]image=/mnt/rh5.2/boot/vmlinuz-2.0.36-0.7

label=RH5.2

root=/dev/hda4

read-only

RedHat的启动文件,/mnt/rh5.2/boot/vmlinuz-2.0,36-0.7被确定,根文件系统在/dev/hda4,根文件系统可读写。

find 命令的基本结构如下:

find 命令手册 : man find

find 命令中的 -name 选项可以根据文件名称进行检索( 区分大小写 )。如需要忽略文件名中的大小写,可以使用 -iname 选项。

-name 和 -iname 两个选项都支持 wildcards 。如:

例1:查找 /usr 目录下所有文件名以 .txt 结尾的文件

例2:查找 /usr 目录下所有文件名刚好为 4 个字符的文件

例3:查以大写字母开头的文件

例4:查以两个小写字母和两个数字开头的txt文件

类似的还有:

-lname -ilname

-path -ipath

-regx -iregx

有些时候,你需要在搜索时匹配某个文件或目录的 完整路径 ,而不仅仅是匹配文件名。可以使用 -path 或 -ipath 选项。

例1:如查找 /usr 下所有文件名以 .txt 结尾的文件或目录,且该文件的父目录必须是 src 。可以使用以下命令:

例2:在当前目录除aa之外的子目录内搜索 txt文件

例3:在当前目录,不再子目录中,查找txt文件

如果只想搜索得到文件 目录,即不想它们同时出现在结果中。可以使用 -type 选项指定文件类型。

-type 选项最常用的参数如下:

例:检索 /usr 下所有文件名以 python 开头的目录

find 命令支持 -empty 选项用来检索 为空 的文件或目录。空文件即文件里没有任何内容,空目录即目录中没有任何文件或子目录。

例:检索用户主目录下所有的空目录

find 命令也允许用户对当前的匹配条件进行 “反义” (类似于 逻辑非 *** 作)。

如需要检索 /usr 下所有文件名 以 .txt 为后缀的文件。可以使用以下命令:

也可以“翻转”任何其他的筛选条件,如:检索 /usr 下所有内容不为空的文件

为了检索归属于特定用户的文件或目录,可以使用 -user 选项。

例:检索根目录下所有属主为 starky 的文件

类似于 -user 选项, -group 选项则可以根据文件或目录的 属组 进行检索。

有些时候,需要根据文件创建或修改的时间进行检索。

Linux 系统中,与文件相关联的时间参数有以下三种:

与此对应的是 find 命令中的 -mtime , -atime 和 -ctime 三个选项。

这三个选项的使用遵循以下示例中的规则:

检索 /usr 下两天前被修改过的文件

如果觉得 -mtime 等选项以 为单位时间有点长,还可以使用 -mmin , -amin , -cmin 三个选项。

查找比 aa.txt 的文件

查找比 aa.txt 的文件

查找比aa.txt新,比bb.txt旧的文件

-size 选项允许用户通过文件大小进行搜索(只适用于文件,目录没有大小……)。

表示文件大小的单位由以下字符组成:

另外,还可以使用 + 或 - 符号表示 大于 小于 当前条件。

检索文件大小高于 1 GB 的文件

find 命令可以使用 -perm 选项以文件权限为依据进行搜索。

9.1使用符号形式

例1:如需要检索 /usr 目录下权限为 rwxr-xr-x 的文件,可以使用以下命令:

例2:搜索 /usr 目录下所有权限为 r-xr-xr-x (即系统中的所有用户都只有读写权限)的文件和目录,可以使用以下命令:

很多时候,我们只想匹配文件权限的一个 子集 。比如,检索可以直接被任何用户执行的文件,即只关心文件的执行权限,而不用管其读写权限是什么。

上述的需求可以通过以下命令实现:

其中 a=x 前面的 / 符号即用来表示只匹配权限的某个子集(执行权限),而不用关心其他权限的具体设置。

9.2使用数字形式

例如:搜索 /usr 目录下权限为 644 (即 rwxr-xr-x )的文件

find 命令默认是以 递归 的方式检索项目的,这有时候会导致得到的结果数量非常巨大。可以使用 -maxdepth 限制 find 命令递归的层数。

例如:搜索时向下递归的层数最大为 3

在之前的例子中有出现多个搜索条件的 组合 以及对某个搜索条件的 反转

实际上 find 命令支持 “and” “or” 两种逻辑运算,对应的命令选项分别是 -a 和 -o 。通过这两个选项可以对搜索条件进行更复杂的组合。

此外还可以使用 小括号 对搜索条件进行 分组 。注意 find 命令中的小括号常需要用 单引号 包裹起来。因小括号在 Shell 中有特殊的含义。

如检索 /usr 下文件名以 python 开头且类型为目录的文件

该命令等同于:

更复杂的组合形式如:

例4:在除dir0及子目录以外的目录下查找txt后缀文件

说明:-a 应该是and的缩写,意思是逻辑运算符‘与’(&&)-o应该是or的缩写,意思是逻辑运算符‘或’(||), -not 表示非.

命令行的意思是:如果目录dir0存在(即-a左边为真),则求-prune的值,-prune 返回真,‘与’逻辑表达式为真(即-path './dir0*' -a -prune 为真),find命令将在除这个目录以外的目录下查找txt后缀文件并打印出来;如果目录dir0不存在(即-a左边为假),则不求值-prune ,‘与’逻辑表达式为假,则在当前目录下查找所有txt后缀文件。

-delete 选项可以用来删除搜索到的文件和目录。

例如:删除 home 目录下所有的空目录:

-exec 选项可以对搜索到的结果执行执行该参数所给出的shell命令。形式为 command {} \,注意{}与\之间有空格 。每当 find 命令检索到一个符合条件的文件,会使用其完整路径取代命令中的 {} ,然后执行 -exec 后面的命令一次。

例1:如需要将 home 目录下所有的 MP3 音频文件复制到移动存储设备(假设路径是 /media/MyDrive ),可使用下面的命令:

其中的 大括号 ( {} )作为检索到的文件的 占位符 ,而分号( )作为命令结束的标志。因为分号是 Shell 中有特殊含义的符号,所以需要使用单引号括起来或前面加上转义符 \ 。

例2:查看当前目录下的所有普通文件,并在 - exec 选项中使用 ls -l 命令将它们列出

例3:在多个文件中检索某个指定的字符串。如在用户主目录下的所有文件中检索字符串 hello ,可以使用如下命令:

创建 Gzip 格式的压缩文件的命令为:

现在假设需要将用户主目录下所有的 MP3 文件添加到压缩包 music.tar.gz 中,直观的感觉是,其命令应为如下形式:

实际情况是,这样得到的 music.tar.gz 其实只包含一个 MP3 文件。原因是 find 命令 每次 发现一个音频文件,都会再执行一次 -exec 选项后面的压缩命令。导致先前生成的压缩包被覆盖。

可以先让 find 命令检索出所有符合条件的音频文件,再将得到的 文件列表 传递给后面的压缩命令。完整的命令如下:

如果想浏览搜索到的文件(目录)的详细信息(如权限和大小等),可以直接使用 -ls 选项。

例如:浏览所有 1G 以上大小的文件的详细信息

与exec作用相同,区别在于,在执行命令之前,都会给出提示,让用户确认是否执行

与 exec 作用相同 ,起承接作用。区别在于 |xargs 主要用于承接删除 *** 作 ,而 -exec 都可用 如复制、移动、重命名等

例1:查找以ap或may开头的文件

例2:查硬连接数大于2的文件或目录

例3:查找含特定字符串的文件。查找当前目录下含有"the string you want find…"字符串的文件:

例4:从根目录开始查tmpfile,一旦查到马上删除

例5:如何用find查找某一天更改的文件?可以使用这一行命令来实现:

A Guide to the Linux “Find” Command

https://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html

https://blog.csdn.net/l_liangkk/article/details/81294260

https://blog.csdn.net/hetoto/article/details/84101745

http://c.biancheng.net/view/779.html

http://blog.chinaunix.net/uid-24648486-id-2998767

https://www.runoob.com/linux/linux-comm-find.html

https://www.jb51.net/article/147275.htm


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/5897893.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存