1. cd
命令格式: cd <路径>
意义:change directory 的缩写。cd命令后面跟一个路径,用于切换当前用户所在路径。
示例:
cd /system/bin 表示切换到/system/bin路径下。
cd logs 表示切换到logs路径下。
cd / 表示切换到根目录。
cd ../ 表示切换到上一层路径。
2. ls
命令格式:ls [参数] [路径]
意义:list 的缩写。ls命令后面可以跟一个路径,也可以不跟,表示列出路径或当前目录下的所有文件信息。最常用的的参数是“-l",也就是“ls -l”命令。ls -l命令结果详解请参考小编文章列表下“Linux中使用ls\chmod\chown命令修改文件权限”一文。
示例:
ls / 显示根目录下的所有文件及文件夹。
ls -l /data 显示/data路径下的所有文件及文件夹的详细信息。
ls -l 显示当前路径下的所有文件及文件夹的详细信息,如下图所示。
ls 命令
3. chmod
意义: change mode 的缩写。用于给用户增减权限。详细介绍请参考小编文章列表下“Linux中使用ls\chmod\chown命令修改文件权限”一文。
chmod命令用法
示例:
chmod a+x 1.sh 给所有用户增添对1.sh文件的可执行权限(x)。
chmod 755 1.sh 对于文件1.sh,设定1.sh的所有者权限为可读可写可执行,1.sh文件所有者所在组和其他用户对1.sh只有读取和执行的权限,没有修改权限。
chmod命令结果
4. chown
命令格式:chown owner:group file
意义:change owner 的缩写。用于更改文件所有者和所有者所在组。使用命令前,需切换成有权限去修改权限的账号。
示例:
chown root:root 1.cfg 修改1.cfg的文件所有者为root,文件所有者所在组为root。
chown命令结果
5. cat
命令格式: cat 文件
意义:concatenate 的缩写。表示连接文件后输出到屏幕,即读取文件内容。
常见问题: 使用cat命令读取文件时,需保证当前用户对文件有读取的权限,如果没有权限就无法读取文件内容。
解决方案:切换成其他有权限的用户(比如root)再去读取文件,或者先用chmod\chown命令赋予当前用户读取权限,之后再用cat命令。
示例:
cat /sys/devices/system/cpu/online 读取 /sys/devices/system/cpu/路径下online文件内容。
cat test.txt 读取当前路径下test.txt文件内容。
cat命令结果
6. echo
命令格式: echo 文字内容
意义:显示文字。经常和重定向符号“>”">>"一起使用,echo命令之后可以用cat命令检查echo命令结果。“>”表示将“>”左侧输出的内容复制到“>”右侧文件中,右侧文件原本的内容被新的内容覆盖;“>>"表示将">>"左侧输出的内容追加到">>"右侧文件中。
常见问题: 使用前需保证当前用户对文件有修改的权限,如果没有权限就无法修改文件内容,会提示错误permission denied或no such file or directory或者没有错误提示。
解决方案:切换成其他有权限的用户(比如root)再去读取文件,或者先用chmod\chown命令赋予当前用户修改权限,之后再用echo命令。用完echo命令之后,建议用cat命令去读取内容,以确定是否echo是否真正执行成功了。
示例:
echo hi 显示hi到屏幕上。
echo hi > test2.txt 将hi写入test2.txt中,test2.txt中原有的内容被覆盖。
echo hi >> test2.txt 将hi追加写入test2.txt中,test2.txt中原有的内容仍保留在hi之前。
echo命令结果
7.su
意义:switch user的缩写。切换用户。
示例:
su shell 切换成shell用户。
su root 切换成root用户。
su 切换成root用户。
8. grep
命令格式: 其他命令 | grep 要检索的字符串
意义:Globally search a Regular Expression and Print 的缩写。不单独使用,一般用于ls、cat、ps等命令之后,用于检索上一条命令的执行结果中是否包含某个特定字符串,检索到字符串则返回字符串所在行,没有检索到则无返回。
示例:
ls -l | grep -i test 检索ls -l的执行结果中是否有包含test的内容(-i表示不区分test的大小写),也就查找包含test的文件和文件夹的意思。
cat test.txt | grep -i name 检索cat test.txt的执行结果中是否有包含name的内容(-i表示不区分name的大小写),也就查找包含test.txt中包含name的行。
g're'p
9. mkdir
命令格式: mkdir 文件夹
意义:make directory 的缩写。用于创建文件夹。创建文件夹前需保证当前用户对当前路径有修改的权限。
示例:
mkdir /data/path 在/data路径下创建path文件夹。
mkdir -p a/b/c 参数 -p用于创建多级文件夹,这句命令表示在当前路径下创建文件夹a, 而a文件夹包含子文件夹b,b文件夹下又包含子文件夹c。
10. rm
命令格式: rm 文件 或 rm -r 文件夹
意义:remove 的缩写。用于删除文件或文件夹,常用参数-r -f,-r表示删除目录,也可以用与删除文件,-f表示强制删除,不需要确认。同样的,删除文件前需保证当前用户对当前路径有修改的权限。
示例:
rm -rf path 删除path。
rm test.txt 删除test.txt。
11. cp
命令格式: cp 源文件(夹) 目标文件(夹)
意义:copy 的缩写。用于复制文件或文件夹。同样的,操作前需保证当前用户对源文件(夹)有读取的权限,对目标文件(夹)所在父路径有修改的权限。
示例:
cp /data/logs /data/local/tmp/logs 复制/data路径下的logs到/data/local/tmp路径下。
cp 1.sh /sdcard/ 复制当前路径下的1.sh到/sdcard下。
12. mv
命令格式: mv 源文件(夹) 目标文件(夹)
意义:move 的缩写。有两种意义,第一:如果目标文件(夹)不存在且目标文件(夹)与源文件(夹)在同一个路径下,表示重命名文件(夹),第二:除了第一种情况外的其他情况,表示移动文件(夹)。
示例:
mv命令
13. ps
意义:process status的缩写。用于查看进程详细信息,命令的第一行会显示每一列的含义。
示例:
ps命令结果
14. kill
命令格式: kill <进程pid>
意义:停止进程。
示例:
kill 3497 停止进程号为3497的进程。
15. date
意义:查看日期和当前时间信息。
示例:
date命令结果
使用这些命令时,如果遇到没有权限操作时,可先用ls\chmod\chown等命令修改权限
1.查看日志常用命令
tail:
-n 是显示行号;相当于nl命令;例子如下:
tail -100f test.log 实时监控100行日志
tail -n 10 test.log 查询日志尾部最后10行的日志;
tail -n +10 test.log 查询10行之后的所有日志;
head:
跟tail是相反的,tail是看后多少行日志;例子如下:
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
cat:
tac是倒序查看,是cat单词反写;例子如下:
cat -n test.log |grep "debug" 查询关键字的日志
2. 应用场景一:按行号查看---过滤出关键字附近的日志
1)cat -n test.log |grep "debug" 得到关键日志的行号
2)cat -n test.log |tail -n +92|head -n 20 选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志:
tail -n +92表示查询92行之后的日志
head -n 20 则表示在前面的查询结果里再查前20条记录
3. 应用场景二:根据日期查询日志
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;
先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该 时间点
4.应用场景三:日志内容特别多,打印在屏幕上不方便查看
(1)使用more和less命令,
如: cat -n test.log |grep "debug" |more 这样就分页打印了,通过点击空格键翻页
(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析
如:cat -n test.log |grep "debug" >debug.txt