半个小时学会入门使用Linux基础命令
一、Linux基本目录说明
a、根目录下的各子目录概述
执行 cd /
命令进入到根/目录,ls
列出所有根目录/下的子目录,
如下图:
文字的颜色表示
颜色 | 代表含义 |
---|---|
蓝色 | 文件夹 |
灰色 | 普通文件 |
绿色 | 可执行文件 |
红色 | 压缩文件 |
天蓝色 | 链接文件(快捷方式) |
常用目录的作用如下:
目录 | 作用 |
---|---|
bin | 存放普通用户可执行的指令,普通用户也可以执行 |
boot | 开机引导目录,包括 Linux 内核文件与开机所需要的文件 |
dev | 设备目录,所有的硬件设备及周边均放置在这个设备目录中 |
etc | 各种配置文件目录,大部分配置属性均存放在这里 |
home | 主要存放普通用户个人数据,每个用户的设置文件、桌面文件夹、用户数据等。每个用户都有自己的用户目录,位置为:/home/用户名 |
lib | 开机时常用的动态链接库,bin 及 sbin 指令也会调用对应的 lib 库 |
tmp | 临时文件存放目录 |
usr | 应用程序放置目录 |
b、详细目录介绍
链接: Linux系统主要目录功能介绍,Linux 根目录 /.
二、基础命令使用
a、常用基础命令
命令 | 作用说明 |
---|---|
cd | 切换目录 |
cp(cp -r) | 复制文件或文件夹 |
find | 查找文件 |
ls(ls -a) | 查看目录下的信息(包括隐藏文件) |
ls -l (ll) | 列出目录下的文件和详细信息 |
mkdir | 创建目录 |
touch | 创建文件 |
mv | 移动/重命名文件夹和目录 |
rm(rm -rf) | 删除文件或目录 |
pwd | 显示当前目录完整路径 |
rmdir | 删除空文件夹 |
man / info | 查看帮助 |
b、快捷键
快捷键 | 作用说明 |
---|---|
Ctrl + U | 清空至行首 |
Ctrl + K | 清空至行尾 |
Ctrl + L | 清屏 |
Ctrl + C | 终止执行的命令 |
c、其他命令使用
tree
目录树
查看目录树。使用 tree
命令方便地查看目录树,如果系统没有安装 tree 命令,则需要首先进行安装。CentOS系统安装命令如下: sudo yum install tree
vim
编辑
编辑器使用方法。vim
编辑器是 CentOS 系统中使用频率比较高的编辑器。通过 vim <文件名>
的方式可以编辑文档,如果文件不存在,则会新建一个文档来进行编辑。
vim
共分为三种模式,分别是命令模式(Command mode
),输入模式(Insert mode
)和底线命令模式(Last line mode
)
vim
命令模式(Command mode
)
启动 vim
后就进入了命令模式,此状态下敲击键盘动作会被认为是命令,而非输入字符。常用的几个命令:
i
切换到输入模式,以输入字符;
:
切换到底线命令模式,以在最底一行输入命令;
a
切换到输入文字模式;
命令模式只有一些最基本的命令,要依靠底线命令模式输入更多命令。
vim
输入模式(Insert mode
)
在命令模式下按下 i
就进入了输入模式。在输入模式中,可以使用以下按键:
命令 | 功能 |
---|---|
:set nu | 行号显示 |
:set nonu | 行号显示取消 |
PageDown / Ctrl + F | 向上翻页 |
bash PageUp / Ctrl + B | 向下翻页 |
1G / gg | 跳转到文件首行 |
G | 跳转到末尾行 |
#G | 跳转到第 # 行 |
d / Del | 插入 |
dd | 删除当前行 |
#dd | 删除从光标处开始的 # 行内容 |
yy | 复制 |
#yy | 复制从光标处开始的 # 行内容 |
p | 将缓冲区中的内容粘贴到光标位置处之后 |
其他使用方法,参照运行查看 man vim
vim
底线命令模式(Last line mode
)
在命令模式下按下:
(英文冒号)就进入了底线命令模式。
在底线命令模式中,基本的命令有:
命令 | 说明 |
---|---|
:q | 退出程序 |
:q! | 放弃对文件内容的修改并退出 |
:w | 保存文件 |
:w /dir/dir2/filename | 另存为filename |
:wq | 保存文件并退出 |
more 、less、cat
查看文件内容
查看文件内容的命令:
功能 | 命令 |
---|---|
浏览文件全部内容 | more / less |
查看文件内容(显示行号) | cat (cat -n) |
在文本文件中查找字符串(显示行号) | grep (grep <关键字> <要查找的文件> -n) |
|
管道符
将一个命令的执行结果作为另一个命令的输入来执行,格式 cmd1 | cmd2 ... | cmdn
比如,将 /etc
目录中的文件名以 fd
开头的文件列举出来 ls /etc | grep fd*
比如,查看 /etc
目录下的内容,并使用 less
的形式浏览 ls /etc | less
>、 >>、 <、 2>、&>
重定向
命令 | 功能 |
---|---|
> | 输出重定向,已有原来的文件则替换 |
>> | 输出重定向,如果原来的文件存在则追加在原来的内容之前 |
< | 输入重定向,即命令的输入不通过键盘来完成,而通过其他的方式 |
2> | 错误重定向 |
&> | 输出重定向与错误重定向同时实现 |
ps
进程管理
进程: 是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
ps aux
查看系统中所有进程,使用 BSD 操作系统格式;
ps -le
查看系统中所有进程,使用 Linux 标准命令格式;
ps -aux
命令输出如下图:
输出的格式含义:
列名 | 说明 |
---|---|
USER | 该进程由哪个用户产生的 |
PID | 进程的 ID |
%CPU | 进程占用 CPU 资源的百分比 |
%MEM | 进程占用物理内存的百分比 |
VSZ | 进程占用虚拟内存的大小,单位 KB |
RSS | 进程占用实际物理内存的大小,单位 KB |
TTY | 进程在哪个终端运行的,tty1-tty7 代表本地控制台终端,tty1-tty6 是本地的字符界面终端,tty7 是图形终端,pts/0-255 代表虚拟终端,如果是 ? 则代表是系统进程 |
STAT | 进程状态,R-运行,S-睡眠,T-停止,s-包含子进程,±位于后台 |
START | 进程启动时间 |
TIME | 进程占用 CPU 的运算时间,注意不是系统时间 |
COMMAND | 产生此进程的命令名 |
pstree
进程树
pstree
查看进程树,进程依赖关系
top
查看系统状态
top
命令的交互模式中可以执行下面命令:
命令 | 说明 |
---|---|
?/h | 显示交互模式的帮助 |
P | 以 CPU 使用率排序,默认就是此项 |
M | 以内存的使用率排序 |
N | 以 PID 排序 |
q | 退出 top |
load average
后面的三个数字的意思,分别为系统在之前 1 分钟,5 分钟,15分钟的平均负载。
一般认为小于 1 时,负载较小。如果大于 1,系统已经超出负荷。
如果是多核 CPU,那么这个数字应该不大于你的 CPU 核心数,比如双核 CPU 时应该不大于 2。
Tasks
后面的 zombie,意思为僵尸进程,一般是进程无法正常运行,也没有正常退出卡住了,也有可能这个进程正在终止过程中,需要人工干预。
%CPU(s)
的 id 是主要需要看的,意为空闲 CPU 的百分比
kill、killall、pkill
结束进程
功能 | 命令 |
---|---|
杀死某个进程 | kill |
按照进程名杀死进程 | killall |
按照进程名杀死进程,加 -t 可以按照终端号踢出用户 | pkill |
杀死进程时,常用信号:
信号代号 | 信号名称 | 说明 |
---|---|---|
1 | SIGHUP | 让进程立即关闭,然后重新读取配置文件之后重启,平滑重启 |
2 | SIGINT | 程序终止信号,用于终止前台进程,相当于 ctrl + c 快捷键 |
9 | SIGKILL | 强制终止,用来立即结束程序的运行,本信号不能被阻塞、处理和忽略 |
15 | SIGTERM | 正常结束的信号,kill 命令默认就是这个信号,有时候进程已经发生问题,正常无法终止,此时会使用 -9 信号 |
正常结束 kill -1 2020
或者强制结束进程 kill -9 2020
nice、renice
修改进程优先级
使用 ps -le
ps -le | more
来查看进程优先级:
PRI
代表 Priority
NI
代表 Nice
这两个值都是优先级,数字越小代表该进程优先级越高。
用户只能修改 NI
,不能直接修改 PRI
,但系统最终取 PRI + NI
的值。
NI
值的范围是 -20 到 19,
普通用户调整 NI
值的范围是 0-19,而且只能调整自己的进程,
root 用户才能设定进程 NI
值为负值。
使用 nice
命令来修改优先级,命令格式为 nice <选项>
nice
命令可以给新执行的命令直接赋予 NI
值,但是不能修改已经存在进程的 NI
值。
选项 -n
值 给命令赋予 NI
值。
比如修改 apache 的进程优先级 nice -n -5 service httpd start
如果要修改已存在的进程的优先级,需要使用 renice
命令,renice <优先级> PDID
,PID
为某一个进程的 ID
。
比如 renice -10 20206
修改 ID 20206
的进程 NI
值为 -10
jobs
任务管理
1、当前的登录终端,只能管理当前终端的工作,而不能管理其他登录终端的工作
2、放入后台的命令必须可以持续运行一段时间,这样我们才能扑捉和操作这个工作
3、放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行
进程放入后台有两个主要命令:
运行方式 | 说明 |
---|---|
<命令> & | 把命令放入后台,并在后台执行 |
<命令> | 执行后按下 ctrl + z 快捷键,放在后台暂停 |
查看正在后台的任务,可以使用 jobs [-l]
命令,-l
是显示 PID。
-
代表倒数第二个放入后台的工作
+
代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作
恢复到前台:
fg %工作号
将后台暂停的工作恢复到前台执行,这里的 % 可以省略,注意工作号和 PID 的区别;
bg %工作号
将后台暂停的工作恢复到后台执行,后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行;
后台命令脱离登陆终端执行的方法:
方式1、把需要后台执行的命令加入 /etc/rc.local
文件,随系统开机启动
方式2、使用系统定时任务,让系统在指定的时间执行某个后台命令
方式3、使用 nohup 命令
nohup
命令的使用方法 nohup <命令> &
scp
文件拷贝
通过 scp 命令来上传文件,是 Linux 系统下基于 SSH 登陆进行安全的远程文件拷贝命令,scp 是 secure copy 的简写,可以使用它上传本地文件夹到远程服务器,也可以从远程服务器上下载文件夹到本地
# 上传文件夹到远程服务器
scp -P port -r /local/dir username@servername:/remote/dir
# scp -p 22 -r /u2020/a root@12.10.3.11:/u2020/b
# 从远程服务器下载文件夹
scp -P port -r username@servername:/remote/dir/ /local/dir
# scp -p 22 -r root@12.10.3.11:/u2020/b /u2020/a
-r
参数表示递归复制,包含文件夹下所有文件,如果要上传单个文件,则不需要 -r
大写的 P
表示的是端口, SSH 端口 是22 ,则可以不需要 -P
参数
rz、sz
文件上传下载
1、安装 lrzsz
sudo yum install lrzsz
2、sz命令发送文件到本地
sz filename
输入命令后会弹出接受文件选择目录
3、rz命令本地上传文件到服务器
rz
执行该命令后,在弹出框中选择要上传的文件即可
上传到当前目录下,如何你要上传到/home/u2020下,需直接先切换带目下
cd /home/u2020
rz