189 8069 5689

linux命令xra Linux命令行与shell脚本编程大全

在Linux系统中,执行什么命令查看文件或目录的权限?

使用ls -l 命令可以查看当前目录下各个文件的权限 也可以用ll命令。\x0d\x0a例如:\x0d\x0abash: lsl: command not found\x0d\x0a[root@liuxiting Documents]# ll\x0d\x0atotal 56\x0d\x0alrwxrwxrwx 1 root root 4 2012-07-02 11:48 1 - 1.sh\x0d\x0a-rwxr-xr-x 1 root root 44 2012-06-20 14:01 1.sh\x0d\x0adrwxr-xr-x 2 root root 4096 2012-07-16 12:11 filetest

目前成都创新互联公司已为1000多家的企业提供了网站建设、域名、虚拟主机网站运营、企业网站设计、土默特右旗网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

Linux 常用命令(要求全而精)

1、linux分区

--在linux里面所有的设备、任何东西,在linux看来都是文件。

--文件在它看来,有两种形式:

第一种是字符型(键盘输入、打印机);

第二种是二进制型(硬盘、光驱、U盘)

--linux中所有硬件

--手动分区

--A、至少有两个分区

/ 根分区

SWAP 交换分区(物理内存大小的两倍)

--B、个人桌面分区

/

/boot 128MB is enough

/usr

SWAP

/tmp(用于光盘刻录)

2、linux目录说明

--/dev/xxyN

--xx (分区所在设备类型:hd--IDE硬盘 sd--SCSI硬盘)

--y (标明分区所在设备

例如:/dev/hda 第一个IDE硬盘 或 /dev/hdb 第二个IDE硬盘 或 /dev/sdb 第二个SCSI硬盘)

--N (数字代表分区:1-4--主分区或扩展分区;逻辑分区从5开始!

例如:/dev/hda3 第一个IDE硬盘上的第三个主分区或扩展分区

/dev/sdb6 第二个SCSI硬盘上的第二个逻辑分区)

3、linux目录结构

/ 根目录,最高级别

/bin 系统基本命令存放目录(/usr/bin)

/boot linux的内核及引导系统程序文件存放目录(如:vmlinuz、initrd.img)

一般情况下,GRUB或LILO系统引导管理也位于这个目录

/dev 设备文件存储目录,如声卡、光驱...

/ect 存放系统设置文件(如用户账号密码、服务器配置文件等)

/home 普通用户家目录,默认存放目录

/lib 库文件存放目录

/lost+found 在ext2或ext3文件系统中,当系统以外崩溃或机器意外关机,而产生一些文件碎片放在这里。

当系统启动的过程中,fsck工具会检查这里,并修复已经损坏的文件系统。

有事喜用发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或者移文件到原来的位置上。

/media 即插即用型存储设备的挂载点自动在这个目录下创建。

如USB盘系统自动挂在后,会在这个目录下产生一个目录;

类似cdrom的目录

/mnt 存放挂载存储设备的挂载目录,如cdrom等目录

/opt 表示可选的意思,有些软件包也会被安装在此,也就是自定义软件包,

比如OpenOffice,或者一些我们自己编译的软件包,也可安装此处。

/proc 操作系统运行时,进程(正在运行的程序)信息及内核信息(比如CPU、硬盘分区、内存信息等)存放在此。

/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统

/root linux超级权限用户root的家目录

/sbin 大多是涉及系统管理的命令的存放,只有超级权限用户root才可执行命令存放,普通用户无权限执行此目录下的命令

与 /usr/sbin; /usr/X11R6/sbin; usr/local/sbin 目录相似

(sbin,只有root权限才能执行)

/tmp 临时文件目录,有时用户运行程序的时候,会产生临时文件。

/var/tmp目录和此目录相似

/usr 系统存放程序的目录,如命令、帮助文件等。这个目录下有很多的文件和目录。

