Linux的一些常用操作命令
文章目录
- 增删改查
- mkdir(创建空目录)
- rmdir (删除空目录)
- touch
- rm
- mv(移动文件/改名)
- cp(复制)
- ls (列出目录下的文件)
- cat (全屏显示)
- tac (将文件内容从尾到头反向输出显示)
- more(将内容一页一页的显示)
- less (与more类似,less可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页)
- head (默认读头十行)
- tail (默认读尾十行)
- 特性
- 管道符(|)
- xargs (结合管道把前面的输出作为后面命令的参数)
- 重定向
- 历史命令
- alias (查看或定义命令的别名)
- find (在指定目录下查找文件)
- 压缩打包命令
- zip (压缩文件)
- unzip (解压缩zip文件)
- gzip (单文件压缩)
- bzip2 (压缩文件)
- tar (打包文件)
- 文本工具
- 正则表达式
- grep (过滤)
- vi/vim (编辑)
- 文本查看及处理工具
- sed
- awk(报告)
- sort
- uniq
- wc
- cut
- 进程管理
- 进程分类
- 进程状态
- pstree:进程树
- ps
- pidof
- top
- vmstat/free:查看内存
- kill
- crontab
- 用户管理
- 用户文件
- 密码文件
- group(组)
- 文件权限
- chown
- chgrp
- bash(配置文件)
总结一点Linux使用过程中一些常用的基础知识小笔记。
在学习过程中,我们不难发现,很多的操作总结无非就是“增删改查”四个字。以下是Linux的一些简单的增删改查操作。
增删改查
mkdir(创建空目录)
-p:递归创建 (mkdir -p /a/b)
-v:显示创建过程
{}:命令扩展 (mkdir -p /{a,b}/{c,d})
rmdir (删除空目录)
touch
-a:修改文件访问时间为当前时间
-t:修改时间为指定时间 (touch -t 年月日时分[秒])
-m:修改文件改动时间为当前时间
-r:(touch -r A B)将B的时间设置成与A一样
-c:文件不存在则不创建
rm
-i:删除前逐一询问确认
-r:删除当前目录下的所有文件及目录
-f:原文件设为只读也可直接删除
-rf:强制删除,慎用
mv(移动文件/改名)
-b:目标文件或目录存在时,先备份再覆盖
-f:目标文件或目录存在时,强制覆盖
-i:目标文件或目录存在时,询问是否覆盖
cp(复制)
-r:递归复制,源文件为目录文件则将目录下的子目录和文件都复制
-f:强制覆盖
-i:询问是否覆盖
-d:复制时保留链接
-a:用于归档,复制目录时保留链接、文件属性,并复制目录下的所有内容
ls (列出目录下的文件)
-a:all,列出所有文件,包括“.”开头的隐藏文件
-A:同-a,但不列出“.”和“…”文件
-l:显示文件详细信息列出的详细信息第一字段表示文件属性,以下是不同字符所代表的类型
d:目录、-:普通文件、l:链接文件、c:字符设备文件(顺序)、b:块设备文件(随机)、s:sock文件(进程之间)、p:管道文件
cat (全屏显示)
-n/–number:显示行号
-b/–number-nonblank:同-n,但不对空白行编号
-s/–squeeze-blank:将连续的多个空行显示为一行
-E/–show-ends:在每行结束处显示“$”
tac (将文件内容从尾到头反向输出显示)
more(将内容一页一页的显示)
more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [filenames… ]
+num:从第n行开始显示
-num:定义屏幕大小为n行
+/pattern:在每个文档显示前搜寻指定子串(pattern),然后从该字串前两行开始显示
-c:从顶部清屏,然后显示
-d:显示提示,且不使用警告音
-l:忽略Ctrl+l(换页)字符
-f:计算实际行数
-p:不以滚屏的方式显示每一页,而是先清屏再显示内容
-c:与-p相似,不过先显示内容再清屏
-s:将连续的多个空行显示为一行
-u:将文件内容中的下划线去掉
换行/Enter:向下n行,需要定义,默认为1行
空格/space:向下滚动一屏
Ctrl+F:向下滚动一屏
Ctrl+B:返回上一屏
=:输出当前行号
:f:输出文件名和当前行号
V:调用vi编辑器
!命令:调用shell并执行命令
q:退出more
less (与more类似,less可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页)
less [参数] 文件
-e:当文件显示结束后,自动离开
-f:强迫打开特殊文件,如外围设备代号、目录和二进制文件
-g:只标志最后搜索的关键词
-i:忽略搜索时的大小写
-N显示每行行号
-o <文件名>:将less输出的内容在指定文件中保存起来
-Q:不使用警告音
-s:将连续多个空行显示为一行
-S:行过长时将超出部分舍弃
-x <数字>:将“tab”键显示为规定的数字空格
空格/space:滚动一页
回车/Enter:滚动一行
[pagedown]:向下翻动一页
[pageup]:向上翻动一页
b:向上翻一页
d:向后翻半页
u:向前滚动半页
y:向后滚动一行
n:重复前一个搜索(与/或?有关)
N:反向重复前一个搜索(与/或?有关)
/:向下搜索“字符串”的功能
?:想上搜索“字符串”的功能
Q:退出less
p:初始页
head (默认读头十行)
tail (默认读尾十行)
特性
管道符(|)
前命令作为后命令的输出部分
ps aux | grep "test" #在ps aux的结果中查找test
xargs (结合管道把前面的输出作为后面命令的参数)
find /path -type f -print0 | xargs -0 rm
#xargs将find产生的长串文件列表拆散成多个子串,然后对每个子串调用rm。
#xargs可能会误判,如果需要处理特殊字符,需要使用-0参数进行处理。
重定向
1.1 输出重定向
正确重定向
覆盖:> to_path_file
追加:>> to_path_file错误重定向
覆盖:2> to_path_file
追加:2 >> to_path_file&>:不管正确还是错误都重写
&>>:不管正确还是错误都追加
/dev/null:空文件,用来存放无用的输出
1.2 输入重定向
<<END
历史命令
查看历史命令:history
调用历史命令
!编号:执行第几条命令
!字符串:执行从最近的命令查到以指定字符串开头的命令
!$/!!:执行上一个命令
alias (查看或定义命令的别名)
find (在指定目录下查找文件)
find [path] [options] [express]
-size:文件大小
-type:文件类型
-name:文件名称
-perm:文件权限
-iname:不区分大小写
-atime n:在过去n天内被读取过的文件
-ctime n:在过去n天内被修改过的文件
find . -type f -perm 644 -size 12M -exec ls -l {} \;
#查找当前目录下文件属主具有读写权限且文件大小为12M的普通文件,并列出它们的完整路径
压缩打包命令
zip (压缩文件)
-d:从压缩文件内删除指定文件
-f:更新现有的文件
-F:尝试修复已损坏的压缩文件
-b<工作目录>:指定暂时存放文件的目录
-m:将文件压缩并加入压缩文件后删除原始文件
-r:递归处理,将指定目录下的所有文件和子目录一并处理
-S:包含系统和隐藏文件
-t:将压缩文件的日期设定为指定日期
-q:不显示指令执行过程
unzip (解压缩zip文件)
-c:将解压缩的结果显示,并对字符做适当的转换
-f:更新现有文件
-l:显示压缩文件内包含的文件
-t:检查压缩文件是否正确
-a:对文本文件进行必要的字符转换
-b:不要对文本文件进行字符转换
-C:压缩文件中的文件名称区分大小写
-L:将压缩文件中的全部文件名改为小写
-n:解压时不要覆盖原有文件
-d<目录>:指定文件解压缩后索要存储的目录
-x<文件>:指定不要处理.zip压缩文件中的哪些文件
gzip (单文件压缩)
gzip -d:解压缩
gunzip:解压缩
zcat:查看压缩文件
bzip2 (压缩文件)
bzip -d:解压缩
bunzip:解压缩
bzcat:查看压缩文件
tar (打包文件)
-c:创建打包文件
-x:解包
-t:列出打包文件里的文件
-f:指定打包文件
-v:显示打包过程
-z:表示以gzip格式压缩
-j:以bzip2格式压缩
文本工具
正则表达式
1.1 匹配字符
.:匹配任意单个字符
[a-z] | [[:lower:]]:小写
[A-Z] | [[:upper:]]:大写
[a-zA-Z] | [[:alpha:]]:所有字母
[0-9] | [[:digit:]] | \d:数字
[a-zA-Z0-9] | [[:alnum:]] | \w:所有字符
[[:space:]] | \s:空格
[^abc]:匹配除abc外的字符
1.2 匹配次数
*:任意次
?:0次或1次
+:至少1次
{m}:指定m次
{m,n}:m次到n次
{m,}:至少m次
{0,n}:0到n次
1.3 匹配位置
^:行首
$:行尾
<:词首
>:词尾
1.4 非打印字符
\f:匹配一个换页符
\n:匹配一个换行符
\r:匹配一个回车符
\s:匹配任何空白字符,包括空格、制表符、换页符等
\S:匹配任何非空白字符
\t:匹配一个制表符
\v:匹配一个垂直制表符
1.5 分组
():标记一个子表达式的开始和结束位置
例:she likes peter
she likes apple
she loves her lover
grep "1\([[:lower:]]\{2\}\)e.*1\1er$" test
输出:likes peter
loves her lover
1.6 引用
\1:表示第一个分组所匹配的内容
1.7 断言
reg(?=exp):reg匹配的内容后面内容满足exp规则
reg=([a-z]+)(?=\d+) content=abc123 #匹配内容:abc
(?=\d+)表示校验的位置后接着的是数字reg(?!exp):reg匹配的内容后面内容不满足exp规则
reg=(?!.*\d{3}.*)(^.*$) content1=abc123def;content2=abc12def #匹配内容:abc12def
(?!.*\d{3}.*)表示校验位置之后的内容中不包含三个连续的数字(?<=exp)reg:reg匹配的内容前面内容满足exp规则
reg=(?<=\d{3})(.*$) content=abc123def #匹配内容:def
(?<=\d{3})表示校验位置前有三个连续的数字(?<!exp)reg:reg匹配的内容前面内容不满足exp规则
reg=(?<!\d{2})([a-z]+) content=123def #匹配内容:ef
(?<!\d{2})表示校验位置前不是两个数字
1.8 basename:取基名
1.9 dirname:取根名
grep (过滤)
逐行匹配,匹配的行默认显示
-i:不区分大小写
-v:显示不匹配的行
-o:仅显示匹配的内容
-q:不显示任何信息
-s:不显示错误信息
-V:显示版本信息
egrep:使用扩展正则表达式
vi/vim (编辑)
1.1 命令模式
esc:进入
删除x|X:删除单个字符
d^:删除行首
d$:删除行尾
dd:剪切一行
<数字>dd:剪切多行
yy:复制(同d)
p|P:粘贴
u:撤销
Ctrl+r:恢复
g:跳转
gg:多行跳转
1.2 编辑模式(插入模式)
a/i/o:进入
1.3 末行模式
::进入
wq:保存退出(强制写入并退出,及时文件未修改也更新文件修改时间)
q!:强制退出
x:保存退出(仅当文件修改了时才写入,并更新修改时间)
删除#d:删除
0,$d:0表示第一行,$表示最后一行,d表示删除
y:复制
g:全局
/pattern/d|y:g/^ [[:space:]]*$/d:删除空白行查找
/pattern:进入查找
N:向上查找
n:向下查找
s:查找替换
语法:行数范围s/查找内容/替换内容/g
//%所有行数、g全局、i不区分大小写
#例子:
#1、删除/etc/grub.d中所有以空白字符开头的行
%s/^[[:space:]]\+//g
#2、每个以空白字符开头的行,行首加#
%s/^[[:space:]]\+/#&/g
#3、将/etc/yum.repos.d/Centos-Media.repo文件中所有的enable=0或gpgcheck=0的最后的0修改为1
%s@\(enable|gpgcheck\)=0@\1=1@g
1.4 可视化
vi -o:编辑多个文件
sp:末行模式
wqall:保存所有并退出
文本查看及处理工具
sed
sed [option] ‘地址 编辑命令’ file
-i:修改源文件
-n:静默模式,仅显示处理后的结果
-r:支持使用扩展正则表达式,默认是基础正则表达式
-e:直接在命令界面上进行sed的动作编辑
p:打印
d:删除
i \text:插入内容,在行上方
a \text:追加内容,在行下方
c:取代,例:sed ‘2,5c good’ #将2-5行的内容取代为good
s:取代,例:sed -i 's/old/new/g #将old替换成new
=:显示符合条件行的行号
w /path/to/somefile:把指定的内容另存至/path/to/somefile所指定的文件中
r /path/from/somefile:在文件的指定位置插入另一个文件的全部内容,完成文件合并
awk(报告)
报告生成工具,把文件读取到每一行
-F:指定分隔符
内置变量:NF(字段数)、NR(命令所处理的记录数)
#例子:
#1、显示GID中小于500的组
awk -F: '$4<500{print $1,$4}' /etc/passwd
#2、显示eth0网卡文件的配置信息,只显示等号后的值
awk -F= '{print $2}' /etc/sysconfig/network-scripts/ifcfg-ens33
#3、显示eth0网卡的ip地址,通过ifconfig的命令结果进行过滤
ifconfig ens33 | awk '/init /{print $2,$4,$6}'
sort
将文本文件内容加以排序
sort [option] file
-u:连续且相同的行只保留一行(去重)
-t:指定分段的符号,例:-t ‘-’
-k:按指定列进行排序
-r:逆向排序
-n:基于数值大小而非字符进行排序
-m:将几个排序好的文件进行合并
-o<输出文件>:将排序好的结果存入指定文件
uniq
用于检查及删除文本文件中重复出现的行列,一般与sort命令结合使用
uniq [] file
-c | --count:在没咧旁边显示该行重复出现的次数
-d | --repeated:仅显示重复出现的行列
-u | --unique:只显示唯一的行
-w<字符位置>:指定要比较的字符
wc
Word Count统计单词数量
wc [option] file
-i:lines行数
-w:words单词个数
-c:bytes统计字节数
cut
用于显示每行开头算起num1到num2的文字
cut [option] file
-b:以字节为单位进行分割
-c:以字符为单位进行分割
-d:自定义分隔符,默认为制表符
-n:取消分割多字节字符
-f:挑选出的字段n:指定单个字段
n-m:连续多个
n,m:离散多个
进程管理
进程分类
瞬时进程:执行完毕就关闭
守护进程:执行完一直放在内存里
进程状态
R(TASK_RUNNING):运行状态或可执行状态
S(TASK_INTERRUPTIBLE):可中断的睡眠态
D(TASK_UNINTERRUPTIBLE):不可中断的睡眠态
T(TASK_STOPPED or TASK_TRACED):暂停状态或跟踪状态
Z(TASK_DEAD-EXIT_ZOMBIE):退出状态,进程成为僵尸状态
X(TASK_DEAD-EXIT_DEAD):退出状态,进程即将被销毁
pstree:进程树
ps
显示当前进程状态
-A:列出所有进程
-ef:用标准的格式新式进程
aux:显示所有包含其他使用者的进程(BSD格式)
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDUSER:进程拥有者
PID:进程ID
%CPU:进程占用的CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
VSZ:占用的虚拟内存
RSS:常驻内存集
TTY:中断的次要装置号码
STAT:进程状态D:无法中断的休眠状态
R:正在执行中
S:静止状态
T:暂停执行
Z:不存在但暂时无法消除
W:没有足够的内存分页可分配
<:高优先序的进程
N:低优先序的进程
L:有内存分页分配并锁在内存中START:进程开始时间
TIME:执行的时间
COMMAND:所执行的命令
pidof
查找指定名称的进程的进程id
-s:仅返回一个进程号
-c:仅显示具有相同“root”目录的进程号
-x:显示由脚本开启的进程
-o:制定不现实的进程ID
top
实时显示程序的动态
-d:指定屏幕信息刷新的时间间隔
-q:没有任何延迟的进行刷新显示
-p:通过指定监控进程ID来仅该监控进程状态
-c:切换显示模式。共有两种模式,一种只显示执行档的名称,另一种是显示完整的路径和名称
-S:累积模式
-s:安全模式,将交谈式指令取消,避免潜在危机
-i:不显示任何闲置(idle)或无用(zombie)的进程
-n:更新的次数
-b:批次档模式
Ctrl+L:擦除并且重写屏幕
K:终止一个进程
i:忽略闲置和将死进程,这是一个开关式命令
q:退出程序
r:重新安排一个进程的优先级别
S:切换到累积模式
s:改变两次刷新之间的延迟时间
M:根据内存大小排序
P:根据cpu百分比排序
T:以cpu累积占用时间排序
W:将当前设置写入~/.toprc文件中
vmstat/free:查看内存
kill
删除执行中的程序或工作
-1(-HUP):重新加载进程
-9(-KILL):彻底(强制)杀死进程
-15(-TERM):正常停止一个进程
killall 进程名:杀死进程
crontab
-e:编辑当前用户任务
-l:列出当前用户任务
-r:删除当前用户所有任务
-u:指定用户
*(分钟)*(小时)*(日)*(月)*(周)
*:任意时间
,:离散
-:连续,从多少到多少
/:步长,每隔多长时间
#每一分钟执行command
* * * * * command
#每小时的第5分钟和第45分钟执行
5,45 * * * * command
#每周六、日18:00到23:00之间每隔30分钟重启smb
0,30 18-23 * * 6,0 /etc/init.d/smb restart
用户管理
用户文件
用户名:uid
存储路径:/etc/passwd
root: x:0:0:root:/root:/bin/bash
用户名:密码占位符:uid:gid:注释:家目录:shell
1.1 用户分类
管理员用户:root uid ()
普通用户系统用户:uid 1-999
登录用户:uid 1000+
1.2 创建用户:useradd
-u:uid
-g:gid
-c:description(备注)
-d:home
-s:shell
-r:system-user
-M:不创建家目录
1.3 删除用户:userdel
-r:删除用户及家目录
1.4 修改用户:usermod
查询
id -u/-g(有效组)-G(所有组)
whoami
w
who
密码文件
存储路径:/etc/shadow
passwd [option] [username]
-d:删除密码
–stidin:批量添加用户
-l:锁定用户(停止账号使用)
-u:解锁用户(启用已停止的账户)
group(组)
存储位置:/etc/group
1.1 组分类
系统组
登录组
基本组:创建文件时使用的是基本组(usermod -g)
附加组:用户附加组(usermod -G)
1.2 添加组:groupadd
1.3 删除组:groupdel
1.4 修改组:groupmod
文件权限
1.1 基本权限:rwx(读写执行)
设置权限:
chmod u=rwx,g=wx,o=w
chmod 754
chmod a=rwx,g-x,o-wxumask:权限掩码(用预设定文件的默认权限)
文件默认:666,目录默认:774
1.2 特殊权限:suid、sgid、sticky
suid:针对于可执行文件,执行该命令是以该命令所有者身份执行
sgid:针对于可执行命令,执行该命令是以该命令所属组身份执行;针对于目录,在该目录下创建的都是该目录的属主
sticky:针对于目录,在该目录下只有所有者才可以删除自己的文件
1.3 sudo:以系统管理员的身份执行命令
1.4 facl(文件系统访问列表):利用文件扩展属性,保存额外的访问控制权限
chown
设置文件所有者和文件关联组的命令
chown 用户名 文件名
chown 用户名:组名 文件名
-R:递归改变
chgrp
变更文件或目录的所属群组
chgrp 组名 文件名
-R:递归改变
bash(配置文件)
bashrc:定义命令别名
profile:用于定义环境变量
Linux的一些常用操作命令相关推荐
- linux磁盘相关命令,Linux磁盘管理常用操作命令
原标题:Linux磁盘管理常用操作命令 本文汇总了Linux磁盘管理基础知识.其中包括存储设备的挂载和卸载常用操作命令.自动挂载操作命令和磁盘分区操作命令等. 一.存储设备的挂载和卸载 存储设备的挂载 ...
- Linux介绍以及常用操作命令
Linux 课程目标 Linux概述[了解] Linux网络连接三种模式[了解] Linux目录结构[掌握] Linux常用命令[掌握] Linux操作目录的命令[掌握] Linux操作文件的 ...
- Linux系统中常用操作命令
常用指令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) m ...
- Python在Linux 目录的常用操作命令
1.Linux的目录类似于Windows系统中的文件夹.看一下刚刚打开的终端界面,它的第一行开头是:shiyanlou:~/ $ 这就代表着你当前所处的目录位置:打开终端后,会默认从当前的用户目录开始 ...
- linux系统操作大全,Linux系统的常用操作命令大全
From:http://www.xiaoxiaozi.com/2010/11/09/1985/ 摘自:http://hi.baidu.com/jackywdx/blog/item/393ccf4b64 ...
- 【Linux】vim常用命令
[Linux]vim常用操作命令 文章目录 [Linux]vim常用操作命令 前言 一.一般命令模式 1.1 光标移动 1.2 查找与替换字符串 1.3 复制.删除.粘贴 1.4 其它小技巧 二.编辑 ...
- 安装虚拟机及Linux常用操作命令
一.实验环境 Windows10 ,VMware Workstation 12.1.1 ,Ubuntu kylin 16.04 二.实验内容与完成情况 1.新建用户Hadoop (1)安装时新建 (2 ...
- VMware Workstation下新建用户及Linux常用操作命令
一.实验环境 Windows10 ,VMware Workstation 12.1.1 ,Ubuntu kylin 16.04 二.实验内容与完成情况 1.新建用户Hadoop (1)安装时新建 (2 ...
- LINUX中常用操作命令
LINUX中常用操作命令 Linux简介及Ubuntu安装 常见指令 系统管理命令 打包压缩相关命令 关机/重启机器 Linux管道 Linux软件包管理 vim使用 用户及用户组管理 文件权限管理 ...
- linux基本命令du,Linux常用操作命令汇总
你还在为不知道Linux常用操作命令汇总而不知所措么?下面来是学习啦小编为大家收集的Linux常用操作命令汇总,欢迎大家阅读: Linux常用操作命令汇总 1.ls 命令 ls以默认方式显示当前目录文 ...
最新文章
- Nun Heh Heh Aaaaaaaaaaa 字符串,dp
- 你以为AlphaGo只是下围棋厉害?不,它还能用来优化金融交易策略参数
- .Net Core in Docker极简入门(上篇)
- python n个人围成一圈,Python练习代码实例69-有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的...
- git 代理 git_生日快乐,Git
- 记住影响客户购买的3个决策关键
- C++模板元 -- 变长参数模板
- android sqlite assets,使用GreenDao加载assets下sqlite数据库的示例
- linux hdmi /dev/fb操作,HDMI接口学习笔记
- SYSAUX表空间占用过大情况下的处理(AWR信息过多)
- 如何从零开始成为一名优秀的程序员?---转载、翻译自Quora
- python对excel筛选提取文本中数字_详解利用python提取pdf文本数字
- pandas 根据筛选条件对指定excel列进行筛选
- There is no getter for property named ‘keyword‘ in ‘class cn.wolfcode.qo.Subentry‘] with root caus
- 偷偷看了同事的代码找到了优雅代码的秘密
- WPS尾部空格没有下划线
- VMware Ubuntu20.04设置共享文件夹
- 生死单元技术!如何在abaqus焊接仿真中的应用
- log4j 发邮件(解决中文乱码)
- YOLOv7如何提高目标检测的速度和精度,基于优化算法提高目标检测速度