增删改查
mkdir(创建空目录)rmdir (删除空目录)touchrmmv(移动文件/改名)cp(复制)ls (列出目录下的文件)cat (全屏显示)tac (将文件内容从尾到头反向输出显示)more(将内容一页一页的显示)less (与more类似,less可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页)head (默认读头十行)tail (默认读尾十行) 特性
管道符(|)xargs (结合管道把前面的输出作为后面命令的参数)重定向历史命令alias (查看或定义命令的别名)find (在指定目录下查找文件) 压缩打包命令
zip (压缩文件)unzip (解压缩zip文件)gzip (单文件压缩)bzip2 (压缩文件)tar (打包文件) 文本工具
正则表达式grep (过滤)vi/vim (编辑) 文本查看及处理工具
sedawk(报告)sortuniqwccut 进程管理
进程分类进程状态pstree:进程树pspidoftopvmstat/free:查看内存killcrontab 用户管理
用户文件密码文件group(组)文件权限chownchgrpbash(配置文件)
总结一点Linux使用过程中一些常用的基础知识小笔记。
在学习过程中,我们不难发现,很多的操作总结无非就是“增删改查”四个字。以下是Linux的一些简单的增删改查操作。
增删改查 mkdir(创建空目录)rmdir (删除空目录) touch-p:递归创建 (mkdir -p /a/b)
-v:显示创建过程
{}:命令扩展 (mkdir -p /{a,b}/{c,d})
rm-a:修改文件访问时间为当前时间
-t:修改时间为指定时间 (touch -t 年月日时分[秒])
-m:修改文件改动时间为当前时间
-r:(touch -r A B)将B的时间设置成与A一样
-c:文件不存在则不创建
mv(移动文件/改名)-i:删除前逐一询问确认
-r:删除当前目录下的所有文件及目录
-f:原文件设为只读也可直接删除
-rf:强制删除,慎用
cp(复制)-b:目标文件或目录存在时,先备份再覆盖
-f:目标文件或目录存在时,强制覆盖
-i:目标文件或目录存在时,询问是否覆盖
ls (列出目录下的文件)-r:递归复制,源文件为目录文件则将目录下的子目录和文件都复制
-f:强制覆盖
-i:询问是否覆盖
-d:复制时保留链接
-a:用于归档,复制目录时保留链接、文件属性,并复制目录下的所有内容
cat (全屏显示)-a:all,列出所有文件,包括“.”开头的隐藏文件
-A:同-a,但不列出“.”和“…”文件
-l:显示文件详细信息列出的详细信息第一字段表示文件属性,以下是不同字符所代表的类型
d:目录、-:普通文件、l:链接文件、c:字符设备文件(顺序)、b:块设备文件(随机)、s:sock文件(进程之间)、p:管道文件
tac (将文件内容从尾到头反向输出显示) more(将内容一页一页的显示)-n/–number:显示行号
-b/–number-nonblank:同-n,但不对空白行编号
-s/–squeeze-blank:将连续的多个空行显示为一行
-E/–show-ends:在每行结束处显示“$”
more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [filenames… ]
+num:从第n行开始显示
-num:定义屏幕大小为n行
+/pattern:在每个文档显示前搜寻指定子串(pattern),然后从该字串前两行开始显示
-c:从顶部清屏,然后显示
-d:显示提示,且不使用警告音
-l:忽略Ctrl+l(换页)字符
-f:计算实际行数
-p:不以滚屏的方式显示每一页,而是先清屏再显示内容
-c:与-p相似,不过先显示内容再清屏
-s:将连续的多个空行显示为一行
-u:将文件内容中的下划线去掉
less (与more类似,less可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页)换行/Enter:向下n行,需要定义,默认为1行
空格/space:向下滚动一屏
Ctrl+F:向下滚动一屏
Ctrl+B:返回上一屏
=:输出当前行号
:f:输出文件名和当前行号
V:调用vi编辑器
!命令:调用shell并执行命令
q:退出more
less [参数] 文件
-e:当文件显示结束后,自动离开
-f:强迫打开特殊文件,如外围设备代号、目录和二进制文件
-g:只标志最后搜索的关键词
-i:忽略搜索时的大小写
-N显示每行行号
-o <文件名>:将less输出的内容在指定文件中保存起来
-Q:不使用警告音
-s:将连续多个空行显示为一行
-S:行过长时将超出部分舍弃
-x <数字>:将“tab”键显示为规定的数字空格
head (默认读头十行) tail (默认读尾十行) 特性 管道符(|)空格/space:滚动一页
回车/Enter:滚动一行
[pagedown]:向下翻动一页
[pageup]:向上翻动一页
b:向上翻一页
d:向后翻半页
u:向前滚动半页
y:向后滚动一行
n:重复前一个搜索(与/或?有关)
N:反向重复前一个搜索(与/或?有关)
/:向下搜索“字符串”的功能
?:想上搜索“字符串”的功能
Q:退出less
p:初始页
前命令作为后命令的输出部分
ps aux | grep "test" #在ps aux的结果中查找testxargs (结合管道把前面的输出作为后面命令的参数)
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 输入重定向
历史命令<
查看历史命令: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 (压缩文件)
unzip (解压缩zip文件)-d:从压缩文件内删除指定文件
-f:更新现有的文件
-F:尝试修复已损坏的压缩文件
-b<工作目录>:指定暂时存放文件的目录
-m:将文件压缩并加入压缩文件后删除原始文件
-r:递归处理,将指定目录下的所有文件和子目录一并处理
-S:包含系统和隐藏文件
-t:将压缩文件的日期设定为指定日期
-q:不显示指令执行过程
gzip (单文件压缩)-c:将解压缩的结果显示,并对字符做适当的转换
-f:更新现有文件
-l:显示压缩文件内包含的文件
-t:检查压缩文件是否正确
-a:对文本文件进行必要的字符转换
-b:不要对文本文件进行字符转换
-C:压缩文件中的文件名称区分大小写
-L:将压缩文件中的全部文件名改为小写
-n:解压时不要覆盖原有文件
-d<目录>:指定文件解压缩后索要存储的目录
-x<文件>:指定不要处理.zip压缩文件中的哪些文件
bzip2 (压缩文件)gzip -d:解压缩
gunzip:解压缩
zcat:查看压缩文件
tar (打包文件)bzip -d:解压缩
bunzip:解压缩
bzcat:查看压缩文件
文本工具 正则表达式-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.*11er$" 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})表示校验位置前有三个连续的数字(?
reg=(? (?
1.8 basename:取基名
1.9 dirname:取根名
vi/vim (编辑)逐行匹配,匹配的行默认显示
-i:不区分大小写
-v:显示不匹配的行
-o:仅显示匹配的内容
-q:不显示任何信息
-s:不显示错误信息
-V:显示版本信息
egrep:使用扩展正则表达式
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 可视化
文本查看及处理工具 sedvi -o:编辑多个文件
sp:末行模式
wqall:保存所有并退出
sed [option] ‘地址 编辑命令’ file
-i:修改源文件
-n:静默模式,仅显示处理后的结果
-r:支持使用扩展正则表达式,默认是基础正则表达式
-e:直接在命令界面上进行sed的动作编辑
awk(报告)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:在文件的指定位置插入另一个文件的全部内容,完成文件合并
报告生成工具,把文件读取到每一行
-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
uniq-u:连续且相同的行只保留一行(去重)
-t:指定分段的符号,例:-t ‘-’
-k:按指定列进行排序
-r:逆向排序
-n:基于数值大小而非字符进行排序
-m:将几个排序好的文件进行合并
-o<输出文件>:将排序好的结果存入指定文件
用于检查及删除文本文件中重复出现的行列,一般与sort命令结合使用
uniq [] file
wc-c | --count:在没咧旁边显示该行重复出现的次数
-d | --repeated:仅显示重复出现的行列
-u | --unique:只显示唯一的行
-w<字符位置>:指定要比较的字符
Word Count统计单词数量
wc [option] file
cut-i:lines行数
-w:words单词个数
-c:bytes统计字节数
用于显示每行开头算起num1到num2的文字
cut [option] file
进程管理 进程分类-b:以字节为单位进行分割
-c:以字符为单位进行分割
-d:自定义分隔符,默认为制表符
-n:取消分割多字节字符
-f:挑选出的字段n:指定单个字段
n-m:连续多个
n,m:离散多个
进程状态瞬时进程:执行完毕就关闭
守护进程:执行完一直放在内存里
pstree:进程树 psR(TASK_RUNNING):运行状态或可执行状态
S(TASK_INTERRUPTIBLE):可中断的睡眠态
D(TASK_UNINTERRUPTIBLE):不可中断的睡眠态
T(TASK_STOPPED or TASK_TRACED):暂停状态或跟踪状态
Z(TASK_DEAD-EXIT_ZOMBIE):退出状态,进程成为僵尸状态
X(TASK_DEAD-EXIT_DEAD):退出状态,进程即将被销毁
显示当前进程状态
pidof-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:所执行的命令
查找指定名称的进程的进程id
top-s:仅返回一个进程号
-c:仅显示具有相同“root”目录的进程号
-x:显示由脚本开启的进程
-o:制定不现实的进程ID
实时显示程序的动态
-d:指定屏幕信息刷新的时间间隔
-q:没有任何延迟的进行刷新显示
-p:通过指定监控进程ID来仅该监控进程状态
-c:切换显示模式。共有两种模式,一种只显示执行档的名称,另一种是显示完整的路径和名称
-S:累积模式
-s:安全模式,将交谈式指令取消,避免潜在危机
-i:不显示任何闲置(idle)或无用(zombie)的进程
-n:更新的次数
-b:批次档模式
vmstat/free:查看内存 killCtrl+L:擦除并且重写屏幕
K:终止一个进程
i:忽略闲置和将死进程,这是一个开关式命令
q:退出程序
r:重新安排一个进程的优先级别
S:切换到累积模式
s:改变两次刷新之间的延迟时间
M:根据内存大小排序
P:根据cpu百分比排序
T:以cpu累积占用时间排序
W:将当前设置写入~/.toprc文件中
删除执行中的程序或工作
-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/sahdow
passwd [option] [username]
group(组)-d:删除密码
–stidin:批量添加用户
-l:锁定用户(停止账号使用)
-u:解锁用户(启用已停止的账户)
存储位置:/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(文件系统访问列表):利用文件扩展属性,保存额外的访问控制权限
设置文件所有者和文件关联组的命令
chgrpchown 用户名 文件名
chown 用户名:组名 文件名
-R:递归改变
变更文件或目录的所属群组
bash(配置文件)chgrp 组名 文件名
-R:递归改变
bashrc:定义命令别名
profile:用于定义环境变量



