Linux基础命令-文件与目录

参考:《鸟哥linux私房菜》前七章,17/12/5复习


  • 文件权限

rwx421;-R 递归;用户,用户组,其他

umask查看默认目录:0002,即对其他拿掉了w权限,也可直接umask -S

chgrp

chown zuo:zuo passwd

chmod +664 testfile//-rw-rw-r--

chmod u=rwx,go=rw testfile

chmod +x testfile

+号是添加权限,无加号直接指定权限

对目录来说:r可打印,w可修改目录下任何文件,x可进入成为工作目录

  • 目录配置

FHS标准

第三方软件一般在/usr/src 或/opt

内核源码在/usr/src

/

/bin - 用户二进制文件

在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。

例如:ps、ls、ping、grep、cp8

/sbin

通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令

/etc - 配置文件

hosts:设备名称(或域名)到ip地址的解析,相当于本地存在的dns功能。

/dev - 设备文件

这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0

/proc - 进程信息

这是一个虚拟的文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录中包含的与特定pid相关的信息。

/var - 变量文件

这个目录下可以找到内容可能增长的文件。包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);

/tmp - 临时文件

包含系统和用户创建的临时文件。当系统重新启动时,这个目录下的文件都将被删除。

/usr - unix software resourse

包含二进制文件、库文件、文档和二级程序的源代码。

/usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。例如:at、awk、cc、less、scp。

/usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。例如:atd、cron、sshd、useradd、userdel。

/usr/lib中包含了/usr/bin和/usr/sbin用到的库。

/usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。

/home - HOME目录

所有用户用home目录来存储他们的个人档案。

例如:/home/john、/home/nikita

/boot - 引导加载程序文件

内核的initrd、vmlinux、grub文件位于/boot下。例如:initrd.img-2.6.32-24-generic

/lib - 系统库

包含支持位于/bin和/sbin下的二进制文件的库文件.

库文件名为 ld或lib.so.*例如:ld-2.11.1.so,libncurses.so.5.7

/opt - 可选的附加应用程序

包含从个别厂商的附加应用程序。

/mnt - 挂载目录

临时安装目录,系统管理员可以挂载文件系统。

/media - 可移动媒体设备

用于挂载可移动设备的临时目录。

举例来说,挂载CD-ROM的/media/cdrom,windows也通常挂在在这里

/srv - 服务数据

包含服务器特定服务相关的数据。

例如,/srv/cvs包含cvs相关的数据。

  • 目录操作

cd

pwd

mkdir:-p递归创建 -m指定权限

rmdir

ls:-R 递归列出所有文件; -S按从大到小; -t 时间从新到旧 ;-r 反向

cp:-p 复制属性;-r 递归复制 ;-d复制链接文件;-a 相当于pdr;-u 新的才复制;-l创建硬链接,-s软链接

rm -rf /

  • 文件内容

cat:-n行号;-A显示看不见的字符

tac

nl

more

less:最常用

head -n 10;-10只打印不包括后面10行

tail -n 10;-10不包括前面10行

od -a:默认读取; c ,d,o,x,ascii,十进制,八进制,16进制

file 查看文件类型

  • 文件时间

mtime 内容更改

ctime 状态更改,如权限,属性

atime 文件内容被读取

查看时间:ll --time=ctime filename;默认为mtime

更改时间:touch -m/a 更改修改时间,访问时间为当前时间

-d ‘’2 days ago‘’

-t 指定时间,[[CC]YY]MMDDhhmm[.ss]

  • 文件隐藏属性

chattr + a filename,只能增加内容;+i,不能删改

lsattr

  • 文件特殊权限
  1. SetUID

-rwsr-xr-x 1 root root 27832 Jun 10 2014 /usr/bin/passwd

当s出现在文件所有者的x权限上时,称为SUID

仅对二进制程序有效;执行者需要有x权限;临时获得拥有者权限

  1. Set GID

当s出现在用户组的x权限上时,称为SGID

可用于目录;执行者需要有x权限;临时获得用户组的支持

  1. Sticky Bit

