Linux终端指令

一、ls命令

ls是list的缩写,可以通过ls命令不仅可以查看linux文件夹包含的文件,还可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。

        常用参数:

ls  -a列出目录所有文件,包含以.开始的隐藏文件。
ls -A列出除.及..的其他文件。
ls -t

以文件修改时间排序。

ls -S

以文件大小排序。

ls -l

除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。

二、dmesg命令(Linux诊断机器故障工具)

        dmesg命令可以让你更深入的了解Linux启动的潜在过程,可以从内核的环形缓冲区(ring buffer)查看并监视硬件设备和驱动消息。

系统启动时,内核会将各种信息警告消息存储在一个环形缓冲区中。消息包括:内核模块加载驱动程序绑定设备初始化等。

 Linux环形缓冲区是如何工作的?

        在Linux和类Unix系统中,引导和启动是计算机开机后,事件序列中两个不同的阶段。

        引导过程(BIOS或UEFI,MBR和GRUB)会初始化系统,这时内核被加载进内存,并且连接到初始ramdisk(initrd或initramfs),然后,systemd被启动。

        启动过程继续完成初始化操作系统的工作。在初始化阶段的早期,日志记录daemons尚未启动及运行。为了避免在初始化阶段丢失明显的错误消息和警告,内核包含了一个可以储存消息的环形缓冲区。

        环形缓冲区是用于存储消息的内存空间,设计简单,固定大小。当存储满时,最新的消息会覆盖最旧的消息。所以被称为“环形缓冲区”。它能够存储消息,比如:设备驱动程序的初始化消息,硬件消息以及内核模块消息。因为包含低等级的启动消息,所以环形缓冲区非常适合于查看硬件错误或其他启动问题

dmesg命令常用格式:

        dmesg命令可以查看环形缓冲区中的消息。默认情况下,执行dmesg需要添加sudo。

# sudo dmesg [-cn][-s <缓冲区大小>]

-c:当完成打印显示后清除缓冲区的内容
-s:缓冲区大小。定义一个大小为“缓冲区大小”的缓冲区用于查询内核环缓冲区。默认大小8196
-n:级别。设置级别为记录控制台启动信息的级别。

常用参数:

-C清除内核环缓冲区的内容
-s <size>设置内核环缓冲区的大小
-l <level>指定要显示的日志级别,可选的级别包括emerg, alert, crit, err, warning, notice, info, debug。
-n <level>设置内核日志的打印级别,仅显示指定级别及其以上级别的日志。
-H以可读的格式显示时间戳。
-T持续监视内核日志的变化。
--color以彩色输出显示日志信息。
--console-level <level>设置控制台日志的打印级别。
--file <file>从指定文件中读取内核日志信息。
--read-clear读取并清除内核环缓冲区的内容。
--read-clear-long读取并清除内核环缓冲区的内容,以长格式显示。

2.1 将系统启动信息保存到文件中

# sudo dmesg > messages.txt

2.2 单页输出

# sudo dmesg | more
# sudo dmesg | less

通常会输出很多的消息,可以通过less命令来解决,这样就可以滚动查找我们需要的内容。 

2.3 以可读性较好的形式输出信息

# sudo dmesg -H

默认情况下,内核启动后,dmesg使用时间戳记录秒和纳秒,如果想要更加人性化的输出,可以使用 -H(human)参数。 但是输出会自动显示更少的内容。

# sudo dmesg -T

时间戳显示为标准日期和时间,但分辨率降低到一分钟。

2.4 设置记录信息的层级

# sudo dmesg -n 3

2.5 打印输出内存

# sudo dmesg | tail -f  #打印输出最近一次的信息
# sudo dmesg | head -20 #打印输出前20行的信息
# sudo dmesg | tail -20 #打印输出最后20行日志

2.6 实时监控dmesg日志的输出信息

# watch "dmesg | tail -20"

2.7 搜索包含特定字符串的被检测到的硬件

# sudo dmesg | grep DMA        #查看硬盘的运行模式
# sudo dmesg | grep eth        #查看以太网的连接信息
# sudo dmesg | grep sda        #查看硬盘设备
# sudo dmesg | grep ttyS*      #查看串口的相关信息
# sudo dmesg | grep -i memory  #查看内存状况
# sudo dmesg | grep -i usb     #查看usb接口

