Linux:文件和目录系统

本文介绍了在Linux系统中如何进行文件和目录的管理,包括新建用户组、用户及设置密码,调整文件权限,以及文件的移动、复制、删除等操作。重点讨论了使用chown、chgrp和chmod命令来管理文件所有权和权限,并提到了输出和输入重定向、管道等命令行工具的使用。

和团队共享文件

#新建用户组
sudo groupadd workgroup ##sudo 以超级用户的方式 建立 用户组
#新建用户,并加入某一用户组
sudo useradd -G workgroup lucy ##将lucy加入用户组
sudo passwd lucy ##给lucy创建登录密码
sudo useradd -G workgroup peter ##将peter加入用户组
sudo passwd peter ##给peter创建登录密码
#建立小组 工作目录
cd /home
sudo mkdir work ##建立work目录作为小组工作目录
#将文件/目录 的所属群组 变更为 workgroup
sudo chgrp workgroup work/ ##将文件/目录 的所属群组 变更为 workgroup
sudo chmod g+rwx work/ ##给同组用户 读写执行 work目录的权限
sudo chmod o-rwx work/ ##取消其他用户 对 work目录的 读写执行权限
#将目录work交给组长
sudo chown lewis work/ ##将目录work的所有者变更为lewis
#以组长身份进入,新建文件test
su lewis ##以lewis身份登录系统
cd /home/work/
touch test ##新建文件test; touch: 用于新建不存在的文件,或者修改文件的时间戳
#以同组用户peter身份登录
su peter
cd /home/work/
rm test ##删除test文件

#查看文件 和 目录的属性
ls -l /bin/login ##选项l可以查看一个文件的属性
ls -ld /etc/ ##选项ld 查看目录的属性
ls -l ##列出当前目录下所有文件的属性
chown owner:owngroup file ##改变file的所有者和所有组
chown owner file ##改变file的所有者
chown :owngroup file ##改变file的所有组
chown -R owner:ownergroup dirname/ ##改变目录,及其下所有文件的 owner 和 所有组
chgrp ownwergroup file ##设置文件的属组
chgrp -R ownergroup dirname/ ##将目录以及其下文件的数组设为ownergroup
chmod u/g/o/a +/-/=rwx filename #给用户赋予filename的各种权限
##u: 文件所有者
##g:与owner同组用户
##o:其他用户
##a:所有用户
##+:添加某个权限
##-:撤销某个权限
##=:更新权限
chmod ug+w, o-x filename ##给owner, owner同组用户添加 写 权限;撤销其他用户的 执行权限
chmod 用户组1=用户组2 days ##将用户组1对days的权限设置的与用户组2相同
chmod o=u days ##将其他用户的权限设置的与 属主相同
# rwx  -> 111
# r:4; w:2; x:1
chmod 711 file #属主赋所有权;同组用户仅有执行权限;其他用户仅有执行权限
mv filename bin/ ##移动文件到bin目录下
mv dirname/ 桌面/ ##移动目录到桌面,如果桌面已经有一个同名目录,则dirname会覆盖原目录,为此,引入 i 选项
mv -i dirname/ 桌面/ ##i:询问用户是否覆盖原同名文件
mv -b dirname/ 桌面/ ##b:如果桌面有同名文件,则在移动时,会 首先在同名文件后加~:dirname~
mv hello new_hello ##相当于重命名:new_hello
#复制文件
cp -i file test/
cp -b file test/ ##i, b选项与mv中的作用一样
cp test/ 桌面/ ##cp复制时,会掠过目录,只复制其中内容。如果test下还有子目录,也只会复制子目录中的内容,掠过子目录
cp -r test/ 桌面/ ##将目录连同其内内容一起复制
mkdir -p ~/tempx/job ##p:创建完整的目录结构; ~:用户主目录
touch filename ##建立空文件。如果filename已经存在,则会将filename的新建时间 更新为 此次时间节点
echo 'Hello' > filename ##将字符串'Hello'输入到文件filename; echo:用于字符串的输出
cat filename ##显示文件内容
rmdir dirname ##只能删除空目录,如果目录内有内容,则需删除内容后,在删除空目录
rm filename ##用于删除文件,删除后的文件无法召回
rm -i filename ##在 删除文件 前,给出提示,询问是否删除
rm -f read_only_name ##如果文件为只读时,删除前会给出提示,询问是否删除。如果加上-f选项,则不再给出提示
rm -r dirname/ ##删除dirname 以及 其中内容

linux的几种文件类型
在这里插入图片描述
字符设备文件:存储在 字符设备 上的文件。
字符设备:顺序读取设备,如:磁带。
块设备文件:存储在 块设备 上的文件。
块设备:随机读取设备,如:磁盘。

本地域套接口,有名管道:都是有关进程通讯的。

符号链接:类似于windows的快捷键,可以根据其,快速访问一个文件。

#软连接
ln -s days mydays ##为days建立一个软连接mydays; cat mydays 等同于 cat days; 如果把days删除,虽然mydays存在,但是已经没有任何意义;可以通过ls -l mydays 查看mydays属性,会发现:mydays -> days;
#硬链接
ln days harddays ##将days链接到harddays;修改days,所有修改会同时反映到harddays;

输出重定向:

#输出重定向 >:覆盖原有内容
ls > ~/ls_out
cat ~/ls_out ##输出会在ls_out中显示出来; 值得一提的是,如果ls_out不存在,系统会尝试新建ls_out,但是,如果ls_out已经存在,则 >  会将原文件内容覆盖掉。
#输出重定向 >>:不覆盖原有内容
date > date_out ##将日期信息输入文件
uname -r >> date_out ##将 系统版本信息追加在文件内容后

输入重定向

cat < days ##cat从文件days获取内容,然后,在把获取的每一行内容显示在标准输出上
           ##完全可以用 cat days 替代
           ##大部分命令 都能够以参数的形式指定输入文档,因此,输入重定向并不常用

立即文档:明确告诉shell,从键盘接受输入,并传递给程序;立即文档 能够指定 一个字符串(如:EOF)作为输入的结束符。

cat << EOF
> Hello
> Bye
> EOF
#输出:
Hello
Bye
cat << END > hello ##将键盘输入 写入hello文件
> Hello Word!
> Bye
> END

管道:将一个命令的输出 作为 另一个命令的输入

ls | grep ay ##将ls的输出 作为 grep 的输入,寻找所有含ay的文件,并将其显示在标准输出中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sarah ฅʕ•̫͡•ʔฅ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值