kali Liunx常用命令环 档案与目录 6个小时耐心总结
在我们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]
范例一:
新建一个空的档案并观察时间
- 注意到,这个档案的大小是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个小时耐心总结相关推荐
- linux快捷命令怎么拼日期,liunx常用命令,快捷键
原标题:liunx常用命令,快捷键 一.常用命令介绍 在linux系统中存在很多命令,这些命令可以帮助我们完成不同的工作,在这里面我们先介绍一些常用的基础命令,这些命令可以帮助我们完成对应的基本操作, ...
- linux一,系统分区 Linux的盘符结构 Linux常用命令: 一,目录/文件的处理命令
文章目录 一,系统分区 Linux的盘符结构 Linux常用命令: 一,目录/文件的处理命令 一,系统分区 概念:在硬盘上产生文件系统的过程 第一步:磁盘分区(创建隔断) 分区规则:主分区最多只能分4 ...
- Linux、Kali系统常用命令
Kali简单介绍 Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统.每一季度更新一次.由Offensive Security Ltd维护和资助.最先由Offensi ...
- WEB安全 kali的常用命令
文章目录 1.常用命令 2.文件夹或文本操作 3.系统信息 4.vi 常用命令 5.文件搜索 6.用户和群组 7.系统管理 8.查看磁盘信息 9.查看内存信息 10.查看环境变量 11开机自启 12网 ...
- Liunx 常用命令 (几乎包含所有了)
linux 常用命令: 关机 (系统的关机.重启以及登出 ) shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h ...
- Linux中常用命令(文件与目录)
1.pwd 查看当前目录(Print Working Directory) 2.cd 切换工作目录(Change Directory) (1)格式:cd [目录位置] 特殊目录: .当前目录 ..上一 ...
- liunx常用命令笔记
安装软件教程 linux安装java:https://www.cnblogs.com/lamp01/p/8932740.html linux安装mysql:https://www.cnblogs.co ...
- Linux常用命令之文件和目录处理命令
目录 1.Linux命令的普遍语法格式 2.目录处理命令 一.显示目录文件命令:ls 二.创建目录命令:mkdir 三.切换目录命令:cd 四.shell内置命令和外部命令的区别 五.显示当前目录命令 ...
- linux以长格式显示当前目录的详细信息,Linux常用命令系列——文件和目录操作命令(ls)...
文章目录: 1.语法 2.选项 3.参数 4.实例 4.1 显示当前目录下非隐藏文件与目录 4.2 显示当前目录下包括隐藏文件在内的所有文件列表 4.3 输出长格式列表 4.4 列出文件和文件夹的详细 ...
最新文章
- JAVA性能优化思路探究
- Size Classes with Xcode 6:为所有的尺寸准备一个Storyboard
- java输出流输入流的使用_Java中的IO流之文件输入输出流
- unity片元着色器中获取屏幕坐标_Unity踩坑笔记(持续更新)
- python加go_[Python异步博客开发] 加入Golang, go~!
- Mybatis四种分页方式
- android studio开发个人备忘录算法设计_Android Studio 4.1 发布,全方位提升开发体验...
- 【渝粤题库】陕西师范大学800002 地球概论
- java 动态修改prooper_java中OOP自己总结的知识点
- Pool tag list
- python中oserror_Python:OSError:[Errno 2]没有这样的文件或目录:”
- mand-mobile框架:无法执行 ScrollView 下拉刷新/上拉加载
- 学习记录657@python计算股价的回撤与收盘价回撤率组合图实现
- H106OJ | 第二次练习(查找)
- 【linux】shell脚本 ps 命令学习
- 计算机网络串行传输 并行传输,串行传输和并行传输的概念
- 三线制PT100温度变送器
- python表达直角坐标系_在直角坐标中,x、 y 是坐标系中任意点的位置,用 x 和 y 表示第一象限或第二象限的 Python 表达式为 。_测量省赛理论答案_学小易找答案...
- socket.io不错的websocket
- 植物大战僵尸java圣诞版,植物大战僵尸圣诞版-植物大战僵尸2圣诞节版v1.9.1 安卓版-腾牛安卓网...
热门文章
- 计算机文化基础课精品课程资源,计算机文化基础 - 精品课程平台-兰州理工大学.ppt...
- 步进电机28BYJ-48
- 原理篇2、按键扫描电路与驱动程序
- 重谈Zigbee的绑定问题
- 黑色情调电脑桌面主题
- pythonselenium教学视频_从零开始学Selenium自动化测试(基于Python·视频教学版)
- 【解惑】post请求url放的参数为什么不放在body里
- C语言和C++的不同之处和相同之处
- 服务器返回401状态码
- 【安卓电视盒软件】展示一套我写的智能电视直播软件,支持遥控器操作!ffmpeg内核!