2.8 使用日志级别

emerg:系统无法使用
alert:必须立即采取措施
crit:严重的情况
err:错误
warn:警告
notice:正常但是重要的情况
info:消息
debug:调试信息
# sudo dmesg -l info

 列出的所有消息都是“info”消息,它们不包含错误或警告,仅包含有用的通知。

 可以在一个命令中组合两个或多个日志级别,以检索多个日志级别的消息:

# sudo dmesg -l debug,notice

三、grep命令

grep是linux用户用来搜索文本字符串的命令行工具。可以使用它在文件中搜索某个单词或单词的组合,也可以将其他linux命令的输出通过管道传输到grep,并显示出想要查看的输出。

1. grep的单独使用

     命令格式:

grep [option] pattern file | dir

     其中,pattern表示要查找的模式,file(s)表示要查找的文件,如果不指定文件,则默认从标准输入中读取数据。

     常用参数:

-i忽略大小写
-l只列出文件内容符合指定的样式的文件名称
-f从文件中读取关键词
-n显示匹配内容的所在文件中行数
-R/-r递归查找文件夹
-E使用扩展正则表达式
-F禁用正则表达式,使用固定字符串匹配
-w只匹配整个单词,而不是单词的一部分
-A显示匹配行之后的若干行
-B显示匹配行之前的若干行
-C显示匹配行前后的若干行

        例子:由于linux代码很庞大,驱动开放工程师如果想要找到某个函数在哪个位置的时候,就可以使用grep来进行查找。

$ grep -r "main"  //递归查找目录中的文件

 在当前的目录下所有带有"main"字符的文件/文档都会显示出来。

$ grep -r -i "main"  //递归且不区分大小写查找目录中的文件
$ grep -r "main" ./test  //在指定的目录下递归查找对应文件
// 使用正则表达查找

$ egrep r\{2} fruits.txt

$ grep -E r\{2} fruits.txt

2. grep进行组合使用

(1)与demsg结合:

demsg:内核的所有输出会进入缓冲区中,而不是打印到stdout上,这是因为stdout是进程特有的环境。

dmesg -w |grep Hello   //在缓冲区查找到Hello的内容并显示出来

(2)与ls结合:

ls | grep test

四、cd命令

常用参数:

cd /        进入需要进入的目录

cd ~        进入"home"目录

cd -        进入上一次工作路径

cd !$       把上个命令的参数作为cd参数使用

cd ..       返回上一级目录

五、chmod命令

Linux chmod命令是控制用户对文件的权限的命令。

Linux/Unix的文件调用权限分为三级:文件所有者(Owner)用户组(Group)其他用户(Other Users)

只有文件所有者超级用户可以修改文件或目录的权限。

1. 符号模式

使用符号模式可以设置多个项目:who(用户类型)operator(操作符)permission(权限),每个项目的设置可以用逗号隔开。

who的符号模式表:

who用户类型说明
uuser文件所有者
ggroup文件所有者在组
oothers所有其他用户
aall所有用户,相当于ugo

operator的符号模式表:

Operator说明
+为指定的用户类型增加权限
-去除指定用户类型的权限
=设置指定用户权限的设置,即将用户类型的所有权重重新设置

 permission的符号模式表:

模式名字说明
r设置为可读权限
w设置为可写权限
x执行权限设置为可执行权限
X特殊执行权限只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行
ssetuid/gid当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限
t粘贴位设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位

例子:

将file1.txt文件设为所有人皆可读取:

chmod ugo+r file1.txt

chmod a+r file1.txt

将文件file1.txt与file2.txt设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:

chmod ug+w,o-w file1.txt file2.txt

2. 八进制语法

chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组。

#权限rwx二进制
7读 + 写 + 执行rwx111
6读 + 写rw-110
5读 + 执行r-x101
4只读r--100
3写 + 执行-wx011
2只写-w-010
1只执行--x001
0---000

例子:

将file1.txt文件设为所有人皆可读取:

chmod 777 file
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值