文章目录

  • 增删改查
    • 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 COMMAND

USER:进程拥有者
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-wx

umask:权限掩码(用预设定文件的默认权限)

文件默认: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的一些常用操作命令相关推荐

  1. linux磁盘相关命令,Linux磁盘管理常用操作命令

    原标题:Linux磁盘管理常用操作命令 本文汇总了Linux磁盘管理基础知识.其中包括存储设备的挂载和卸载常用操作命令.自动挂载操作命令和磁盘分区操作命令等. 一.存储设备的挂载和卸载 存储设备的挂载 ...

  2. Linux介绍以及常用操作命令

    Linux 课程目标 ​ Linux概述[了解] ​ Linux网络连接三种模式[了解] Linux目录结构[掌握] Linux常用命令[掌握] Linux操作目录的命令[掌握] Linux操作文件的 ...

  3. Linux系统中常用操作命令

    常用指令 ls        显示文件或目录      -l          列出文件详细信息l(list)      -a         列出当前目录下所有文件及目录,包括隐藏的a(all) m ...

  4. Python在Linux 目录的常用操作命令

    1.Linux的目录类似于Windows系统中的文件夹.看一下刚刚打开的终端界面,它的第一行开头是:shiyanlou:~/ $ 这就代表着你当前所处的目录位置:打开终端后,会默认从当前的用户目录开始 ...

  5. linux系统操作大全,Linux系统的常用操作命令大全

    From:http://www.xiaoxiaozi.com/2010/11/09/1985/ 摘自:http://hi.baidu.com/jackywdx/blog/item/393ccf4b64 ...

  6. 【Linux】vim常用命令

    [Linux]vim常用操作命令 文章目录 [Linux]vim常用操作命令 前言 一.一般命令模式 1.1 光标移动 1.2 查找与替换字符串 1.3 复制.删除.粘贴 1.4 其它小技巧 二.编辑 ...

  7. 安装虚拟机及Linux常用操作命令

    一.实验环境 Windows10 ,VMware Workstation 12.1.1 ,Ubuntu kylin 16.04 二.实验内容与完成情况 1.新建用户Hadoop (1)安装时新建 (2 ...

  8. VMware Workstation下新建用户及Linux常用操作命令

    一.实验环境 Windows10 ,VMware Workstation 12.1.1 ,Ubuntu kylin 16.04 二.实验内容与完成情况 1.新建用户Hadoop (1)安装时新建 (2 ...

  9. LINUX中常用操作命令

    LINUX中常用操作命令 Linux简介及Ubuntu安装 常见指令 系统管理命令 打包压缩相关命令 关机/重启机器 Linux管道 Linux软件包管理 vim使用 用户及用户组管理 文件权限管理 ...

  10. linux基本命令du,Linux常用操作命令汇总

    你还在为不知道Linux常用操作命令汇总而不知所措么?下面来是学习啦小编为大家收集的Linux常用操作命令汇总,欢迎大家阅读: Linux常用操作命令汇总 1.ls 命令 ls以默认方式显示当前目录文 ...

最新文章

  1. Nun Heh Heh Aaaaaaaaaaa 字符串,dp
  2. 你以为AlphaGo只是下围棋厉害?不,它还能用来优化金融交易策略参数
  3. .Net Core in Docker极简入门(上篇)
  4. python n个人围成一圈,Python练习代码实例69-有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的...
  5. git 代理 git_生日快乐,Git
  6. 记住影响客户购买的3个决策关键
  7. C++模板元 -- 变长参数模板
  8. android sqlite assets,使用GreenDao加载assets下sqlite数据库的示例
  9. linux hdmi /dev/fb操作,HDMI接口学习笔记
  10. SYSAUX表空间占用过大情况下的处理(AWR信息过多)
  11. 如何从零开始成为一名优秀的程序员?---转载、翻译自Quora
  12. python对excel筛选提取文本中数字_详解利用python提取pdf文本数字
  13. pandas 根据筛选条件对指定excel列进行筛选
  14. There is no getter for property named ‘keyword‘ in ‘class cn.wolfcode.qo.Subentry‘] with root caus
  15. 偷偷看了同事的代码找到了优雅代码的秘密
  16. WPS尾部空格没有下划线
  17. VMware Ubuntu20.04设置共享文件夹
  18. 生死单元技术!如何在abaqus焊接仿真中的应用
  19. log4j 发邮件(解决中文乱码)
  20. YOLOv7如何提高目标检测的速度和精度,基于优化算法提高目标检测速度

热门文章

  1. php格林威治时间,php格林威治时间转换成当前时间的方法
  2. 什么是全球位置编号(GLN)?
  3. C++ and C# 从TLS握手二进制中获取SNI(服务器名称指示)域名
  4. 文献阅读记录——Masked Generative Distillation
  5. Pytorch拟合心形函数
  6. IOS应用版本号设置
  7. 序列回帖与multi-mapped reads的处理
  8. Android 微信聊天页面
  9. OSPF详解 一看就会奥!
  10. 微信小程序 编程小结(不定期更新)