Linux 常用命令
Linux 命令语法:
命令 【选项】 【参数】
当有多个选项时,可以写在一起
一般选项有简化和完整写法,如 -a 和 --all 等效
文件命令 #
pwd #
打印当前工作目录
- 英文:print working directory
$ pwd
/c/Users/luojian
2
ls #
列出目录内容
英文:list
常用选项:
- -l:(line)按行输出,详细信息展示
- -a:(all)显示所有文件,包括隐藏文件
- -h:(humanity)人性化的方式显示文件大小
另外,这些参数可以组合使用,例如 ls -la,按行显示当前目录下所有文件的详细信息
cd #
切换目录
- 英文:change directory
- 按 Tab 键可以补全命令和目录
cd # 进入用户主目录(home)
cd ~ # 进入用户主目录
cd / # 进入根目录
cd . # 当前目录
cd .. # 返回上级目录
cd ../.. # 返回上两级目录
cd dir # 进入dir目录,dir为相对路径或者绝对路径
2
3
4
5
6
7
mkdir #
创建目录/文件夹
- 英文:make directory
mkdir temp # 在当前目录下创建文件夹temp
mkdir test/temp # 在当前目录下的test文件夹中创建temp目录
2
rmdir #
删除目录/文件夹
- 英文:remove directory
rm #
删除文件
- 英文:remove
- 常用选项
- -f:(force)忽略不存在的文件,强制删除,不会出现警告信息
- -i:(interactive)互动模式,在删除前会询问用户是否确认删除
- -r:(recursive, 递归的)将列出的全部目录及其子目录递归删除
mv #
移动或者重命名文件
- 英文:move
- 常用选项
- -f:如果目标文件已存在,不会询问而直接覆盖
- -i:若目标文件已经存在,会询问是否覆盖
- -u:(update)若目标文件已经存在,且比目标文件新,才会更新
mv file1 file2 file3 dir # 将文件file1、file2、file3移动到目录dir中
mv file1 file2 # 将文件file1重命名为file2
mv * ../ # 移动当前文件夹下的所有文件到上一级目录
2
3
cp #
将源文件或目录复制到目标文件或目录中
- 英文:copy
- 常用选项
- -f:强制复制文件或目录,不论目标文件或目录是否已经存在
- -i:覆盖既有文件前先询问用户
- -r:递归处理,将指定目录下的所有文件和子目录递归处理
touch #
更新文件的访问时间或者创建一个空文件
touch a.txt # 当a.txt已经存在时,将a.txt的访问时间更新为当前时间;当a.txt不存在时,创建空文件a.txt
vim #
创建或打开文件并使用vim编辑器编辑
vim a.txt # a.txt不存在时,创建a.txt,同时使用vim编辑器打开a.txt
vim编辑器有三种模式:命令模式(command mode)、输入模式(insert mode)和底线命令模式(last line mode):
刚刚启动vim,即 vim a.txt时,进入命令模式,此时输入i(或任意非esc键进入输入模式),输入模式下可对文件进行编辑,输入模式下按esc键,退出输入模式,切换到命令模式,此时按:(英文冒号)进入底线命令模式,此时:
- q:退出vim
- w:保存文件
- wq:保存并退出
cat #
连接多个文件并打印到标准输出(打印文件内容到控制台)
主要用途:
- 显示文件内容,如果没有文件或文件为 - 则读取标准输入。
- 将多个文件的内容进行连接并打印到标准输出。
- 显示文件内容中的不可见字符(控制字符、换行符、制表符等)。
常用选项:
- -s:压缩连续的空行到一行
- -n:对所有行编号,从1开始编号
- -b:只对非空行编号,从1开始编号
cat 1.log 2.log 3.log # 合并显示多个文件
echo '######' | cat - 1.log # 将标准输入的内容和文件内容一并显示
2
head #
显示文件的开头部分
head file # 显示file文件的前10行
head -n file # 显示file文件的前n行
2
tail #
在控制台输出指定文件的末尾若干行
tail file # 显示file文件的末尾10行
tail -6 file # 显示file文件的末尾6行
tail -n +6 file # 从第6行开始显示file文件
2
3
文件权限 #
chmod #
用来变更文件或目录的权限
Linux 系统中,每个用户的角色和权限划分的很细致也很严格,每个文件(目录)都设有访问访问许可权限,利用这种机制来决定某个用户通过某种方式对文件(目录)进行读、写、执行等操作。
操作文件或目录的用户,有三种不同类型:文件所有者、群组用户、其他用户。
文件或目录的权限又分为3种:只读、只写、可执行:
权限 | 权限数值 | 二进制 | 具体作用 |
---|---|---|---|
r | 4 | 00000100 | read,读取。浏览目录、读取文件内容 |
w | 2 | 00000010 | write,写入。删除、移动目录或目录内文件,新增或修改文件内容 |
x | 1 | 00000001 | execute,执行。进入目录,执行文件 |
依照上面的表格,权限组合就是对应权限值求和:
7 = 4 + 2 + 1 读写运行权限
5 = 4 + 1 读和运行权限
4 = 4 只读权限
chmod 754 filename # 将filename文件的读写运行权限赋予文件所有者,把读和运行的权限赋予群组用户,把读的权限赋予其他用户
chmod 777 filename # 将filename文件的读写运行权限赋予给所有用户
2
进程管理 #
ps #
查看当前系统的进程状态
- 英文:process
kill #
发送信号到进程
- 常用选项
- -s sig:信号名称
- -n sig:信号名称对应的数字
- -l:列出信号名称
kill PID # 强制中止进程id为PID的进程
kill -s KILL PID # 强制中止进程id为PID的进程
kill -n 9 PID # 同上,强制中止进程id为PID的进程(KILL信号对应的数字为9)
2
3
系统信息 #
date #
显示当前的日期和时间
whoami #
显示当前的用户名
df #
查看磁盘空间占用情况
- 常用选项
- -a:列出所有的文件系统
- -k:以KB为单位显示各文件系统的状态
- -m:以MB为单位显示各文件系统的状态
- -h:以人们较易阅读的 GB、MB、KB 等格式自行显示
搜索和连接 #
grep #
强大的文本搜索工具
- 英文:global search regular expression and print out the line,全面搜索正则表达式并把行打印出来
- 常用选项:
- -n:输出匹配行时在行开头增加行序号
- -c:统计文件中包含匹配项的行数
grep pattern file # 在file文件中搜索出包含“pattern”的行并打印出来
grep -r pattern dir # 递归搜索dir中匹配pattern的内容
command | grep pattern # 搜索command输出中匹配pattern的内容
2
3
ssh #
openssh套件中的客户端连接工具,ssh端口号是22
ssh user@host # 以user用户身份连接到host
ssh -p port user@host # 在端口port以user用户身份连接到host
ssh-keygen # 为当前用户生成 ssh 公钥 + 私钥
ssh-copy-id user@host # 将秘钥添加到host到以实现无密码登录
2
3
4
命令快捷键 #
命令 | 含义 |
---|---|
ctrl + c | 强制终止当前命令 |
ctrl + l | 清屏 |
ctrl + a | 光标移动到命令行首 |
ctrl + e | 光标移动到命令行尾 |
ctrl + u | 从光标所在的位置删除到行首 |
ctrl + z | 把命令放入后台 |
ctrl + r | 在历史命令中搜索 |
ctrl + s | 停止滚屏 |
ctrl + q | 恢复滚屏 |
管道符号 #
多命令执行顺序 #
- ; 分号:没有任何逻辑关系的连接符。当多个命令用分号连接时,各命令之间的执行成功与否彼此没有任何影响,都会一条一条执行下去。
- || 逻辑或:当用此连接符连接多个命令时,前面的命令执行成功,则后面的命令不会执行。前面的命令执行失败,后面的命令才会执行。
- && 逻辑与:当用此连接符连接多个命令时,前面的命令执行成功,才会执行后面的命令,前面的命令执行失败,后面的命令不会执行,与 || 正好相反。
管道符 #
| 管道符:
- 命令1 | 命令2
- 命令1 的正确输出会作为命令2 的操作对象
- 前面的命令执行失败,则会报错,若后面的命令无法处理前面命令的输出,也会报错