drwxrwxrwt 9 root root 4096 Dec 5 01:46 /tmp

当t出现在其他的x权限上时

仅用于目录;仅有本用户和root能删除该文件

可用chmod设置上述三种权限,421;另外大写S或T表示本用户无x权限,即空的

  • 环境变量

echo $PATH

PATH="$PATH":/opt/typora

  • 查找
  1. which

根据PATH查找执行文件

  1. whereis

数据库中查找文件

  1. locate

updatedb更新数据库;可模糊匹配;-i 忽略大小写;-r 正则式匹配

  1. find

find |PATH| |OPTION| |file|

  • 时间参数

-mtime n,n天前的那天

-mtime +n,n天之前(不含n天)

-mtime -n,n天之内(含n天)

-newer file,比file更新

  • 用户有关

-user name

-group name

-nouser

  • 权限名称有关

-name filename

-size +/- 100c;c为bytes,k为KB,M为MB,G为GB

-type TYPE;TYPE有如下几种:f一般文件,b/c设备文件,d目录,l链接文件,s套接字,p管道

-perm mode;权限正好为mode的文件;-mode超集,必须全部包括mode;+mode子集,包含任一mode

-exec 加其他命令find /tmp -newer test1 -exec ls -l {} \;



练习:建立两个账号tmp1和tmp2,支持同一个用户组project,需要共同拥有/srv/ahome目录的开发权,且该目录不允许其他用户访问

//创建用户及用户组
[[email protected] /]# groupadd project
[[email protected] /]# useradd -G project tmp1
[[email protected] /]# useradd -G project tmp2
//建立目录及权限
[[email protected] /]# cd /srv
[[email protected] srv]# mkdir ./ahome
[[email protected] srv]# chgrp project /srv/ahome
[[email protected] srv]# chmod 770 ahome
[[email protected] srv]# ll -d ahome
drwxrwx--- 2 root project 4096 Dec  5 05:36 ahome
//tmp1创建文件但是tmp2不能访问
[[email protected] srv]# su tmp1
[[email protected] srv]$ cd ahome/
[[email protected] ahome]$ ls
[[email protected] ahome]$ touch testfile
[[email protected] ahome]$ su root
Password:
[[email protected] ahome]# su tmp2
[[email protected] ahome]$ ll testfile
-rw-rw-r-- 1 tmp1 tmp1 0 Dec  5 05:38 testfile//注意tmp2用户相当于其他,只有r权限
//添加SUGID权限
[[email protected] ahome]$ su root
Password:
[[email protected] ahome]# chmod 2770 /srv/ahome
//验证
[[email protected] ahome]# su tmp1
[[email protected] ahome]$ touch file
[tmp1[email protected] ahome]$ ll
total 0
-rw-rw-r-- 1 tmp1 project 0 Dec  5 05:39 file//注意用户组变为project
[[email protected] ahome]$ su root
Password:
[[email protected] ahome]# su tmp2
[[email protected] ahome]$ ll
total 0
-rw-rw-r-- 1 tmp1 project 0 Dec  5 05:39 file
时间: 2024-10-10 08:56:37

Linux基础命令-文件与目录的相关文章

一天一个Linux基础命令之切换目录移动命令mv

mv:移动文件或目录 1.命令格式 mv     [option]    SRC(源目录或文件)    DEC(目标目录) 2.命令功能 mv命令是move的缩写,可以用来移动文件或者将文件改名,是Linux系统下常用的命令,经常用来备份文件或者目录. mv 命令的第二个参数是文件或目录时,mv命令完成重命名或者移动文件,如果重命名,源文件只能有一个(也可以是目录名),当如果是移动文件,源文件可以为多个,目标目录只能一个,在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也

Linux常用命令———文件和目录操作命令(18个)

文件和目录操作命令(18个) ls(列出目录内容和属性) 全拼list,功能是列出目录的内容及其内容属性信息. -l(long)              长格式  注:-l 显示的时间是mtime -d --directorys当遇到目录时列出目录本身而非目录内的文件 ls –d   #只显示. (.表示目录本身) ls –d */ #显示当前目录下的目录及其子目录 -r --reverse:            倒序显示(按字母) ls -lrt  #显示最近修改的文件 -R --recu

