在我们Linux系统当中,预设的情况下,所有的系统上的帐号与一般身份使用者,还有那个root的相关资讯,
都是记录在/etc/passwd这个档案内的。至于个人的密码则是记录在/etc/shadow这个档案下。此外,Linux所有的群组名称都纪录在/etc/group内!这三个档案可以说是Linux系统里面帐号、密码、群组资讯的集中地啰!不要随便删除这三个档案啊!_

6.1 目录与路径
6.1.1 相对路径与绝对路径
6.1.2 目录的相关操作:cd , pwd , mkdir , rmdir
6.1.3 关于执行档路径的变数: $PATH
6.2 档案与目录管理
6.2.1 档案与目录的检视: ls
6.2.2 复制、删除与移动:cp , rm , mv
6.2.3 取得路径的档案名称与目录名称
6.3 档案内容查阅
6.3.1 直接检视档案内容:cat , tac , nl
6.3.2 可翻页检视:more , less
6.3.3 资料撷取:head , tail
6.3.4 非纯文字档: od
6.3.5 修改档案时间与建置新档: touch
6.4 档案与目录的预设权限与隐藏权限
6.4.1 档案预设权限:umask
6.4.2 档案隐藏属性: chattr , lsattr
6.4.3 档案特殊权限:SUID , SGID , SBIT ,权限设定
6.4.4 观察档案类型:file
6.5 指令与档案的搜寻
指令档名的搜寻:which
档案档名的搜寻:whereis , locate / updatedb , find

目录与路径
树型结构

关于执行档路径的变数:

$PATH 环境变数PATH

经过前一章FHS的说明后,我们知道查阅档案属性的指令ls完整档名为:/bin/ls(这是绝对路径), 那你会不会觉得很奇怪:『为什么我可以在任何地方执行/bin/ls这个指令呢?』 为什么我在任何目录下输入ls 就一定可以显示出一些讯息而不会说找不到该/bin/ls 指令呢? 这是因为环境变数PATH 的帮助所致呀!

当我们在执行一个指令的时候,举例来说『ls』好了,系统会依照PATH的设定去每个PATH定义的目录下搜寻档名为ls的可执行档, 如果在PATH定义的目录中含有多个档名为ls的可执行档,那么先搜寻到的同名指令先被执行!

现在,请下达『echo P A T H 』 来 看 看 到 底 有 哪 些 目 录 被 定 义 出 来 了 ? e c h o 有 『 显 示 、 印 出 』 的 意 思 , 而 P A T H 前 面 加 的 PATH』来看看到底有哪些目录被定义出来了?echo有『显示、印出』的意思,而PATH 前面加的 PATH』来看看到底有哪些目录被定义出来了?echo有『显示、印出』的意思,而PATH前面加的 表示后面接的是变数,所以会显示出目前的PATH !

总结
不同身份使用者预设的PATH不同,预设能够随意执行的指令也不同(如root与dmtsai); PATH是可以修改的;
使用绝对路径或相对路径直接指定某个指令的档名来执行,会比搜寻PATH来的正确; 指令应该要放置到正确的目录下,执行才会比较方便;
本目录(.)最好不要放到PATH当中。

ls 命令说明

ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS下的 dir 命令

ls 常用选项 参数 含义
-a 显示指定目录下所有子目录与文件,包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合 -l 以人性化的方式显示文件大小

ls通配符的使用 通配符 含义

  • 代表任意个数个字符 ? 代表任意一个字符,至少 1 个 [] 表示可以匹配字符组中的任一一个 [abc] 匹配 a、b、c 中的任意一个 [a-f] 匹配从 a 到 f 范围内的的任意一个字符

注意:以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示

ls排序

ls --lh --sort=size  大小排序
ls --lh --sort=time  时间排序


第一个字元代表这个档案是『目录、文件或链接档等等』:
当为[ d ]则是目录,
当为[ - ]则是文件,
若是[ l ]则是链接 类似快捷方式

