1.Linux目录系统结构
It makes sense to explore the Linux filesystem from a terminal window.
In fact, that is the name of the first tool you'll install to help you on the way: tree. If you are using Ubuntu or Debian, you can do:
sudo apt install tree
Once installed, stay in your terminal window and run tree like this:
tree /
Notes: The /
in the instruction above refers to the root directory. The root directory is the one from which all other directories branch off from.
如果你已经使用过系统一段时间,整个文件系统结构会比较庞大,因为系统会不断产生各种文件(logging, cacheing, and storing temporal files).
Don't feel overwhelmed, though. Instead, try this:
(以Jetson TX2自带ubuntu系统为例)
2.Shell编程
Shell是linux中的一个命令行解释器,是和linux内核交流的桥梁。下面介绍一些常用的命令:
(1)history命令管理功能
linux的command history存放在~/.bash_history文件中,bash启动的时候会读取该文件并载入到内存中,退出时也会把内存中的历史回写到该文件。
可以将~/.bash_history文件中的内容输出到其他文件中以备查看:
- 显示历史命令
history 显示全部历史 history 数字 显示之前执行过的若干命令,例:history 2 显示执行过的上两条命令 使用上下箭头键也可以查看上一条根下一条命令
- 运行历史命令
!! 运行上一条命令 !88 运行第88条命令 !88 /test 运行第88条命令并在命令后面加上/test !?CF? 运行上一个包含CF字符串的命令 !ls 运行上一个ls命令 !ls:s/CF/l 运行上一个ls命令,其中把CF替换成l fc 编辑并运行上一个历史命令 fc 66 编辑并运行第66个历史命令 fc -e /usr/bin/vim 66 使用vim编辑第66个命令并运行
- 搜索历史命令
使用ctrl+r搜索历史中的字符串,重复按ctrl+r可以在历史命令列表中不断的向前搜索包含字符串的命令,回车就会执行查找的命令
- 清空历史命令
history -c
- 历史命令记录删除
修改/etc/profile将HISTSIZE=1000改成0或1 清除用户home路径下.bash_history
man find
查看端口使用情况
netstat用来查看系统当前系统网络状态信息,包括端口,连接情况等:
lsof通过-i
参数能查看端口的连接情况,-i后跟冒号端口可以查看指定端口信息,直接-i是系统当前所有打开的端口:
注:lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (tcp) 和用户数据报协议 (udp) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表,这对系统监测以及排错将大有裨益。
这里介绍lsof的两个有用之处:
(1)查找谁在使用文件系统
在卸载文件系统时,如果该文件系统中有任何打开的文件,操作通常将会失败。那么通过lsof可以找出那些进程在使用当前要卸载的文件系统。
(2)恢复删除的文件
当linux计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹。管理错误也可能导致意外删除重要的文件,比如在清理旧日志时,意外地删除了数据库的活动事务日志。有时可以通过lsof来恢复这些文件。
当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录索引节点。
当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,我们就可以通过lsof从/proc目录下恢复该文件的内容。
查看服务状态和启动停止服务
chkconfig --list
查看磁盘分区情况,df
或者:
查看磁盘使用情况,du(disk usage)
References: