01- Linux文件目录与权限管理

本文深入探讨了Linux系统中的文件目录管理,包括常用命令的使用,如ls、cd、pwd、clear、man等。详细解析了ls命令的参数,如-a、-l、-R等,以及如何通过chmod和chown命令更改文件权限和所有者。此外,还介绍了文件和目录的创建、删除、移动以及压缩和解压缩操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux命令格式

Linux命令列通常由好几个字符串组成, 中间用空格键分开。

如下所示:

   command   options   arguments(parameters) 

    命令      选项            参数 

例如:

     rm –rf /home/ols3

Linux遵循“一切皆文件”

命令基本语法:command [<option1> <option2>... i<parm1> <parm2...>]

例如: ls -l -a /root ==  ls -la /root  (显示/root下的所有文件详细信息)

Linux基本命令

ls命令

ls

语法:ls [参数选项] [目录名]

说明:显示指定工作目录下的内容

-a  显示所有文档及目录,包括隐藏文件

-r  将文档以相反次序显示(原定按英文字母次序)

-F  在列出的文档名称后加一符号;例如可执行文档则加“*”,目录则加 “/” ,符号链接文件加“@”

-l  将文档名、文档类型、权限、拥有者、大小等信息详细列出

-d  显示指定目录信息。不加d参数,显示指定目录下的信息

-i  显示指定目录的i节点信息

-h  人性化显示目录和文件的大小

-R  递归地显示子目录中的内容

 

ls 显示文件或目录,颜色表示文件或目录的类型。颜色由/etc/DIR_COLORS控制

cat /etc/DIR_COLORS|more

 

绝对路径:以/开头

相对路径:..(上层目录)    .(下层目录)

.开始的都是隐藏文件,只有用ls -a才能看到

ls实例

ls –a /root    ls –R /etc     ls –F /bin    ls –l /dev

ls –i /root     ls –dl /bin    ll /bin         ls –lh /root

ls参数

ls -l /root/anaconda-ks.cfg

-rw-r--r--  1 root root 1132 Oct 31 03:16 anaconda-ks.cfg

权限   硬链接数  属有者  所属组  文件大小   日期  文件名

权限:属有者权限,所属组权限,其它组权限

              r:只读,w:读写,x:执行

 

重要选项:-l  显示详细信息。

[root@rhel6 ~]# ls -l

总用量 24

-rw-------. 1 root root  1014 7月  29 18:39 anaconda-ks.cfg

-rw-r--r--. 1 root root 13374 7月  29 18:39 install.log

-rw-r--r--. 1 root root  3482 7月  29 18:37 install.log.syslog

从左到右分别为:

文件类型和权限  硬链接数  属有者  工作组  文件大小  创建或修改时间  文件名

cd命令

语法:cd [目录名]

说明:用于更换工作目录

cd ..  更换目录回到上一级目录

cd .   更换到当前目录

cd ~   更换目录到当前用户的个人宿主目录

cd /etc/vsftpd更换到/etc/vsftpd目录

cd /   更换目录到根目录

[root@rhel6 /]# cd /var/log/   绝对路径
[root@rhel6 log]# ls
anaconda.ifcfg.log    anaconda.xlog     ConsoleKit  maillog   tallylog
anaconda.log          anaconda.yum.log  cron        messages  wtmp
anaconda.program.log  audit             dmesg       rhsm      xferlog
anaconda.storage.log  boot.log          dracut.log  secure
anaconda.syslog       btmp              lastlog     spooler
[root@rhel6 log]# cd audit/   相对路径,相对于/var/log目录
[root@rhel6 audit]# ls
audit.log
[root@rhel6 audit]# cd ..
[root@rhel6 log]# pwd	显示当前目录的绝对路径
/var/log

pwdclearman命令

pwd

   语法:pwd

   说明:显示当前工作目录的绝对路径

clear

   语法:clear

   说明:清除屏幕上的信息

man

   语法:man [参数选项] 帮助主题。

说明:man实际上就是查看命令用法的help,学习任何一种UNIX类的操作系统最重要的就是学会使用man这个辅助命令。manmanual(手册)的缩写字,它的说明非常的详细,建议记得一些基本用法就可以了。

pwd	显示目录绝对路径
clear 	清屏, 按ctrl+l

man帮助命令,帮助文档均存放到/usr/share/man/目录下
 
[root@rhel6 ~]# cd /usr/share/man
[root@rhel6 man]# ls
cs  id  man0p  man2   man3x  man5x  man7x  man9x  pt_BR  tr
de  it  man1   man2x  man4   man6   man8   mann   ru     zh_CN
fr  ja  man1p  man3   man4x  man6x  man8x  pl     sk     zh_TW
hu  ko  man1x  man3p  man5   man7   man9   pt     sv

mkdirrmdir命令

mkdir

语法:mkdir [参数选项] 目录名

说明:创建一个空目录,要求此用户在当前目录上具有写权限

 rmdir

语法:rmdir [参数选项]目录名

说明:删除一个或多个空目录或空子目录,要求此用户在当前目录上具有写权限

mkdir   创建目录
mkdir -p a/b/c/d     	创建多级目录
mkdir -m 777 dir1	创建目录时,同时设置权限

rm命令

语法:rm [参数选项] 文件

说明:用户可以用rm命令删除不需要的文件。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于符号链接文件只是断开了链接,原文件保持不变。

 

    -f:不作确认提示,强制删除文件。如果错误只是文件不存在,那么不会生成一个状态返回的错误。

    -i:进行确认提示。(在同时给定了-f-i选项时,列在最后的生效)。

    -r,-R:递归地移除目录树。 它可以连同这个目录下的子目录都删除。

[root@rhel6 ~]# ls
1.dir   anaconda-ks.cfg  grub.conf    install.log.syslog  test
1.file  audit            install.log  messages
[root@rhel6 ~]# rm 1.* -rf
[root@rhel6 ~]# ls
anaconda-ks.cfg  grub.conf    install.log.syslog  test
audit            install.log  messages
[root@rhel6 ~]# rm messages -i
rm:是否删除普通文件 "messages"?y
[root@rhel6 ~]# ls
anaconda-ks.cfg  grub.conf    install.log.syslog
audit            install.log  test

touchln命令

touch

语法:touch [参数选项] 文件

说明:修改文件的时间戳,不加任何参数则创建一个空白文件。

-a:改变文件访问时间为当前时间

-m:改变文件修改时间为当前时间

ln

    语法:ln [参数选项源文件  链接文件

    说明:创建链接文件,分为硬链接和软链接,加-s参数为创建软链接

    -b:删除文件前备份文件

    -d-F:指定源目录,用在链接目录时

    -f:强制创建链接           -s:创建符号链接

ln [-sf] 原文件  符号链接文件|硬链接文件
 -s 创建符号链接文件。快捷方式
 -f 覆盖
 
符号链接文件:快捷方式,可以跨分区,对文件和目录操作,具有独立的i节点,占用硬盘空间
硬链接文件:用于保护文件。不能跨分区,只能对文件操作,不占用硬盘空间

cp命令

语法:cp [参数选项] 源文件或目录 目标文件或目录

说明:把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

 

   -f:如果需要,删除已存在的目的文件

   -i:提示是否覆盖现有普通目标文件。 (在标准出错上显示问题,从标准输入读取答案。只有明确确认了才复制文件)

   -p:保留原文件的所有者、组、权限(包括 setuid setgid 位),上次修改时间和上次访问时间。如果制作所有者或组信息的副本时出错,则 setuid setgid 位被清空。

   -R:递归复制目录,如果对象不是普通文件或目录那么做相应正确处理,(因此,一个 FIFO或者特殊文件在复制后仍然是一个 FIFO型或者相应特殊文件)

[root@rhel6 ~]# cp /var/log/messages .
[root@rhel6 ~]# ls messages
messages
[root@rhel6 ~]# cp /var/log/audit .
cp: 略过目录"/var/log/audit"
[root@rhel6 ~]# cp -Rvap /var/log/audit .
"/var/log/audit" -> "./audit"
"/var/log/audit/audit.log" -> "./audit/audit.log"
[root@rhel6 ~]# ls
1.dir   anaconda-ks.cfg  install.log         messages
1.file  audit            install.log.syslog  test

mv命令

语法:mv [参数选项] 源文件或目录 目标文件或目录

说明:

mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。

当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。

     -f:覆盖前永不提示           -i:覆盖前提示

mv source_name [path]/target_name
[root@rhel6 ~]# mv messages messages.bak
[root@rhel6 ~]# ls messages.bak
messages.bak
[root@rhel6 ~]# mv messages.bak /messages
[root@rhel6 ~]# ls
1.dir   anaconda-ks.cfg  install.log         test
1.file  audit            install.log.syslog
[root@rhel6 ~]# ls /messages
/messages
[root@rhel6 ~]# mv /messages .
[root@rhel6 ~]# ls
1.dir   anaconda-ks.cfg  install.log         messages
1.file  audit            install.log.syslog  test

chmod命令

chmod的语法有两种模式:

语法1chmod [options] [who] opcode permission file…

语法2chmod [options] [n1]n2n3n4  file…

  说明:改变文件或目录的权限模式

例如:

  第一种:chmod –R u=rwx,g=rw,o=rx  /home/test

  第二种:chmod -R 765  /home/test

方法一:文本方式
chmod -R [ugoa][+-=][rwxst] filename|dirname
 
[root@rhel6 ~]# ll install.log
-rw-r--r--. 1 he.shixiao root 13374 7月  29 18:39 install.log
[root@rhel6 ~]# chmod u=rwx,g=rx,o=r install.log
[root@rhel6 ~]# ll install.log
-rwxr-xr--. 1 he.shixiao root 13374 7月  29 18:39 install.log
 
方法二:数字方式(rwx分别按照421加权)
chmod -R 7777 filename|dirname
7:suid,sgid,t
7:user:rwx
7:group:rwx
7:other:rwx
 
例:
rwx==111=7
rw-==110=6
r-x== 101=5

chown命令

语法:chown  [options] [newuser] [.newgroup]  file…

说明:改变文件或目录的所属用户,也可以改变所属组

   -c:显示改变的信息

   -v:显示所有权改变

   -R:连同改目录下的子目录和文件一并更改

例如:

  chown root:jake /root/install.log

[root@rhel6 ~]# useradd a
[root@rhel6 ~]# useradd b
[root@rhel6 ~]# chown a.b install.log
[root@rhel6 ~]# ll install.log
-rw-r--r--. 1 a b 13374 7月  29 18:39 install.log
[root@rhel6 ~]# chown root.root install.log
[root@rhel6 ~]# ll install.log
-rw-r--r--. 1 root root 13374 7月  29 18:39 install.log
[root@rhel6 ~]# useradd he.shixiao
[root@rhel6 ~]# chown he.shixiao:root install.log
[root@rhel6 ~]# ll install.log
-rw-r--r--. 1 he.shixiao root 13374 7月  29 18:39 install.log

cat命令

语法:cat [参数选项] fileNames

说明:把档案串连后传到基本输出(或加 >重定向到另一个文件)。

-E:每行结束显示 $

-n:所有输出行编号。

-s:将所有的连续的多个空行替换为一个空行。

例如

  cat –n /root/install.log |more

[root@rhel6 ~]# cat -n /etc/hosts
     1  127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
     2  ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

moreless命令

more

语法:more [参数选项][fileNames]

说明:类似cat,不过会以一页一页的显示方便使用者逐页阅读,

  空格键(space)显示下一页

  b键(back)显示上一页

  h帮助

less

语法:less [参数选项] fileName

说明:less 的作用与 more 十分相似,但less 并未在一开始就读入整个文件,因此在遇上大型文件的开启时,会比一般的文书编辑器(vi) 快速。按h,显示帮助命令。

head

语法:head [参数选项] fileNames

说明:显示文件的前十行。

例如:head install.log  显示install.log的前十行内容。

若要显示前十五行,可以用 head -15 install.log命令。

 

tail

语法:tail [参数选项] fileNames

说明:显示文件的后十行。

例如:tail install.log 显示install.log的后十行内容。

[root@rhel6 ~]# tail -f /var/log/messages	
动态显示messages文件的变化情况。一般用于排错。

file

       语法:file [参数选项] 文件

       说明:确定文件的类型

-b:显示信息时省略文件名

-s:查看设备文件的类型

-L:追踪符号链接

-f listfile:识别文件listfile中列出的文件名

find

语法:find [搜索路径] [参数选项] [匹配表达式]

功能:在指定的搜索路径下搜索指定的目录或文件。

-name 字符:查找包含固定字符的文件和目录。

-perm 模式: 匹配所有符合指定数值模式值的文件。

-size n[c]:匹配大小为nblock的文件名,c:以字节为单位

-user 用户名:搜索所有属主为用户名的文件。 

-group 组名:搜索所有属主为组名的文件。

-atime n:搜索在n天前访问过的文件。            

-mtime n:搜索在n天前修改过的文件。

-ctime n:搜索在n天前创建的文件。

-exec 命令 {} \;  :对每个匹配的文件执行该命令,标志{}用于指定命令执行时文件名出现的地方,命令必须终止于符号“{}\;”

例如:查找所有空文件并将其删除: find / -size 0 –exec rm –rf {} \;

-type f|b|c|d|s|p|l  按文件类型查找
 
[root@rhel6 ~]# find /dev -type b
 
[root@rhel6 ~]# find /dev -type s -exec ls -l {} \;
srw-rw-rw-. 1 root root 0 7月  29 18:40 /dev/log
 
  -exec <shell_command> {} \; 调用外部命令
[root@rhel6 ~]# find /dev -type s -exec ls -l {} \;

 -a   -o   !  
与   或  非
 
查找无主文件且文件大小为空时,删除。
find . -nouser -a -size 0 -exec rm -rf {} \;
 
查找aa用户,或者文件大小超过10M的文件。
find . -user aa -o -size +10M

locateslocate

语法:locate [参数选项] [匹配表达式]

说明:locateslocate的符号链接,从系统的一个数据库中查找相关的数据,在查找前需使用updatedb命令先更新一下数据库文件

-u :创建locate需要的系统数据库

-d path:指定使用该路径下的数据库

whereis

说明:简易的查询命令,在特定目录中查找源代码、二进制文件和说明文件

which

说明:在环境变量$PATH指定的目录中查找文件,可一次查询多个文件,主要用于查找命令

find	从硬盘中查找某个文件(最慢)
whereis	查找某个命令
which	查找某个命令	
slocate	从数据文件中,从索引文件中找文件(最快)

shutdown

语法:shutdown [参数选项] [时间] [警告信息]

说明:shutdown会安全地将系统关机,该命令只能由超级用户使用。

reboot

语法:reboot

说明:终止系统并重新引导系统。

haltpoweroff

语法:haltpoweroff

说明:停机命令

init

语法:init 运行级

说明:改变运行级

关机:
shutdown -h now
init 0
poweroff
halt
 
重启:
shutdown -r now
init 6
reboot

tar

语法:tar [参数选项] [tar文件] [文件或目录]

说明:从一个打包介质中拷贝文件或恢复文件。如果是目录,则整个子目录都一起操作,参数不需在文件之前。

  -c  建立新的归档文件

  -t  显示归档文件内容

  -u  只追加比归档文件中的文件更新的文件

  -x  从归档文件中解开文件

  -v  处理时显示文件名

  -z  在进行归档或解包时,采用gzip进行压缩和解压缩

  -j  在进行归档或解包时,采用bzip2进行压缩和解压缩

  -r  向归档文件末尾追加文件

  -d  将归档文件和系统文件进行比较。

tar	打包和解包
 
打包(备份):-c 打包  -v显示打包的过程  -f 打包到文件 -z gzip压缩  -j bzip2压缩
tar -cvf 1.tar /var/log   /etc/hosts  将/var/log目录和/etc/hosts文件打包到1.tar文件中
 
tar -zcvf 1.tar.gz /var/log  /etc/hosts   在打包时,采用gzip命令压缩
tar -jcvf 1.tar.bz2 /var/log  /etc/hosts   在打包时,采用bzip2命令压缩

gzip

  语法:gzip [参数选项] 文件

  说明:压缩或解压缩文件

gunzip

  说明:解压缩.gz文件

  -v:显示压缩的比率

  -l:查看压缩文件的信息

  -d:解压缩

[root@rhel6 ~]# ll 1.tar
-rw-r--r--. 1 root root 1187840 7月  30 00:16 1.tar
[root@rhel6 ~]# ll 1.tar -h
-rw-r--r--. 1 root root 1.2M 7月  30 00:16 1.tar
[root@rhel6 ~]# tar -zcf 2.tar.gz /var/log/ /etc/hosts
tar: 从成员名中删除开头的“/”
[root@rhel6 ~]# ll 2.tar.gz 1.tar
-rw-r--r--. 1 root root 1187840 7月  30 00:16 1.tar
-rw-r--r--. 1 root root  122458 7月  30 00:17 2.tar.gz
[root@rhel6 ~]# ll 2.tar.gz 1.tar -h
-rw-r--r--. 1 root root 1.2M 7月  30 00:16 1.tar
-rw-r--r--. 1 root root 120K 7月  30 00:17 2.tar.gz
 
[root@rhel6 ~]# gzip 1.tar
[root@rhel6 ~]# ll -h 1.tar.gz
-rw-r--r--. 1 root root 120K 7月  30 00:16 1.tar.gz
[root@rhel6 ~]# gzip -d 1.tar.gz
[root@rhel6 ~]# ll -h 1.tar
-rw-r--r--. 1 root root 1.2M 7月  30 00:16 1.tar

bzip2

  语法:bzip2 [options] [files]

  说明:压缩解压缩文件

  bzip2 test test文件压缩成test.bz2替代原来的test文件

  bzip2 –k test   保留原来的文件test

  bzip2 –d test.bz2 解压缩

  bzip2recover test.bz2  修复损坏的.bz2文件

bunzip2

  说明:解压缩.bz2文件

[root@rhel6 ~]# bzip2 1.tar
[root@rhel6 ~]# ll -h 1.tar.bz2
-rw-r--r--. 1 root root 93K 7月  30 00:16 1.tar.bz2
[root@rhel6 ~]# bzip2 -d 1.tar.bz2

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值