Linux基础命令-有关于目录的命令

1. 查看帮助: [[email protected] ~]# man cd //查看 cd 指令的帮助文档 2. 显示当前工作目录: [[email protected]oracle ~]# pwd/root 3. 列出当前目录下的内容:ls [[email protected] ~]# ls [-aAdfFhilnrRSt] 目录名称[[email protected] ~]# ls [--color={never,auto,always}] 目录名称[[email protected] ~

Linux基础命令文件搜索命令

find  文件搜索 find [搜索范围][匹配条件] -name 根据文件名搜索 find /etc/ -name inittab find / etc -name *init* 模糊查找[查找所有包含init的文件] find /etc -name init* [查找一init开头的文件] find / etc -name init??? [查找init后面的是三个字符的目录或者文件] 注意:*代表所有 ?代表单个字符 find  / -size .204800 在根目录查找大与100m的

linux基础命令-文件查看类命令cat/tac/more/less/tail/head

cat 查看文本文件内容 -b :给每一行编号不包括空白行 -n:给所有行编号 [[email protected] tmp]# cat -An /root/anaconda-ks.cfg 1 # Kickstart file automatically generated by anaconda.$ 2 $ 3 #version=DEVEL$ 4 install$ 5 cdrom$ 6 lang en_US.UTF-8$ 7 keyboard us$ 8 network --onboot no

Linux命令工具基础02 文件及目录管理

文件及目录管理 文件管理不外乎文件或目录的创建.删除.查询.移动,有mkdir/rm/mv 文件查询是重点,用find来进行查询:find的参数丰富,也非常强大: 查看文件内容是个大的话题,文本的处理有太多的工具供我们使用,在本章中只是点到即止,后面会有专门的一章来介绍文本的处理工具: 有时候,需要给文件创建一个别名,我们需要用到ln,使用这个别名和使用原文件是相同的效果: 创建和删除 创建:mkdir 删除:rm 删除非空目录:rm -rf file目录 删除日志 $rm *log 等价: $

linux基础命令:(1)管理文件和目录的命令

1.管理文件和目录的命令:(1)pwd:print working directory(打印工作目录),输入pwd时,就是要求linux系统显示当前位置.(2)cd命令:cd命令用来改变所在目录.总是返回到当前的主目录.如果需要转换到其他目录,则需要一个路径名.[绝对路径与相对路径的区别:如果一个路径的第一个字符是/,那么这个路径就是绝对路径] cd ..告诉系统向上移到当前目录所在目录的直接上级目录中,如要上移两级目录,则为cd ../..(3)ls命令:用来查看目录的内容.   ls -a

Linux基础命令,目录文件操作,vi编辑器详解

一.linux基础命令 linux命令的执行必须依赖于shell命令解释器.shell实际上是在linux系统中运行的一种特殊程序,它位于操作系统内核与用户之间,负责接收用户输入的命令并进行解释,将需要执行的操作传递给系统内核执行,shell在用户和内核之间充当了一个"翻译官"的角色.当用户登录到linux系统时,会自动加载一个shell程序,以便给用户提供可以输入命令的操作系统. 1.首先介绍一下快捷键 Tab键:用来补齐命令字或文件.目录名,例如输入"ifcon"

Linux基础命令:(6)线上查询与文件阅读的命令

6.线上查询的命令:(1)man命令:用来查询和解释一个命令的使用方法以及这个命令的说明事项.[man 命令的名称](2)locate命令:定位文件和目录.(3)whatis命令:用来查询某个命令的含义[whatis 命令的名称]:比较适用 7.文件阅读的命令:(1)head命令:用来查看文件的开头部分.[head 文件名,默认是10行](2)tail命令:与head命令相反.有助于查看日志文件结尾的最后10行来阅读重要的系统信息. Linux基础命令:(6)线上查询与文件阅读的命令