大部分Linux发行版提供的软件包都安装在此,涉及服务器的配置文件就安装在/ect中。

/usr/share/fonts 字体目录

/usr/share/man 或 /usr/share/doc 帮助目录

/usr/bin 或 /usr/local/bin 或 /usr/X11R6/bin 普通用户可执行文件目录

/usr/sbin 或 /usr/local/sbin 或 /usr/X11R6/sbin 超级权限用户root可执行命令存放目录

/usr/include 程序头文件存放目录

/var (vary)此目录经常变动

/var/log 用来存放系统日志

/var/www 用来定义Apache服务器站点存放

/var/lib 用来存放一些库文件,如MySQL的,以及MySQL数据库的存放地。

4、基本命令

--查看帮助 *** --help *** --?

--查看详细帮助 man ***

--登录 login

--退出窗口 exit

--关机 shutdown

--重启 reboot

--初始化 init (run level -/etc/inittab),0-6看第六部分的g

--进入根目录 cd /

--回上层目录 cd ..

--相对路径 cd dev

--绝对路径 cd /dev

--查用户名 whoami

--查当前目录 pwd

--列出当前目录内容 ls

-l(树详细显示目录内容)

-m(横列显示目录内容,是屏幕长度显示)

-a(列出全部文件,包括隐藏文件)

-S(以文档大小排序)

--创建目录 mkdir dname

--删除目录 rmdir dname

rm -r *** -(递归删除该目录下所有内容,询问每个准备删除的文件)

rm -rf ***-(强制删除该目录下所有内容,不询问)

--创建空白文件 touch ***

(ps:从技术的角度来讲,linux的文件后缀名没有任何意义)

--复制 cp

cp -r **1 **2 (复制1到2中)

--移动 mv

mv -t **1 **2 (把2移动到1中)

--编辑文本 vi [文件名]

--查看文本 cat 由第一行开始显示文本内容

tac 从最后一行显示,可以看出 tac 是 cat 的倒着写

more 一页一页的显示文档内容

less 与 more 类似,可以往前翻页

head 只看头几行

-N(数字,可根据行数显示)

tail 只看后几行

-N(数字,可根据行数显示)

nl 显示的时候,顺序输出行号

od 以二进制位的方式读取档案内容

--查找文本 find [路径][查找类型][搜索文件名]

如查找rc.local find /etc -name *.local

--查找命令信息及其位置 whereis 命令

如 whereis ls

--查看环境变量 echo $SHELL

如 echo $PATH (分大小写:分隔符是:,windows是echo %path%;)

--链接 ln

如 ln joe.txt a (硬链接,如同复制一个新文件,joe.txt删除后,a还存在)

a是链接的名称,a和joe.txt同步,然后a的内容和joe.txt一样

joe.txt改变,a也跟着变

如 ln -s joe.txt b (软链接,如同创建一个快捷方式,joe.txt删除后,b不存在)

--wc 统计指定文本文件的行数、字数、字符数

--grep(很常用) 在指定的文本文件中查找指定的字符串

grep 字符串 文件名

--col 见管道..

--------------------

----信息显示命令----

--------------------

--date 显示和设置日期

--stat 显示指定文件的相关信息

--who、w 显示在线登录用户

--whoami 显示用户自己的身份

--id 显示当前用户的id信息

--hostname 显示主机名称

--uname 显示操作系统信息

--dmesg 显示系统启动信息

--du 显示指定的文件(目录)已使用的磁盘空间

--df 显示文件系统磁盘空间的使用情况

--free 显示当前内存和交换空间的使用情况

--fdisk -l 显示磁盘信息

--locale 显示当前语言环境

5、挂载点(mount 设备目录 挂载目录)

--访问设备 (那设备当成一个文件,和另外一个文件夹进行绑定)

--例如挂载光驱:步骤 [cd /mnt]---[mkdir cdr]---[mount /dev/cdrom /mnt/cdr]---[cd cdr]--OK!直接访问光驱内容

