linux常用基本命令(上)
1.帮助命令
1.1 man获得帮助信息
- 基本语法
man [命令或配置文件] (功能:获得帮助信息) - 显示说明
信息 | 功能 |
---|---|
NAME | 命令的名称和单行描述 |
SYNOPSIS | 怎样使用命令 |
DESCRIPTION | 命令功能的深入探讨 |
EXAMPLES | 怎样使用命令的例子 |
SEE ALSO | 相关主题(通常是手册页) |
用法:如man ls
1.2 Linux常用快捷键
常用快捷键 | 功能 |
---|---|
ctrl+c | 停止 |
ctrl+l | 清屏,等同于clear;彻底清屏是reset |
tab键 | 自动补全;提示 |
上下键 | 查找执行过的命令 |
2.文件目录类
2.1 pwd显示当前工作目录的绝对路径
基本语法:
pwd
2.2 ls列出目录的内容
基本语法:
ls [选项][目录或是文件]
选项说明:
选项 | 功能 |
---|---|
-a | 全部的文件,连同隐藏档(开头为.的文件)一起列出来(常用) |
-l | 长数据串列出来,包含文件的属性,权限等数据,常用等价于“ll” |
2.3 显示说明
每行列出的信息依次是:文件类型与权限,链接数,文件属主,文件属组,文件大小用byte来表示,建立或最近修改的时间,名字
3.cd切换目录
3.1 基本语法
cd 参数
3.2 参数说明
参数 | 功能 |
---|---|
cd绝对路径 | 切换路径 |
cd相对路径 | 切换路径 |
cd~或者cd | 回到自己的home目录 |
cd - | 回到上一次所在目录 |
cd ./ | 回到当前目录的上一级目录 |
cd -P | 跳转到实际物理路径,而非快捷路径 |
4.mkdir创建和创建一个目录
4.1 创建基本语法
mkdir [选项] 要创建的目录
选项参数:-p: 创建多层目录
如:>mkdir -p a/b/c/d
4.2 删除一个空目录
rmdir [选项] 要删除的目录
选项参数:-p: 删除多层目录
如:>rmdir -p a/b/c/d
5.创建空文件
5.1 基本语法
touch 文件名 #(touch默认创建文本文件)
或者使用vim创建新文件
6.cp复制文件或者目录
6.1 基本语法
cp [选项] source dest (功能将source文件复制到dest)
选项:
-r:复制整个文件
参数:
source:源文件
dest:目标文件
强制覆盖不提示:
\cp
7.rm删除文件或目录
基本语法
rm [选项] deleteFile
选项说明
选项 | 功能 |
---|---|
-r | 递归删除目录中所有内容 |
-f | 强制执行删除操作,而不是提示用于进行确认 |
-v | 显示指令的详细执行过程 |
8.mv移动文件与目录或重命名
基本语法
mv oldNameFile newNameFile(功能:重命名)
mv /temp/movefile/targetFolder(功能:移动文件)
9.查看文件内容
9.1 cat基本语法
cat [选项] 文件名
可行性:
-n:显示行号
9.2 more 文件内容分屏查看器
more命令类似于VI编辑器文本过滤:
基本语法:
more 要查看的文件
操作说明:
操作 | 功能说明 |
---|---|
空格 | 向下翻一页 |
enter | 向下翻一行 |
q | 退出文档 |
ctrl+F | 向下滚动一屏 |
ctrl+B | 向上滚动一屏 |
= | 输出当前行号 |
:f | 输出文件名和当前的行号 |
9.3 less分屏显示文件内容
less指令用来分屏查看文件内容
基本语法
less 要查看的文件
操作说明
操作 | 功能说明 |
---|---|
空格 | 向下翻一页 |
pagedown | 向上翻一页 |
pageup | 向下翻一页 |
/字符串 | 向下搜索字符串功能;n:向下查找;N:向上查找; |
?字符串 | 向上搜索字符串功能;n:向上查找;N:向下查找; |
q | 离开less程序 |
10.echo
echo输出内容到控制台
基本语法:
echo [选项] [输出内容]
选项:
-e:支持反斜杠转义字符
字符转换:\,\n,\t
:ll > 目标文件:将ll输出的内容覆盖到目标文件
:ll >>目标文件:将输出内容追加到目标文件
11.head显示文件头部内容
head 文件(查看文件前十行内容)
head -n 文件(查看文件前n行内容)
tail 文件(查看文件后10行内容)
tail - n 文件(查看文件后n行内容)
tail -f 文件(实时追加该文档所有更新)
12.>输出重定向和>>追加
例如:
ls -l > 文件
echo “内容” >> 文件
13.ln 软连接
类似于windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径
基本语法:
创建软链接
ln -s [原文件或目录] [软链接名]
删除软链接
rm -rf 软链接名(注意:不是rm -rf 软链接名/,如果这样操作会将真实目录下的内容删除)
14.history
查看以前操作过的命令
基本语法:
history(查看历史操作记录)
history -c (清空历史操作记录)
Linux关机重启命令
基本语法
命令 | 功能描述 |
---|---|
sync | 将数据由内存同步到硬盘 |
halt | 停机,关闭系统,但不断电 |
poweroff | 关机,断电 |
reboot | 重启,等同于shutdown -r now |
shutdown [选项] 时间 | 关机的一般操作 |
shutdown的选项: | |
选项 | 功能 |
------ | ------ |
-H | 相当于halt,停机 |
-r | -r = reboot重启 |
shutdown的参数表
参数 | 功能 |
---|---|
now | 立即操作 |
时间 | 等待多久后关机(时间单位是分钟) |
Linux 系统中为了提高磁盘的读写效率,对磁盘采取了“预读迟写”操作方式。当用户
保存文件时,Linux核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓
冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,
也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导
致数据丢失。使用sync指令可以立即将缓冲区的数据写入磁盘。
Linux常用命令(下)
时间日期类
基本语法:
date [OPTION]…[FORMAT]
选项说明:
选项 | 功能 |
---|---|
-d<时间字符串> | 显示指定的“时间字符串”表示的时间,而不是当前的时间 |
-s<日期时间> | 设置系统日期时间 |
参数说明:
参数 | 功能 |
---|---|
<+日期时间格式> | 指定显示时使用的日期时间格式 |
date显示当前时间
- date(显示当前时间)
- date +%Y(显示当前年份)
- date +%m(显示当前月份)
- date +%d(显示当前是哪一天)
- date +“%Y-%m-%d %H:%M:%S”(自定义显示当前日期格式)
date 显示非当前日期
- date -d’1 day ago’(显示一天前的时间)
- date -d’-1 day ago’ (显示后一天的时间)
date设置系统时间
date -s 字符串时间
date -s “2017-06-19 20:52:18”(将日期设置为2017年6月19日20:52:18)
ca
cal查看日历
cal [选项] (功能描述:不加选项,显示本月日历)
选项说明:具体某一年,显示这一年的日历
如:
用户管理命令
useradd 添加新用户
基本语法:
useradd 用户名(添加新用户)
useradd -g 组名 用户名(添加新用户到某个组)
实际上是添加到home目录下:
如:以下的新创建的newuser用户就放在home目录下,只是文件名在创建前指定为newacc了
passwd设置用户密码
基本语法
passwd 用户名(设置用户密码)
id查看用户是否存在
基本语法
id 用户名
例如:>id bossxin
查看所有用户:
cat /etc/passwd
su切换用户
基本语法:
su 用户名称(切换用户,只能获得用户的执行权限,不能获得环境变量)
su - 用户名称(切换到用户并获得该用户的环境变量执行权限)
删除用户
基本语法:
userdel 用户名(删除用户但保留用户主目录)
userdel -r 用户名(删除用户和保留用户主目录)
who查看登录用户信息
基本语法
whoami(显示自身用户名称)
who am i(显示登录用户的用户名称以及登录时间)
sudo 设置普通用户具有root权限
修改配置文件
vi /etc/sudoers
找到## Allow root to run any commands anywhere
在root下面一行添加新用户
usermod修改用户组
usermod -g 用户组 用户名(修改用户的初始登录组,给指定的组必须存在,默认组id是1)
groupadd 新增组
group 组名
groupdel删除组
groupde 组名
groupmod修改组
group -n 新组名 旧组名
cat /etc/group查看创建了哪些组
文件权限类
查看文件权限
每一行前十个字母代表文件类型,和权限,第一个字母代表文件类型,第二到第十这9个字母每三个字母代表不同用户基本所有的权限,比如如下图:
chmod改变权限
第一种方法:chmod [{ugoa}]{±=} {rwx} 文件或目录
- u:所有者
- g:所属组
- o:其他用户
- a:所有用户
第二种方法:chmod [mode = 124] [文件目录] - r4,w=2,o=1,r+w+o=7
给所有用户赋予所有权限:chmod 777 文件目录
chown改变所有者
chown [选项] [最终用户] [文件或目录](改变文件或目录的所有者)
chown -o [最终用户] [文件或目录](递归操作改变文件目录的所有者,把该目录下的所有文件的所有者改为最终用户)
chgrp改变所属组
chgrp [最终用户组] [文件或目录](改变文件或者目录的所属组)
find查找文件或者目录
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示到终端
基本语法
find [搜索范围] [选项]
选项说明
选项 | 功能 |
---|---|
-name<查询方式> | 按照指定的文件名进行查找 |
-user<用户名> | 查找属于指定用户名的所有文件 |
-size<文件大小> | 查找满足指定大小的文件 |
举例如下:
-name用法:
-user用法:
-size用法:
locate快速定位文件路径
使用数据库实现快速定位给定的文件,但需要时刻更新locate时刻
基本查找语法:locate 文件
更新locate时刻:updatedb
grep过滤查找及“|”管道符
管道符“|”,表示把前一个指令处理的结果输出传递给后面的指令处理,grep可以查找文件内的内容。
grep -n 查找内容 源文件(查找指定内容并标有行号)
如:查找当前目录下的内容
查找文件内的内容:
压缩解压类
gzip/gunzip压缩
只能压缩文件,
不保留源文件
同时压缩多个文件,会产生多个压缩包
语法:
gzip 文件
gunzip 文件.gz
zip/unzip
会保留源文件
压缩:
zip 压缩后的文件名.zip 将要压缩的内容(压缩文件)
zip -r 压缩后的文件名.zip 将要压缩的内容(压缩目录)
解压:
unzip xxx.zip(解压文件)
unzip -d<目录> xxx.zip(解压后文件的存放目录)
tar打包
tar[选项] xxx.tar.gz 将要打包进去的内容(打包目录后压缩到xxx.tar.gz)
选项说明
选项|功能
-c|产生.tar打包文件
-v|显示详细信息
-f|指定压缩后的文件名
-z|打包同时压缩
-x|解压.tar文件
-C|解压到指定目录
一般打包:tar -zcvf 指定新文件名.tar.zg 将要打包的文件
一般解压:tar -xvf 将要解压的文件 -C 指定压缩到的目录名
磁盘查看和分区类
查看文件结构
先下载tree
yum install tree
使用方法:
tree 目录
du查看文件和目录占用的磁盘空间
du [选项] 目录/文件 (显示目录下每个子目录的磁盘使用情况)
选项说明:
选项 | 功能 |
---|---|
-h | 以人能看懂的数据进行显示 |
-a | 显示所有信息,所有文件和目录 |
-c | 显示所有文件和目录后,显示文件总和 |
-s | 只显示总和 |
–max-depth=n | 指定统计目录内容深度为n的目录和文件 |
df查看磁盘空间使用情况
df [选项](列出文件系统的主题磁盘使用量,检查文件占用磁盘空间情况)
选项说明 -h:以人能够看懂的形式显示到终端
free [选项](列出当前内存占用情况)
lsblk查看设备挂载情况
lsblk(查看设备挂载情况)
-f(查看详细的设备挂载情况,显示文件系统信息)
mount/umount挂载/卸载
对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根
目录、一个独立且唯一的文件结构。
Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理
方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,
要载入的那个分区将使它的存储空间在这个目录下获得。
挂载基本语法:
mount[-t vfstype] [-o option] device dir(挂载设备)
umount 设备文件名或挂载点(卸载设备)
fdisk分区
基本语法
fdisk -l(查看磁盘分区详情)
fdisk 硬盘设备名(对新增硬盘进行分区操作)
该命令必须在root用户下才能使用
功能说明:
Linux分区:
Device:分区序列
Boot:引导
Start:从X磁柱开始
End:到Y磁柱结束
Blocks:容量
Id:分区类型
分区操作说明:
m:显示命令列表
p:显示当前磁盘分区
n:新增分区
w:希尔分区信息并退出
q:不保存就退出
分区步骤:
创建分区:fdisk 硬盘位置名称
分区初始化:mkfs 分区名称
分区挂载:mount 分区名 目标位置
分区卸载:mount 分区名或分区位置
进程管理类
ps查看当前系统进程状态
ps aux | grep xxx(查看系统中所有进程)
ps -ef | grep xxx(查看子父进程之间的关系)
选项说明
选项 | 功能 |
---|---|
a | 列出带有终端的所有用户进程 |
x | 列出当前用户的所有进程,包括没有终端的进程 |
u | 面向用户友好的显示风格 |
-e | 列出所有进程 |
-u | 列出某个用户关联的所有进程 |
-f | 显示完整格式的进程列表 |
ps aux 显示信息说明
USER:该进程由哪个用户产生
PID:进程的ID号
%CPU:该进程占用CPU的百分比
%MEM:该进程占用的物理内存百分比
VSZ:该进程占用的虚拟内存大小
RSS:该进程占用的实际物理内存大小
TTY:该进程在哪个终端运行的。对于CentOS来说tty1是图形化终端,tt2-tt6是本地字符终端。pts/0-255代表虚拟终端
STAT:进程状态。常见的状态有:R运行状态,S睡眠状态,T暂停状态,Z僵尸状态,s包含子进程,l多线程,+前台显示
START:该进程启动的时间
TIME:该进程占用CPU的运算时间,不是系统时间
COMMAND:产生此基础的命令名
ps -ef显示说明:
UID:用户ID
POD:进程ID
PPID:父进程ID
C:CPU用于计算执行优先级的因子。数值越大,表名进程是CPU密集型运算,执行优先级会越低;数值越小,表名进程是I/O密集型运算,执行优先级会提高
STIME:进程的启动时间
TTY:完整的终端名称
TIME:CPU时间
CMD:启动进程使用的命令和参数
kill中止进程
kill [选项] 进程号(通过进程号杀死进程)
killall 进程名称(通过进程名杀死进程,也支持通配符,在系统因负载过大而变得很慢是很有用)
选项说明:-9表示强迫进程立即停止
查看进程树
首先下载pstree:yum pstree
执行pstree命令:pstree
选项:-p显示进程ID,-u显示所属用户
top实时监控系统进程状态
top [选项]
top -d 秒数(指定top命令每隔几秒更新,默认是3秒)
top -i (时top不显示闲置和僵尸进程)
top -p(通过指定进程id来仅仅监控某个进程的状态)
操作说明
P(以cpu的使用率进行排序)
M(以内存使用情况进行排序)
N(以PID进行排序)
q(退出top)
netstat显示网络状态和端口占用信息
netstat -anp | grep 进程号(查看该进程网络信息)
netstat -nlp | grep 端口号(查看网络端口号占用情况)
选项说明
选项 | 功能 |
---|---|
-a | 显示所有正在监听和为监听的套接字 |
-n | 拒绝显示别名,能显示数字的全部显示数字 |
-l | 仅列出在监听的服务状态 |
-p | 吧iOS显示哪个进程在调用 |
crontab系统定时任务
crontab服务管理
重新启动crond服务
- systemctl restart crond
定时任务设置
crontab [选项]
选项 | 功能 |
---|---|
-e | 编辑crontab定时任务 |
-l | 查询crontab任务 |
-r | 删除当前用户所有的crontab任务 |