前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux入门常识总结

Linux入门常识总结

作者头像
网络安全自修室
发布2021-11-25 14:25:11
1.1K0
发布2021-11-25 14:25:11
举报

Linux常见目录

路径

说明

/

根目录

/bin

命令保存目录(普通用户就可以读取的命令)

/boot

启动目录,启动相关文件

/dev

设备文件保存目录

/etc

配置文件保存目录

/home

普通用户的家目录

/lib

系统库保存目录

/mnt

系统挂载目录

/media

挂载目录

/root

超级用户的家目录

/tmp

临时目录

/sbin

命令保存目录(超级用户才能使用的目录)

/proc

直接写入内存的

/sys

将内核的一些信息映射,可供应用程序所用

/usr

系统软件资源目录

/usr/bin/

系统命令(普通用户)

/usr/sbin/

系统命令(超级用户)

/var

系统相关文档内容

/var/log/

系统日志位置

/var/spool/mail/

系统默认邮箱位置

/var/lib/

默认安装的库文件目录

Linux权限意义

  1. 权限位 -rw-r--r--. 1 root root 44736 7月 18 00:38 install.log
  2. 权限位是十位 第一位:代表文件类型 - 普通文件 d 目录文件 l 链接文件 其他九位:代表各用户的权限 (前三位=属主权限u 中间三位=属组权限g 其他人权限o) r 读 4 w 写 2 x 执行 1
  3. 权限对文件的含义:r:读取文件内容 如:cat、more、head、tail w:编辑、新增、修改文件内容 如:vi、echo 但是不包含删除文件 x:可执行 /tmp/11/22/abc ---------
  4. 权限对目录的含义:r:可以查询目录下文件名 如:ls w:具有修改目录结构的权限 如:touch、rm、mv、cp x:可以进入目录 如:cd

常用命令

find

find 查找位置 -name 文件名

代码语言:javascript
复制
    -name 文件名      按照文件名查找
    -user 用户名      按照属主用户名查找文件
    -group 组名       按照属组组名查找文件
    -size            按照文件大小k M  如:find / -size +50k
    -type            按照文件类型查找(f=普通  d=目录  l=链接)
    -perm            按照权限查找  如:find /root -perm 644
    -iname           按照文件名查找,不区分大小写

示例:
    
    find / -name aabbcc    查找/目录下名为 aabbcc的文件

grep

grep 选项 '字串' 查找路径

代码语言:javascript
复制
    -v       反向选择
    -i       忽略大小写

示例:

    grep -i "root" /etc/passwd

案例

代码语言:javascript
复制
root@kali:~# cat test.txt 

123
abc
456

abc123

#adff

23####
\n##
##
#adddff

查看非空行和非注释开头的行并输出行号

代码语言:javascript
复制
root@kali:~# grep -Evn '^$|^#' test.txt
2:123
3:abc
4:456
6:abc123
10:23####
11:\n##

过滤出带有某个关键词的行并输入行号

代码语言:javascript
复制
root@kali:~# grep -vn 'df' test.txt    
1:
2:123
3:abc
4:456
5:
6:abc123
7:
9:
10:23####
11:\n##
12:##

指定要过滤字符出现的次数

代码语言:javascript
复制
root@kali:~# grep -En 'f{2}' test.txt 
8:#adff
13:#adddff

清理进入的日志

代码语言:javascript
复制
grep /home/member/logs/access.log -v 174.122.136.104 -output cleaned.log

zip

zip 命令 生成的zip文件 被压缩的文件

代码语言:javascript
复制
-m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
-q:不显示指令执行过程;
-r:递归处理,将指定目录下的所有文件和子目录一并处理;
-c:替每个被压缩的文件加上注释;
-d:从压缩文件内删除指定的文件;
-z:替压缩文件加上注释;
-g:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;
-e 加密
-u:更换较新的文件到压缩文件内;

-A:调整可执行的自动解压缩文件;
-b<工作目录>:指定暂时存放文件的目录;
-D:压缩文件内不建立目录名称;
-f:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中;
-F:尝试修复已损坏的压缩文件;
-h:在线帮助;
-i<范本样式>:只压缩符合条件的文件;
-j:只保存文件名称及其内容,而不存放任何目录名称;
-J:删除压缩文件前面不必要的数据;
-k:使用MS-DOS兼容格式的文件名称;
-l:压缩文件时,把LF字符置换成LF+CR字符;
-ll:压缩文件时,把LF+cp字符置换成LF字符;
-L:显示版权信息;
-n<字尾字符串>:不压缩具有特定字尾字符串的文件;
-o:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;
-S:包含系统和隐藏文件;
-T:检查备份文件内的每个文件是否正确无误;
-v:显示指令执行过程或显示版本信息;
-V:保存VMS操作系统的文件属性;
-w:在文件名称里假如版本编号,本参数仅在VMS操作系统下有效;
-x<范本样式>:压缩时排除符合条件的文件;
-X:不保存额外的文件属性;
-y:直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效;
-$:保存第一个被压缩文件所在磁盘的卷册名称;
-<压缩效率>:压缩效率是一个介于1~9的数值