--卸载挂载设备(umount /dev/cdrom)--注意必须先退出挂载目录,否则出现"device is busy"错误.

6、startup-shutdown(linux启动流程)

--A、boot sequence(important) linux启动过程

a. load bios(hardware information)

b. read MBR's config to find out the OS

(MBR--Master Boot Record,硬盘第一个物理扇区,柱面0、磁头0、扇区1,包含主引导程序和硬盘分区表)

c. load the kernel of the OS

(加载为kernel核心的OS)

d. init process starts...

(启动linux第一个进程init)

e. execute /etc/rc.d/sysinit

(执行系统最重要的配置文件,后台启用进程)

(rc.d--run command)

f. start other modules(stc/modules.conf)

(开启各种模块,如内存管理模块、硬盘管理模块)

g. execute the run level scripts

(系统启动是分层次的,根据情况执行,每个层次之间没关系)

0 - 系统停机状态

1 - 单用户工作状态 root

2 - 多用户状态(没有NFS)

3 - 多用户状态(有NFS)

NFS - Network File System 网络文件系统,联网系统

4 - 系统未使用,留给用户

5 - 图形界面

6 - 系统正常关闭并重新启动

如:cd /etc -- 有rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d等多个文件夹,保存着各个层次执行的进程文件

h. execute /etc/rc.d/rc.local (重要)

(保存其它进程脚本,如tomcat自动启动,要修改此配置文件)

i. execute /bin/login

(登录界面)

j. shell started...

7、vi 文本编辑器

--两种模式:命令模式 编辑模式

--vi [文件名]

(切换到编辑模式)

a append-光标后添加

i insert-光标前插入

o open-另起一行编辑

esc (切换回命令模式)

:w 存盘

:wq 存盘退出

:q 退出

:q! 不存盘退出

dd 删除其中一行

dw 删除一个单词

(sudo gedit 文本 常用linux下的文本编辑器,比vi好用)

8、用户设置

--切换用户(switch user) su username

小技巧:直接exit切换

--添加用户 useradd username [-g] [组名](分配到某个用户组)

(创建后会自动在/home目录下创建该新用户的文件夹,如/home/username)

--设置密码 passwd username

--cd /etc

--查看用户信息 more password

如新增的用户信息:username:x:500:500::/home/username:/bin/bash

第一个数字,代表用户组,当添加用户没有指定用户组时,系统会创建一个和用户ID一样的组ID;

第二个数字:用户ID号;

用户的目录是/home/username;

用户的SHELL是/bin/bash

(命令---SHELL[解释命令]---kenrel内核)

SHELL有多种类型,如csh、bash(常用)、bsh、ksh、sh(最原始)

--添加用户组 groupadd groupname

--查看用户组信息 more group

--删除用户组 groupdel groupname

--修改用户 usermod [-g] [组名] [用户名]

--删除用户 userdel username

然后把/home的文件夹删除了 rm -rf 文件夹

9、权限file privilege

--linux把文件的权限分成四种:r:read w:write x:execute -:none

如:-rw-r--r--

lrwxrwxrwx

drwxr-xr-x

drwxr-xr-x

第一个数字'-'代表文件,其余是文件夹,后9位分为3组,每组有四种权限设置rwx-

第一位表示文件所有者

第二位表示和所有者在同一用户组的用户

第三位表示不在同一用户组的用户权限

--设置权限 (随意应用,灵活组合!)

1、普通用法

--添加权限 [chmod +x 文件]

如:-rw-r--r-- --- -rwxr-xr-x

--删除权限 [chmod -x 文件]

如:-rwxr-xr-x --- -rw-r--r--

--给自己添加权限 [chmod ?+x 文件]

如此类推,组--g,其他人--o

如:chmod u+x -rw-r--r-- --- -rwxr--r--

chmod g+x -rw-r--r-- --- -rw-r-xr--

