本文主要总结一些常用的Linux命令。
系统登录
Linux
默认提供6
个Terminal
供用于登录,切换方式为Ctrl+Alt+[F1-F6]
,名称分别为tty1-tty6
,使用Ctrl+Alt+F7
可切换至图形界面。- 若以纯文本环境启动
Linux
,若想启动图形界面,可使用startx
命令启动图形界面。 - 使用
man + 命令
可查看帮助,如man date
。 - 使用
shutdown
命令关机,如shutdown -h now
表示现在关机,shutdown -h 20:25
表示20:25
关机。
Linux目录存储结构
- 根目录 /
- 根目录的第一级子目录
/home : 所有普通用户的家目录
/bin:系统的命令对应的可执行文件
/etc:系统的配置目录
/dev:设备目录
/usr:第三方插件的资源,文档
/root:root用户的家目录
/proc:虚拟目录,以进程为单位存储内存信息的映射
/boot:系统启动时,需要的核心镜像文件
/lib:库文件
此处解释一下两个概念:绝对路径与相对路径。
绝对路径:从根目录开始的路径
相对路径:从当前目录开始的路径
文件类型,操作命令与文件权限
- 获取当前所在位置的绝对路径:pwd
- 切换路径:cd 路径 e.g. cd /bin 切换到bin目录
- 查看当前工作目录下的文件:ls
显示所有文件(包含隐藏文件):ls -a
显示文件对应的inode节点号,是一个唯一值:ls -i
显示文件的类型,权限,所有者等信息:ls -l
Linux上一切皆文件,但文件是有类型的,主要分为以下5种(文件类型是根据显示的字母确定):
- 普通文件 -
- 目录文件 d
- 管道文件 p
- 链接文件 l
软链接:类似于Windows上的快捷方式 创建方式:ln -s 源文件的路径+文件名 链接文件名
硬链接:相当于源文件的别名 创建方式:ln 源文件的路径+文件名 链接文件名
- 设备文件 字符设备文件(c) 块设备文件(b) 套接字文件(s)
文件权限共有9位(Linux上的每一个文件对不同用户提供不同的访问权限)
rwx rwx rwx r:读权限 w: 写权限 x:对于普通文件,表示可执行;对于目录文件,表示可进入
所有者 组用户 其他用户
普通文件 目录文件的管理命令
| 普通文件 | 目录文件 |
创建 | touch 文件名 | mkdir 目录名 |
删除 | rm 文件名 | rmdir(删除空文件) / rm -r (删除有内容的) 此处的r是递归 |
拷贝 | cp 源文件 目的地路径 | cp -r 源目录 目的地路径 |
剪切 | mv 源文件 目的路径 | mv |
重命名 | mv 源文件 源文件路径/newname | mv |
修改属性 |
|
|
修改权限 | chmod
|
|
修改属主 | chown newuser filename (只能root用户执行) |
|
修改组用户 | chgrp newgroup filename(只能root用户执行) |
|
查看文件内容 | more cat less head tail | ls |
编辑文件内容 | vi / vim | .. |
文件压缩与解压 | tar / gzip | .. |
Vim编辑器
末行模式:
- :w 保存文本内容
- :q 退出编辑
- wq 保存并退出
- :w newfilename 另存为
- q! 强制退出
- : set nu 显示行号
- : set nonu 取消显示行号
命令模式
光标移动
- Shift + 4 将光标移动到当前行的末尾
- Shift + 6 将光标移动到当前行的开始
- Shift + g 将光标移动到文件最后一行
- Shift + gg 将光标移动到文件首行
- num Shift + g 将光标移动到文件的num行
- Shift + l 将光标移动到当前页的最后一行
- Shift + h 将光标移动到当前页的首行
- Shift + m 将光标移动到当前页的中间一行
- Ctrl + f 向上翻页
- Ctrl + b 向下翻页
文件内容批处理
- dd 删除一行
- n dd 删除n行
- yy 复制一行
- n yy 复制n行
- p 拷贝
- u 撤销上次操作
- Shift + c 删除光标到行尾的内容并开始编辑
- cc 删除当前行并进入编辑模式
- r 字符 将当前字符替换成新字符
- Shift + r 进入替换模式
文本内容的查看 cat more less head tail
搜索文件
- find -name filename 路径
- find -perm 权限
- find -user 用户
- find -group 组
- find -size 大小
- find -type 类型
- find -ctime 创建时间
- find -atime 修改时间
程序管理
- 触发任何一个事件时,系统都会将它定义为一个进程,并且给予这个进程一个
ID
,称为PID
,同时触发这个进程的用户和相关属性关系,给予这个PID
一组有效的权限设置。 - 父进程可通过复制(
fork
)方式产生一模一样的子进程,然后被复制出来的子进程再以exec
方式执行实际要进行的进程,最终就成为一个子进程。 - 系统先以
fork
方式复制一个与父进程相同的暂存进程,这个进程与父进程唯一的区别就是PID
不同,这个暂存进程还会多一个PPID
的参数,其为父进程的标识符。 - 可使用
&
将任务丢到后台进行。(避免使用ctrl + c
中断,若注销时,还是会中断执行) - 可使用
jobs -l
命令查看目前的后台工作状态。 - 使用
fg %jobnumber
命令将后台工作拿到前台执行,如先使用vim kill.sh &
,然后使用jobs -l
,最后使用fg 1
命令。 - 使用
bg %jobnumber
命令运行后台命令。 - 使用
kill -9 %jobnumber
删除指定后台任务。 nohup [命令与参数]
在终端机前台中工作,nohup [命令与参数] &
在终端机后台中工作。即便注销,也依旧执行。ps aux
可查看所有的进程数据。top
命令监控进程运行状态,如top -d 2
表示两秒更新一次各进程状态。uname
命令可查看系统与内核相关信息,如uname -s
查看系统内核名称。uptime
命令可查看系统启动时间与工作负载。fuser
命令通过文件找出正在使用该文件的程序。lsof
命令列出被进程所打开的文件名。pidof
命令找出某个正在执行的进程的PID
。