以root登录linux系统,并进入/proc目录,键入ls命令,查看/proc下的内容 #
终端显示的界面如下:
Proc 目录下主要目录和文件的内容有:
Ioports I/O 端口的使用,Kcore 内核核心印象,Kmsg 内核消息,Ksyms 内核符号表,Loadavg 负载均衡,Locks 内核锁,Misc 杂项,Modules 加载模块列表,Mounts加载的文件系统,Partitions 系统识别的分区表,Rtc 实时时钟,Slabinfo Slab 池信息,还有一些其他的信息可参见下表:
文件名 | 文件内容 |
---|---|
proc/apm | 高级电源管理信息 |
/proc/cmdline | 加载kernel时所执行的相关参数。此文件可帮助了解系统是如何启动的 |
/proc/cpuinfo | 本机的CPU相关信息,包含频率、类型与运算功能等 |
/proc/devices | 记录了系统各个主要设备的主要设备代号,与mknod有关 |
/proc/dma | 使用的DMA通道 |
/proc/filesystems | 目前系统已经加载的文件系统 |
/proc/interrupts | 目前系统的IRQ分配状态 |
/proc/ioports | 目前系统的各个设备所配置的IO地址 |
/proc/kcore | 内存的大小 |
/proc/loadavg | top和uptime上面的三个平均数值 |
/proc/meminfo | 使用free列出的内存信息,在这也能查阅 |
/proc/mounts | 系统已经挂载的数据,就是用mount命令调出来的数据 |
/proc/swaps | 系统加载的内存,使用的分区记录 |
/proc/stat | 全面统计状态表 |
/proc/partitions | 使用fdisk -l会出现目前所有的分区,这个文件中也有记录 |
/proc/version | 内核版本 |
/proc/uptime | 系统正常运行时间 |
查看每个文件的读写权限,如fs文件夹,输入指令
ls -l fs
读写权限一共有10位数,其中最前面的d代表的是类型, d代表此文件是文件夹,-代表此文件是普通文件,l代表此文件是软链接(相当于windows中的快捷方式),中间那三个r-x代表的是所有者,然后那三个r-x代表的是组群,最后那三个r-x代表的是其他人.
r表示文件可以被读(read),w表示文件可以被写(write),x表示文件可以被执行(如果它是程序的话),-表示相应的权限还没有被授予。[1]
根据/proc下的信息,查看CPU的类型和型号、当前Linux版本、从启动到当前时刻所经过的时间、当前内存状态。 #
proc 文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc 得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。
1 ) 查询CPU 的类型和型号,采用指令
cat cpuinfo
(cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的),可以看到是Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz:
- 查看内存使用情况,使用指令
cat meminfo
- MemTotal表示内存总数,系统从加电开始到引导完成,BIOS等要保留一些内存,内核要保留一些内存,最后剩下可供系统支配的内存就是MemTotal。这个值在系统运行期间一般是固定不变的。
- MemFree:空闲内存数,表示系统尚未使用的内存。MemUsed=MemTotal-MemFree就是已被用掉的内存。
- MemAvailable:可用内存数,指应用程序可用内存数。系统中有些内存虽然已被使用但是可以回收的,比如cache/buffer、slab都有一部分可以回收,所以MemFree不能代表全部可用的内存,这部分可回收的内存加上MemFree才是系统可用的内存,即:MemAvailable≈MemFree+Buffers+Cached,它是内核使用特定的算法计算出来的,是一个估计值。它与MemFree的关键区别点在于,MemFree是说的系统层面,MemAvailable是说的应用程序层面。
- Buffer:缓冲区内存数
- Cache:缓存区内存数
- Shared:多个进程共享的内存空间[2]
- 查看linux 版本,输入指令
cat version
- 从启动到当前时间所经过的时间,执行指令
uptime
使用常用的Linux命令 #
1) 查看当前目录,pwd命令用于显示当前目录,效果如下所示。
2)罗列文件,ls命令用于查看文件与目录,回到根目录查看列表(..表示返回上一级目录,/表示返回根目录),效果如下所示。
3)拷贝文件或目录,cp命令用于拷贝文件,若拷贝的对象为目录,则需要使用-r参数,回到home/hadoop/目录下,创建test目录,然后拷贝test目录,效果如下所示。
4)移动或重命名文件或目录,mv命令用于移动文件,在实际使用中,也常用于重命名文件或目录,把test2移动到test目录下。
然后进入test目录,效果如下所示
5)删除文件或目录,rm命令用于删除文件,若删除的对象为目录,则需要使用-r参数,效果如下所示。
6)压缩与解压文件,tar命令用于文件压缩与解压,参数中的c表示压缩,x表示解压缩,如
tar -zxvf /home/hadoop/test/test.tar.gz
7)cat命令,主要有三大功能:一次显示整个文件,从键盘创建一个文件(只能创建新文件,不能编辑已有文件),将几个文件合并为一个文件。
首先创建test1文件,文本编辑为hello file1, 然后退出(ctrl c 或者ctrl d退出),再使用cat命令查看test1文件内容。
然后创建test2文件,把test1和test2合并为一个文件test,如下图所示:
注: cat « EOF的语句,EOF是“end of file”,表示文本结束符,可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序。
1、cat«EOF,以EOF输入字符为标准输入结束:
2、cat>filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束:
3、cat>filename«EOF,以EOF作为输入结束,和ctrl+d的作用一样[3]
创建test3,以EOF作为输入结束的标志,如下图:
cat指令经常和其他指令组合使用,导致看起来很复杂,例如:cat » ~/.bashrc
这里~/是进入当前用户的主目录。比如我用的用户名是Hadoop,则命令 cd ~/ 就进入了/home/Hadoop目录。而.bashrc 是进入.bashrc文件夹,bashrc与profile都用于保存用户的环境信息,bashrc用于非交互式(non-loginshell),而profile用于交互式(login shell)
所以这个指令就是指显示用户目录下的.bashrc目录[4] 。
说明:‘<’,‘«’,‘>’,‘»’的含义,>
和>>
的区别在与,>
的作用是直接将原先内容覆盖掉,替换为新的内容,是w
。而>>
的作用是在原有的内容上追加内容,是a
。符号<
,它的作用就是>
反过来,从文件中读取内容,然后作为输入[5]
。
8)date命令 ,date命令的功能是显示和设置系统日期和时间。
- #date //显示当前日期
- #date -s //设置当前时间,只有root权限才能设置,其他只能查看。
- #date -s 20211010 //设置成20211010,这样会把具体时间设置成空00:00:00
- #date -s 12:23:23 //设置具体时间,不会对日期做更改
- #date -s “12:12:23 2021-10-10″ //这样可以设置全部时间
其中,CST:中国标准时间(China Standard Time),UTC:协调世界时,又称世界标准时间,GMT:格林尼治标准时间。
9)man命令,man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息
语法:man+(选项)+参数
其中选项
-a:在所有的man帮助手册中搜索;
-f:等价于whatis指令,显示给定关键字的简短描述信息;
-P:指定内容时使用分页程序;
-M:指定man手册搜索的路径。
查看ls指令的作用,
10)grep命令,grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。
使用指令grep file *test在当前目录中,查找后缀有 test 字样的文件中包含 file 字符串的文件,并打印出该行。
11)tail命令,tail 命令可用于查看文件结尾的内容,
- tail -f filename
说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。
- tail -n 20 filename
说明:显示filename最后20行。
打开文件test3,在虚拟机里加入一些文本信息,然后执行上面的指令进行测试:
12)head指令,head 用来显示档案的开头至标准输出中,和tail指令对应。
命令参数:
-q 隐藏文件名
-v 显示文件名
-c<字节> 显示字节数
-n<行数> 显示的行数
- head -q filename
说明:监视filename文件的头部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。
- head -n 20 filename
说明:显示filename最后20行。[6]
13)wc指令,利用wc指令我们可以计算文件的Byte数、字数、或是列数
wc -c filename:显示一个文件的字节数
wc -m filename:显示一个文件的字符数
wc -l filename:显示一个文件的行数
wc -L filename:显示一个文件中的最长行的长度
wc -w filename:显示一个文件的字数
直接输入指令wc filename输出信息依次是:行数 字数 字节数 文件名称,如下图:
14) who指令,who 命令显示关于当前在本地系统上的所有用户的信息。显示以下内容:登录名、tty、登录日期和时间。输入whoami 显示登录名、tty、您登录的日期和时间。如果用户是从一个远程机器登录的,那么该机器的主机名也会被显示出来。
使用vi编辑器编辑文件,熟悉vi编辑器的各种操作模式和常用命令。 #
在命令行输入“vim 文件名”后,默认进入“命令模式”,不可编辑文档,需按“i”键,方可编辑文档,编辑结束后,需按“ESC”键,先退回命令模式,再按“:”进入末行模式,接着输入“wq”方可保存退出。
vi/vim共分为三种工作模式:命令模式(Command mode)、输入模式(Insert mode)和末行模式(Last line mode)。用户刚刚启动vi/vim,便进入了命令模式,此状态下敲击键盘动作会被vim识别为命令,而非输入字符,命令模式下是常用的几个命令包括:“i”切换到输入模式,以输入字符;“x”删除当前光标所在处的字符;“:”切换到末行模式,以在最底端一行输入命令。在命令模式下按下“i”就进入了输入模式,在输入模式中,可以使用若干按键完成相应任务,例如字符按键以及Shift组合,输入字符;Insert按键切换光标为输入/替换模式,光标将变成竖线/下划线;ESC按键退出输入模式,切换到命令模式等。在命令模式下按下“:”(英文冒号)就进入末行模式,末行模式下可以输入单个或多个字符的命令,可用的命令非常多,例“q”可以退出程序,“w”用于保存文件等,按ESC键可随时退出末行模式。
常用快捷键:
yy拷贝当前行,5yy拷贝当前行向下的5行,p粘贴;
dd删除当前行,5dd删除当前行向下的5行。
使用vi编辑器编写一段Shell程序,取名为mycal,实现与Linux中cal命令类似的功能 #
当输入$mycal [月份名] 年时,屏幕输出指定的年月的月历,参数可以是英文或者是数字。例如:
$mycal October 2009
屏幕输出2009年10月的月历。
将脚本放到/usr/local/sbin/目录下,利用vim mycal.sh来创建脚本,脚本代码如下[7] :
#!/bin/bash
case $1 in
"1"|"January")
cal 1 $2;;
"2"|"February")
cal 2 $2;;
"3"|"March")
cal 3 $2;;
"4"|"April")
cal 4 $2;;
"5"|"May")
cal 5 $2;;
"6"|"June")
cal 6 $2;;
"7"|"July")
cal 7 $2;;
"8"|"August")
cal 8 $2;;
"9"|"September")
cal 9 $2;;
"10"|"October")
cal 10 $2;;
"11"|"November")
cal 11 $2;;
"12"|"December")
cal 12 $2;;
"")
echo "Please input mouth and year"
esac
使用指令
sh mycal.sh
来启动脚本,第一行一定是 “#! /bin/bash” 它代表的意思是,该文件使用的是bash语法。如果不设置该行,shell脚本就不能被执行。’#!’是一个约定标记,用来告诉解释器采用哪一种shell。
如果输入指令./mycal.sh4 2021显示没有权限,用
chmod +x mycal.sh
给脚本赋予权限即可[8] 。
参考 #
- ^ https://blog.csdn.net/robin88129/article/details/84462981
- ^ https://blog.51cto.com/xujpxm/1961072
- ^ https://www.runoob.com/linux/linux-comm-cat.html
- ^ https://blog.csdn.net/qing101hua/article/details/53086318
- ^ https://blog.csdn.net/qq754772661/article/details/111176340
- ^ https://blog.csdn.net/youmatterhsp/article/details/80298360
- ^ https://max.book118.com/html/2018/0608/171535845.shtm
- ^ https://www.cnblogs.com/zhang-jun-jie/p/9266858.html
Last modified on 2021-09-16