chmod o+x -rw-r--r-- --- -rw-r--r-x

2、专业用法 chmod 755/777

--原理,八进制转二进制

如755,111 101 101, rwx r-x r-x

777,111 111 111, rwx rwx rwx

--修改所有者权限 chown (change owner)

如:chown 原来文件 file1 的所有者是 root,改成joe的

chown joe file1

10、管道(把上一个命令执行的结果交给下一个命令)

--使用方法:

命令1|命令2|命令3......|命令n

--使用举例

--$ls -Rl /etc | more

(如 ls -Rl /etc (在控制台模式下,无法返回前面过去的信息),因此需要管道执行该查询,实现分页的工作, ls -Rl /etc | more)

--$cat /etc/passwd | wc

(显示文件结果,再数数有多少行)

--$cat /etc/passwd | grep lrj

(显示文件结果,再查找包含lrj的行)

--#dmesg | grep eth0

(显示系统启动的信息,再查找包含eth0的行--真正含义,检查网卡执行信息是否正常)

--$man bash | col -b bash.txt

语法:col [-bfx][-l缓冲区列数]

补充说明:在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符""和"",把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符。

参数:

-b 过滤掉所有的控制字符,包括RLF和HRLF。

-f 滤除RLF字符,但允许将HRLF字符呈现出来。

-x 以多个空格字符来表示跳格字符。

-l缓冲区列数 预设的内存缓冲区有128列,您可以自行指定缓冲区的大小。

--$ls -l | grep "^d"

(用正则表达式筛选出目录列表中 头字母为'd' 的内容--目录)(^是正则表达式开头部分)

--$ls -l * | grep "^-" | wc -l

(列出目录列表中 头字符为'-'的内容--文件,并统计显示的行数wc -l)

11、其他命令

--wall(warning all) 通知所有人

a.命令替换

如 wall `date`、 cd 'pwd'、mkbootdisk $(uname -r)

b.重定向

重定向输出:

如 ls cmd.txt ,把文件写到cmd.txt,不输出在控制台

ls cmd.txt ,把文件追加写到cmd.txt

重定向输入:

如 wall cmd.txt,把文本内容发给所有人

12、修改系统的默认系统级别

常用3和5

3 - 多用户状态(有NFS)

NFS - Network File System 网络文件系统,联网系统

5 - 图形界面

PS.设置用户权限: sudo chmod 777 目录

4表示读,2表示写,1表示执行.

第一位表示文件所有者,第二位表示和所有者在同一用户组的用户,第三位表示不在同一用户组的用户权限.

755表示文件所有者可读写,执行.

第二位5表示与所有者在同一用户组的可读,可执行,不可写.

第三位5表示其它组可读,可执行,不可写. 转载于Joewalker在本人空间也有详细说明

linux 的基本命令?

1.开机进入

---- Linux系统的开机同正常的DOS、Windows开关机顺序相同。若是多操作系统则在LILO boot:后输入Linux,就可进入Linux的注册提示符Login:,在其后输入用户名,在口令提示符password:输入口令,注册正确后,可进入相应的用户环境。如输入:root,及其密码,可进入超级用户环境#,输入其他用户名及口令,可进入该用户环境$。

---- 2.关机退出

---- 在超级用户提示符#下输入halt(立即关机)或shutdown time(延迟time分后关机,给各用户每隔一段时间发出还有多长时间将关机的警告)后,计算机将进行一系列的关机工作,最后出现System halt,就是关机结束,可以关闭电源了。非超级用户则需用exit退出操作环境,再进入超级用户环境,方可进行关机工作。

---- 3.命令操作注意事项

---- 在Linux中有一些与DOS不完全相同的地方,见下表:

DOS Linux

命令行字母 不区分大小写 区分大小写

提示符 #、$

路径分隔符 \ /

通配符 *、? *、?、[]

