常用Linux Shell命令

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&#39;re&#39;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

猜你喜欢

转载自blog.csdn.net/qq_42176520/article/details/81265474