若是[ b ]则表示为装置档里面的可供储存的周边设备(可随机存取装置);块
若是[ c ]则表示为装置档里面的序列埠设备,例如键盘、滑鼠(一次性读取装置)。

第二 个

接下来的字元中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
第一组为『档案拥有者可具备的权限』,以『initial-setup-ks.cfg』那个档案为例, 该档案的拥有者可以读写,但不可执行;
第二组为『加入此群组之帐号的权限』;
第三组为『非本人且没有加入本群组之其他帐号的权限』。

chown 改变这个改变档案拥有者

范例:将bihuo.txt 的拥有者改为bihuo这个帐号:
chown bihuo bihuo.txt

-R : 进行递回(recursive)的持续变更,亦即连同次目录下的所有档案都变更

chgrp 改变所属群组

改变一个档案的群组真是很简单的,直接以chgrp来改变即可
-R : 进行递回(recursive)的持续变更,亦即连同次目录下的所有档案、目录
都更新成为这个群组之意。常常用在变更某一目录内所有的档案之情况。
范例:
chgrp bihuo 123

chmod 改变权限

数字类型改变档案权限

Linux档案的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 先复习一下刚刚上面提到的资料:档案的权限字元为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4
w:2
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= — = 0+0+0 = 0

[root@study ~]# chmod [-R] xyz 档案或目录
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为rwx 属性数值的相加。
-R : 进行递回(recursive)的持续变更,亦即连同次目录下的所有档案都会变更

chmod 776 2.sh

那如果要将权限变成『-rwxr-xr–』呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754啰!所以你需要下达『
chmod 754
filename』。另外,在实际的系统运作中最常发生的一个问题就是,常常我们以vim编辑一个shell的文字批次档后,他的权限通常是-rw-rw-r–
也就是664, 如果要将该档案变成可执行档,并且不要让其他人修改此一档案的话, 那么就需要-rwxr-xr-x这样的权限,此时就得要下达:『
chmod 755 test.sh』的指令啰!

另外,如果有些档案你不希望被其他人看到,那么应该将档案的权限设定为例如:『-rwxr-----』,那就下达『 chmod 740
filename』吧!

例题: 将刚刚你的.bashrc这个档案的权限修改回-rw-r–r--的情况吧! 答:
-rw-r–r--的分数是644,所以指令为: chmod 644 .bashrc

符号类型改变档案权限

还有一个改变权限的方法呦!从之前的介绍中我们可以发现,基本上就九个权限分别是(1)user (2)group (3)others三种身份啦!那么我们就可以藉由u, g, o来代表三种身份的权限!此外,a则代表all 亦即全部的身份!那么读写的权限就可以写成r, w, x啰!也就是可以使用底下的方式来看:

来实作一下吧!假如我们要『设定』一个档案的权限成为『-rwxr-xr-x』时,基本上就是:

user (u):具有可读、可写、可执行的权限;
group 与others (g/o):具有可读与执行的权限。

所以就是:

[root@study ~]# chmod u=rwx,go=rx .bashrc

注意喔!那个u=rwx,go=rx 是连在一起的,中间并没有任何空白字元!

[root@study ~]# ls -al .bashrc
-rwxr-xr-x . 1 root root 176 Dec 29 2013 .bashrc

那么假如是『 -rwxr-xr-- 』这样的权限呢?可以使用『chmod u=rwx,g=rx,o=r filename 』来设定。此外,如果我不知道原先的档案属性,而我只想要增加.bashrc这个档案的每个人均可写入的权限, 那么我就可以使用:

[root@study ~]# ls -al .bashrc
-rwxr-xr-x . 1 root root 176 Dec 29 2013 .bashrc
[root@study ~]# chmod a+w .bashrc
[root@study ~]# ls -al .bashrc
-rwxrwxrwx . 1 root root 176 Dec 29 2013 .bashrc

而如果是要将权限去掉而不更动其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:
[

root@study ~]# chmod ax .bashrc
[root@study ~]# ls -al .bashrc
-rw-rw-rw- . 1 root root 176 Dec 29 2013 .bashrc

[root@study ~]# chmod 644 .bashrc # 测试完毕得要改回来喔!

知道+, -, = 的不同点了吗?对啦!+ 与– 的状态下,只要是没有指定到的项目,则该权限『不会被变动』, 例如上面的例子中,由于仅以–
拿掉x
则其他两个保持当时的值不变!多多实作一下,你就会知道如何改变权限啰!这在某些情况底下很好用的~举例来说,你想要教一个朋友如何让一个程式可以拥有执行的权限,
但你又不知道该档案原本的权限为何,此时,利用『chmod a+x filename』 ,就可以让该程式拥有执行的权限了。是否很方便?

cd 命令

cd 目录
cd . 当前目录
cd … 当前目录上一级目录
pwd 当前工作目录

阅读 查看文件

cat
clear清屏

cat /var/log/messages 查看日志

more 命令可以用于分屏显示文件内容

,每次只显示一页内容
适合于 查看内容较多的文本文件

tail 命令 默认显示最后10行

tail 命令通常和 watch命令配合使用

watch 命令 通过 -n 每隔多长时间 显示信息

完整命令

watch -n 2 tail -20 /var/log/messages
每隔2秒显示messages文件后20行

非纯文字档: od

我们上面提到的,都是在查阅纯文字档的内容。那么万一我们想要查阅非文字档,举例来说,例如/usr/bin/passwd 这个执行档的内容时,
又该如何去读出资讯呢?事实上,由于执行档通常是binary file ,使用上头提到的指令来读取他的内容时,
确实会产生类似乱码的资料啊!那怎么办?没关系,我们可以利用od 这个指令来读取喔!

配合管道 | 查看最后 10行

touch 新建文件 修改档案时间或建置新档

我们在ls 这个指令的介绍时,有稍微提到每个档案在linux底下都会记录许多的时间参数, 其实是有三个主要的变动时间,那么三个时间的意义是什么呢?

modification time (mtime):
当该档案的『内容资料』变更时,就会更新这个时间!内容资料指的是档案的内容,而不是档案的属性或权限喔!

status time (ctime):
当该档案的『状态(status)』改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间啊。

access time (atime):
当『该档案的内容被取用』时,就会更新这个读取时间(access)。举例来说,我们使用cat 去读取/etc/man_db.conf , 就会更新该档案的atime 了。
这是个挺有趣的现象,举例来说,我们来看一看你自己的/etc/man_db.conf 这个档案的时间吧!

[root@study ~]# touch [-acdmt] 档案 选项与参数:
> -a :仅修订access time;
> -c :仅修改档案的时间,若该档案不存在则不建立新档案;
> -d :后面可以接欲修订的日期而不用目前的日期,也可以使用–date=“日期或时间”
> -m :仅修改mtime ;
> -t :后面可以接欲修订的时间而不用目前的时间,格式为[YYYYMMDDhhmm]

范例一:新建一个空的档案并观察时间

  1. 注意到,这个档案的大小是0 呢!在预设的状态下,如果touch 后面有接档案,
    则该档案的三个时间(atime/ctime/mtime)都会更新为目前的时间。若该档案不存在, 3)
    则会主动的建立一个新的空的档案喔!例如上面这个例子!

范例二:将kpkp 复制成为567,假设复制完全的属性,检查其日期

root@kali:/yui# date; ls -l 567; ls -l --time=atime kpkp; ls -l --time=ctime bashrc

至于执行的结果当中,我们可以发现资料的内容与属性是被复制过来的,因此档案内容时间(mtime)与原本档案相同。但是由于这个档案是刚刚被建立的,因此状态(ctime)就变成现在的时间啦!那如果你想要变更这个档案的时间呢?可以这样做:

范例三:修改案例二的bashrc 档案,将日期调整为两天前

跟上个范例比较看看,本来是27日变成25 日了(atime/mtime)~不过, ctime 并没有跟着改变喔!

范例四:将上个范例的bashrc 日期改为2014/06/15 2:02

注意看看,日期在atime 与mtime 都改变了,但是ctime 则是记录目前的时间!

透过touch 这个指令,我们可以轻易的修订档案的日期与时间。并且也可以建立一个空的档案喔!不过,要注意的是,即使我们复制一个档案时,复制所有的属性,但也没有办法复制ctime 这个属性的。ctime 可以记录这个档案最近的状态(status) 被改变的时间。无论如何,还是要告知大家, 我们平时看的档案属性中,比较重要的还是属于那个mtime 啊!我们关心的常常是这个档案的『内容』 是什么时候被更动的说~了乎?

无论如何, touch 这个指令最常被使用的情况是:

建立一个空的档案
将某个档案日期修订为目前(mtime 与atime)

档案与目录的预设权限与隐藏权限

mkdir 新建目录

rm 删除命令

rm -r 删除目录

cp 命令 复制重命名

  • r 命令 可以复制目录

top 监视kali系统的命令

系统性能
输入k 加 pid 删除进程

ps -ef 命令 专门用来查看进程信息的

ps aux 常用

grep 筛选特定字符

cat /etc/passwd 这是存放账号的文件
如何向查看特点账号就用到了
grep命令


显示有bihuo 的这一行

find 命令 查找文件

find / -name “php.ini”
查找文件
这里是 查找 文件名为 php.ini 的文件

netstat -pandut 监控tcp/udo网络

常用组合 -pandut
Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。


加管道

netstat -pantu | egrep -v '0.0.0.0|:::'

netstat -pantu | egrep -v '0.0.0.0|:::' | awk '{print $5}'

root@kali:/var/www/html# netstat -pantu | egrep -v '0.0.0.0|:::' | awk '{print $5}' | egrep -v ' and|Address'

root@kali:/var/www/html# netstat -pantu | egrep -v '0.0.0.0|:::' | awk '{print $5}' | egrep -v ' and|Address' | uniq > ip.txt

dmesg 查看 messages文件

whereis 查找字符串 他有一个数据库

whereis -b 二进制

vi 文本编辑器

set nu 显示行号

1. 透过uname 检查Linux 核心与作业系统的位元版本

[dmtsai@study ~]$ uname -r # 查看核心版本
3.10.0-229.el7.x86_64 [dmtsai@study ~]$ uname -m # 查看作业系统的位元版本

[root@study ~]# lsb_release -a
:core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:
desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch: printing-4.1-amd64:printing-4.1-noarch # LSB 的相关版本 Distributor ID:
CentOS Description: CentOS Linux release 7.0.1406 (Core) Release:
7.0.1406 Codename: Core

慢慢更新

参考
https://linux.vbird.org/linux_basic/centos7/0220filemanager.php

kali Liunx常用命令环 档案与目录 6个小时耐心总结相关推荐

  1. linux快捷命令怎么拼日期,liunx常用命令,快捷键

    原标题:liunx常用命令,快捷键 一.常用命令介绍 在linux系统中存在很多命令,这些命令可以帮助我们完成不同的工作,在这里面我们先介绍一些常用的基础命令,这些命令可以帮助我们完成对应的基本操作, ...

  2. linux一,系统分区 Linux的盘符结构 Linux常用命令: 一,目录/文件的处理命令

    文章目录 一,系统分区 Linux的盘符结构 Linux常用命令: 一,目录/文件的处理命令 一,系统分区 概念:在硬盘上产生文件系统的过程 第一步:磁盘分区(创建隔断) 分区规则:主分区最多只能分4 ...

  3. Linux、Kali系统常用命令

    Kali简单介绍 Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统.每一季度更新一次.由Offensive Security Ltd维护和资助.最先由Offensi ...

  4. WEB安全 kali的常用命令

    文章目录 1.常用命令 2.文件夹或文本操作 3.系统信息 4.vi 常用命令 5.文件搜索 6.用户和群组 7.系统管理 8.查看磁盘信息 9.查看内存信息 10.查看环境变量 11开机自启 12网 ...

  5. Liunx 常用命令 (几乎包含所有了)

    linux 常用命令: 关机 (系统的关机.重启以及登出 ) shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h ...

  6. Linux中常用命令(文件与目录)

    1.pwd 查看当前目录(Print Working Directory) 2.cd 切换工作目录(Change Directory) (1)格式:cd [目录位置] 特殊目录: .当前目录 ..上一 ...

  7. liunx常用命令笔记

    安装软件教程 linux安装java:https://www.cnblogs.com/lamp01/p/8932740.html linux安装mysql:https://www.cnblogs.co ...

  8. Linux常用命令之文件和目录处理命令

    目录 1.Linux命令的普遍语法格式 2.目录处理命令 一.显示目录文件命令:ls 二.创建目录命令:mkdir 三.切换目录命令:cd 四.shell内置命令和外部命令的区别 五.显示当前目录命令 ...

  9. linux以长格式显示当前目录的详细信息,Linux常用命令系列——文件和目录操作命令(ls)...

    文章目录: 1.语法 2.选项 3.参数 4.实例 4.1 显示当前目录下非隐藏文件与目录 4.2 显示当前目录下包括隐藏文件在内的所有文件列表 4.3 输出长格式列表 4.4 列出文件和文件夹的详细 ...

最新文章

  1. JAVA性能优化思路探究
  2. Size Classes with Xcode 6:为所有的尺寸准备一个Storyboard
  3. java输出流输入流的使用_Java中的IO流之文件输入输出流
  4. unity片元着色器中获取屏幕坐标_Unity踩坑笔记(持续更新)
  5. python加go_[Python异步博客开发] 加入Golang, go~!
  6. Mybatis四种分页方式
  7. android studio开发个人备忘录算法设计_Android Studio 4.1 发布,全方位提升开发体验...
  8. 【渝粤题库】陕西师范大学800002 地球概论
  9. java 动态修改prooper_java中OOP自己总结的知识点
  10. Pool tag list
  11. python中oserror_Python:OSError:[Errno 2]没有这样的文件或目录:”
  12. mand-mobile框架:无法执行 ScrollView 下拉刷新/上拉加载
  13. 学习记录657@python计算股价的回撤与收盘价回撤率组合图实现
  14. H106OJ | 第二次练习(查找)
  15. 【linux】shell脚本 ps 命令学习
  16. 计算机网络串行传输 并行传输,串行传输和并行传输的概念
  17. 三线制PT100温度变送器
  18. python表达直角坐标系_在直角坐标中,x、 y 是坐标系中任意点的位置,用 x 和 y 表示第一象限或第二象限的 Python 表达式为 。_测量省赛理论答案_学小易找答案...
  19. socket.io不错的websocket
  20. 植物大战僵尸java圣诞版,植物大战僵尸圣诞版-植物大战僵尸2圣诞节版v1.9.1 安卓版-腾牛安卓网...

热门文章

  1. 计算机文化基础课精品课程资源,计算机文化基础 - 精品课程平台-兰州理工大学.ppt...
  2. 步进电机28BYJ-48
  3. 原理篇2、按键扫描电路与驱动程序
  4. 重谈Zigbee的绑定问题
  5. 黑色情调电脑桌面主题
  6. pythonselenium教学视频_从零开始学Selenium自动化测试(基于Python·视频教学版)
  7. 【解惑】post请求url放的参数为什么不放在body里
  8. C语言和C++的不同之处和相同之处
  9. 服务器返回401状态码
  10. 【安卓电视盒软件】展示一套我写的智能电视直播软件,支持遥控器操作!ffmpeg内核!