---- 在Linux系统中,超级用户的系统提示符是#,一般情况下普通用户的系统提示符是$,普通用户的系统提示符也同DOS一样可以进行更改。通配符中*与?的含义是一样的,[]是仅包括括号内的符号,连续的符号可用“-”连接首尾的符号代替,如[12345678]可以用[1-8]代替,[abcdefijk]可用[a-fi-j]表示。

---- 4.文件类型

---- 与DOS、Windows不同的是,在Linux系统中,目录和设备都被视为文件,共有四种文件类型,它们是:⑴普通文件,即我们通常所说的文件,在长列目录方式时行首前用一符号“-”表示。⑵目录文件,即我们通常所说的目录,在长列目录方式时行用首前用一字母“d”表示。⑶字符设备文件,如显示器、打印机、终端等,在长列目录方式时行首前用一字母 “c”表示。⑷块设备文件,如硬盘、软盘、光盘在长列目录方式时行首前用一字母“b”表示。

---- 在Linux中用长格式列目录命令ls -l时,如下例:

---- 文件类型

-rwxrw-r-- 5 user group 1089

Nov 18 1998 filename

存取权 用户 组名

字节数 最后修改时间 文件名

---- 大家对DOS下的8.3格式的文件名都一定很熟悉了,由于它的表达能力有限,所以在Windows95之后加入了长文件名支持,Linux继承了UNIX的优点,也可以用长长的一串字符作文件名。但是在Linux中文件类型可不像在DOS下那样容易从文件的扩展名上了解到,在DOS下的可执行文件的扩展名为com或exe,而在Linux中只能通过文件属性得知,采用命令ls –F可区分目录和文件,在目录后有“/”符号,可执行文件后有“*”符号,用ls –aF可见所有的文件和目录列出,包括隐藏的文件和目录,隐藏文件的文件名以点号“.”开头。

---- 5.读取权限

---- 在Linux中,文件的主人即所有者,其他使用者分别称为同组者、其他人,为保证各用户文件的安全,Linux同UNIX一样通过限制某些用户对文件的随意存取。共有三个级别的存取权:读权r、写权w、执行权x。在存取权中共有九个字符的位置其顺序是:所有者、同组人、其他人。在上例中分别表示:主人对文件拥有读写权和执行权,同组人对文件拥有读写权、其他人对文件只拥有读权。

---- 6.获取在线帮助命令

---- 在Linux中有一条专门用于取得在线帮助的命令man ,其使用方式为# man command。man有一套它自己的命令,通常由单个键组成,按空格键和F键将翻到下一页,按B键翻到上一页,按Q键退出man工具,回到命令行。掌握了以上的基础知识,结合熟知的DOS命令进行比较,对于学习Linux的基本命令就可以很快地运用自如,为进一步深入学习Linux打下深厚的基础.。

---- 二、文件管理和目录操作

---- 与DOS、Windows一样,在Linux中也有许多关于文件管理和目录操作方面的命令,对二者的主要命令列表如下:

---- 1.文件管理

功能 DOS Linux 注意事项

显示文件内容 type、more cat 、more type、cat

是全部显示,more是分页显示

打印文件 print lpr

拷贝文件 copy cp

移动文件及改名 move mv

删除文件 del, erase rm

---- 2.目录操作

功能 DOS Linux 注意事项

列目录及文件 dir/选项 ls –选项

在Linux中cd/直接返回登录时的目录而不是根目录,

显示工作目录 cd pwd

变更工作目录 cd\目录 cd/目录

建立目录 md,mkdir mkdir

删除目录 rd,rmdir rmdir

目录更名 move mv

拷贝目录 xcopy copy

---- 在二者中,命令的格式都是一样的,只是选项、参数不相同而已,也可以进行组合操作,具体运用时可使用帮助命令,只不过Linux的命令的功能更为强大,据记载DOS中的不少命令都是借鉴UNIX而来的,而Linux正是居于UNIX发展起来的,这也是二者有着几乎相同的命令和格式的原因之一。

---- 三、软、硬盘及光驱的使用

---- 1.软、硬盘及光驱的使用

---- 在Linux中对其他硬盘逻辑分区、软盘,光盘的使用与我们通常在DOS与Windows中的使用方法是不一样的,不能直接访问,因为在Linux中它们都被视为文件,因此在访问使用前必须使用装载命令mount将它们装载到系统的/mnt目录中来,使用结束,必须进行卸载。命令格式如下:

mount –t 文件系统类型 设备名 装载目录

文件类型常用的有:

msdos dos分区文件

ext2 Linux的文件系统

swap Linux swap分区或swap文件

iso9660 安装CD-ROM的文件系统

vfat 支持长文件名的dos分区

hpfs OS/2分区文件系统

---- 设备名是指要装载的设备的名称,如软盘、硬盘、光盘等,软盘一般为/dev/fd0 fd1,硬盘一般为/dev/hda hdb ,硬盘逻辑分区一般为期hda1 hda2…等等,光盘一般为/dev/hdc。在装载前一般要在/dev/mnt目录下建立一个空的目录,如软盘为floppy,硬盘分区为其盘符如c、d等等,光盘为cd-rom,使用命令:

mount –t msdos /dev/fd0 /mnt/floppy

装载一个mddos格式的软盘

mount –t ext2 /dev/fd0 /mnt/floppy

装载一个Linux格式的软盘

mount –t vfat /dev/hda1 /mnt/c

装载Windows98格式的硬盘分区

mount –t iso9660 /dev/hdc /mnt/cd-rom

装载一个光盘

---- 装载完成之后便可对该目录进行操作,在使用新的软盘及光盘前必须退出该目录,使用卸载命令进行卸载,方可使用新的软盘及光盘,否则系统不会承认该软盘的,光盘在卸载前是不能用光驱面板前的弹出键退出的。

---- 2.格式化命令mkfs

---- 格式化软盘时不需事先安装空盘,只需将软盘放入软驱中,使用如下命令,便可格式化一张在Linux中使用的软盘:

#mkfs –t ext2 /dev/fd0 1440

---- 在熟悉以上基本命令之后,就可以进行其他命令的进一步学习,例如:文件编辑软件vi,存取权限的修改,检查修复文件系统,增减用户及修改密码,安装其他Linux文件,及一些Linux的实用工具软件,建立x-Windows图形界面,利用Linux上网等等,来增加对Linux的感性认识。

linux常用命令有哪些?

01

linux常用命令有pwd命令、cd命令、ls命令、cat命令、grep命令、touch命令、cp命令、mv命令、rm命令、rmdir命令等。

linux常用命令:

1、 pwd命令

该命令的英文解释为print working directory(打印工作目录)。输入pwd命令,Linux会输出当前目录。

2、 cd命令

cd命令用来改变所在目录。

cd / 转到根目录中

cd ~ 转到/home/user用户目录下

cd /usr 转到根目录下的usr目录中-------------绝对路径

cd test 转到当前目录下的test子目录中-------相对路径

3、 ls命令

ls命令用来查看目录的内容。 选项 含义 -a 列举目录中的全部文件,包括隐藏文件 -l 列举目录中的细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等 -f 列举的文件显示文件类型 -r 逆向,从后向前地列举目录中内容 -R 递归,该选项递归地列举当前目录下所有子目录内的内容 -s 大小,按文件大小排序 -h 以人类可读的方式显示文件的大小,如用K、M、G作单位 ls -l examples.doc 列举文件examples.doc的所有信息

4、 cat命令

cat命令可以用来合并文件,也可以用来在屏幕上显示整个文件的内容。

cat snow.txt 该命令显示文件snow.txt的内容,ctrl+D退出cat。

5、 grep命令

grep命令的最大功能是在一堆文件中查找一个特定的字符串。