unzip

zip 命令 生成的zip文件 被压缩的文件

代码语言:javascript
复制
    -d 指定文件解压缩后所要存储的目录
    -n 解压缩时不要覆盖原有的文件
    -o 不必先询问用户,unzip 执行后覆盖原有文件

    -q 安静模式,执行时不显示任何信息
    -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
    -p 与 -c 参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
    -l 显示压缩文件内所包含的文件
    -f 更新现有的文件
    -t 检查压缩文件是否正确,但不解压
    -u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中
    -z 仅显示压缩文件的备注文字
    -v 执行时显示详细的信息。或查看压缩文件目录,但不解压
    -T 将压缩文件内的所有文件的最新变动时间设为解压缩时候的时间
    -x 指定不要处理 .zip 压缩文件中的哪些文件    
    -a 对文本文件进行必要的字符转换
    -j 不处理压缩文件中原有的目录路径
    -aa 把所有的文件目录当作文本处理
    -U use escapes for all non-ASCII Unicode
    -UU 忽略 Unicode 编码字符
    -C 压缩文件中的文件名称区分大小写
    -L 将压缩文件中的全部文件名改为小写
    -X 解压缩时同时回存文件原来的 UID/GID
    -V 保留 VMS 的文件版本信息
    -K 保留文件的 setuid/setgid/tacky 属性
    -M 将输出结果送到 more 程序处理
    -O 指定字符编码为 DOS,Windows 和 OS/2
    -I 指定字符编码为 UNIX
   

awk

AWK是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符

语法:awk [选项参数] 'script' var=value file(s) 或awk [选项参数] -f scriptfile var=value file(s)

案例

  1. 截取文档中的某个段
代码语言:javascript
复制
awk -F ':' '{print$2}' test.txt

解释一下:

  • -F 选项的作用是指定分隔符,如果不加-F指定,则以空格或者tab为分隔符。Print为打印的动作,用来打印出某个字段。
1为第一个字段,

2为第二个字段,依次类推,有一个特殊的那就是$0,它表示整行。

  • 注意awk的格式,-F后紧跟单引号,然后里面为分隔符,print的动作要用 { } 括起来,否则会报错。print还可以打印自定义的内容,但是自定义的内容要用双引号括起来
  1. 匹配
代码语言:javascript
复制
# 以冒号分隔,让第一个字符段中匹配有123
awk -F ':' '$1 ~/123/' test.txt

# 多次匹配
awk -F ':' '/root/ {print $1,$3} /test/ {print $1,$3}' /etc/passwd
  1. 条件操作符
代码语言:javascript
复制
 awk -F ':' '$3=="0"' /etc/passwd

 awk中是可以用逻辑符号判断的,比如 ‘==’ 就是等于,也可以理解为 ‘精确匹配’ 另外也有 >, ‘>=, ‘<, ‘<=, ‘!= 等等,值得注意的是,即使$3为数字,awk也不会把它当数字看待,它会认为是一个字符。所以不要妄图去拿$3当数字去和数字做比较。

    != 为不匹配
另外还可以使用 && 和 || 表示 “并且” 和 “或者” 的意思。
  1. 内置变量
代码语言:javascript
复制
awk常用的变量有:
NF :用分隔符分隔后一共有多少段
NR :行数

[root@localhost ~]# head -n3 /etc/passwd 
root:x:0:0:usr:/root:/bin/bash 
bin:x:1:1:bin:/bin:/sbin/nologin 
daemon:x:2:2:daemon:/sbin:/sbin/nologin 
[root@localhost ~]# head -n3 /etc/passwd  | awk -F ':' '{print NF}' 
7 7 7 
[root@localhost ~]# head -n3 /etc/passwd  | awk -F ':' '{print $NF}' 
/bin/bash /sbin/nologin /sbin/nologin 
[root@localhost ~]# head -n3 /etc/passwd  | awk -F ':' '{print NR}' 
1 2 3
  1. 使用判断条件
代码语言:javascript
复制
[root@localhost ~]# awk 'NR>40' /etc/passwd 
gnome-initial-setup:x:989:983::/run/gnome-initial-setup/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin 
avahi:x:70:70:Avahi mDNS/DNS-SD 
Stack:/var/run/avahi-daemon:/sbin/nologin 
cao:x:1001:1001::/home/cao:/bin/bash
usr:x:1002:1002:用户,offic,1234567,123:/home/usr:/bin/bash
test:x:1003:1003::/home/test:/bin/bash 
test1:x:1004:1003::/home/test1:/bin/bash
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络安全自修室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linux常见目录
  • Linux权限意义
  • 常用命令
    • find
      • grep
        • 案例
          • zip
            • unzip
            • awk
              • 案例
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档