grep money test.txt

以上命令在test.txt中查找money这个字符串,grep查找是区分大小写的。

6 、touch命令

touch命令用来创建新文件,他可以创建一个空白的文件,可以在其中添加文本和数据。

touch newfile 该命令创建一个名为newfile的空白文件。

7 、cp命令

cp命令用来拷贝文件,要复制文件,输入命令:

cp

cp t.txt Document/t 该命令将把文件t.txt复制到Document目录下,并命名为t。 选项 含义 -i 互动:如果文件将覆盖目标中的文件,他会提示确认 -r 递归:这个选项会复制整个目录树、子目录以及其他 -v 详细:显示文件的复制进度

8 、mv命令

mv命令用来移动文件。 选项 说明 -i 互动:如果选择的文件会覆盖目标中的文件,他会提示确认 -f 强制:它会超越互动模式,不提示地移动文件,属于很危险的选项 -v 详细:显示文件的移动进度

mv t.txt Document 把文件t.txt 移动到目录Document中。

9 、rm命令

rm命令用来删除文件。 选项 说明 -i 互动:提示确认删除 -f 强制:代替互动模式,不提示确认删除 -v 详细:显示文件的删除进度 -r 递归:将删除某个目录以及其中所有的文件和子目录

rm t.txt 该命令删除文件t.txt

10、 rmdir命令

rmdir命令用来删除目录。

Linux常用命令

列出当前目录的文件

常用参数: 

-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=[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 [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 权限管理命令

命令名称:chmod

命令英文原意:change the permissions mode of a file

有两种角色可以执行该命令,一种是 root 用户,另一种就是文件的所有者。

语法:

大括号里的内容表示只能选一个,其中 u 表示该文件的所有者,g 表示所属组,o 表示其他人,a 表示所有角色。

比如,给 abc.txt 文件的所属组加一个写的权限:

也可以同时做多个授权,比如给文件所有者加上执行权限,给其他人去掉写权限:

还可以用数字表示权限。权限的数字表示:

如果一个文件的权限是 rw-r--r--,那么翻译成数字就是 644,反过来,如果要更改文件的权限,可以这样写:

这样文件的权限就改成 rw-r----- 了。

还有一个选项 -R 是递归修改权限,该选项的功能是更改某个目录的权限的同时更改该目录下所有的子目录和文件的权限。

命令名称: chown

英文原意:change owner

语法:chown 用户名 文件

只有管理员账户可以更改文件的所属用户。

例如:

命令名称:chgrp

英文原意:change group

语法:chgrp 组名 文件

例如:

命令名称:umask

使用命令 umask -S 可以查看新建文件或目录的默认权限。

现在显示的是新建目录的默认权限,该目录的所有者的默认权限是 rwx,所属组的默认权限是 rx,其他人的默认权限是 rx。为什么说这是新建目录的默认权限而不是新建文件的默认权限,如果你查看新建文件的权限,会发现是 rw-r--r-- ,与新建目录的权限 rwxr-xr-x 相比,每种角色的权限都少了 x。所以说,只要知道了新建目录的默认权限,再去掉 x 权限,就是新建文件的默认权限。

如果直接执行 umask 命令,会显示一个数字。

这个数字叫做权限掩码,用 777 减去其后三位 022 就得到了每种角色的权限,即 755。翻译成字母就是 rwxr-xr-x 。

若想更改新建目录或文件的默认权限,只需执行 umask 权限掩码 即可。

例如,我想把新建目录的默认权限改成 rwxr-r-- ,翻译成数字就是 744,再用 777 减去 744 就得到了权限掩码 033。

虽然 Linux 系统的目录或文件的默认权限可以修改,但是 Linux 这样分配权限是有一定道理的,最好不要轻易修改。


分享标题:linux命令xra Linux命令行与shell脚本编程大全
文章地址:http://cdxtjz.com/article/dosdjsh.html

其他资讯