您的位置:首页 > 运维架构 > Linux

linux 文件及目录

2016-02-07 20:43 387 查看
bin文件夹存放各种命令的文件
bash是shell命令的主程序.
home存放用户文件夹
boot是存放系统启动的相关文件 
dev存放各种设备文件  #fd软盘 disk硬盘等
lib存放各种库文件
media存放可移动介质的安装点
proc目录存储进程信息
tmp存放临时文件
sbin存放系统操作文件

我们设一个用户组来练习共享文件操作。

1. 创建用户组并设置用户
2. 文件的创建,移动,删除,复制等操作
3. 重定向操作
4. 链接文件
5. 简单的管道命令

#1
#--------------------------------------------------------------------------------------------------------
edemon@linux:~$ sudo groupadd myteam
# 增加用户及设置密码
edemon@linux:~$ sudo useradd -G myteam y2
edemon@linux:~$ sudo passwd y2
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

#创建一个myteam的文件夹在/home目录,并把此文件夹设置所属myteam用户组
edemon@linux:/home$ sudo mkdir myteam
edemon@linux:/home$ sudo chgrp myteam myteam
#chmod分配权限 g+ 将权限赋予用户组myteam
edemon@linux:/home$ sudo chmod g+rwx myteam
#chmod撤销其他用户对myteam文件夹的权限
edemon@linux:/home$ sudo chmod o-rwx myteam
#确定用户组的组长是y1
edemon@linux:/home$ sudo sudo chown y1 myteam
#切换用户
edemon@linux:~$ su y1
Password:
#--------------------------------------------------------------------------------------------------------
#2
#--------------------------------------------------------------------------------------------------------
y1@linux:/home/edemon$ cd /home
y1@linux:/home$ cd /home/myteam
#创建子文件夹
y1@linux:/home/myteam$ mkdir t1 t2
y1@linux:/home/myteam$ mkdir t1/doc
#-p 创建不存在的多级子目录
y1@linux:/home/myteam$ mkdir -p t3/doc1 doc2
y1@linux:/home/myteam$ ls
doc2  t1  t2  t3
#查看文件的属性
y1@linux:/home/myteam$ ls -l t1
total 4
drwxrwxr-x 2 y1 y1 4096 Feb  7 09:14 doc
#我们将文件doc2移动到t3中
y1@linux:/home/myteam$ mv doc2 t3
y1@linux:/home/myteam$ cd t3
y1@linux:/home/myteam/t3$ ls
doc1  doc2
# 存在同名文件再移动会怎样?
# 用nano在两个同名文件中写好内容
y1@linux:/home/myteam/t3$ touch cp
y1@linux:/home/myteam/t3$ nano cp
GNU nano 2.2.6              File:
cp

this is t3/cp document.

y1@linux:/home/myteam/t3$ cd ..
y1@linux:/home/myteam$ touch cp
y1@linux:/home/myteam$ nano cp
GNU nano 2.2.6              File: cp

this is /myteam/cp.

y1@linux:/home/myteam$ mv cp t3/
y1@linux:/home/myteam$ cd t3
y1@linux:/home/myteam/t3$ nano cp
GNU nano 2.2.6              File: cp

this is /myteam/cp.
#这说明它直接覆盖了原文件
#使用 mv -i提高文件移动的安全性
y1@linux:/home/myteam/t3$ cd  ..
y1@linux:/home/myteam$ touch mv
y1@linux:/home/myteam$ echo 'myteam'>cp
y1@linux:/home/myteam$ mv -i cp t3
mv: overwrite ‘t3/cp’? n
#输入n,取消移动

#带b参数的移动
y1@linux:/home/myteam$ ls
cp  mv    t1  t2    t3
y1@linux:/home/myteam$ mv -b cp t3
y1@linux:/home/myteam$ cd /t3
bash: cd: /t3: No such file or directory
y1@linux:/home/myteam$ cd t3
y1@linux:/home/myteam/t3$ ls
cp  cp~  doc1  doc2
y1@linux:/home/myteam/t3$

#递归复制
y1@linux:/home/myteam$ cd t1
y1@linux:/home/myteam/t1$ ls
doc
y1@linux:/home/myteam/t1$ touch hello
y1@linux:/home/myteam/t1$ cd ..
y1@linux:/home/myteam$ cp -r t1 t3  # 关键句
y1@linux:/home/myteam$ cd t3
y1@linux:/home/myteam/t3$ ls
cp  cp~  doc1  doc2  t1
y1@linux:/home/myteam/t3$ cd t1
y1@linux:/home/myteam/t3/t1$ ls
doc  hello

#带提示的删除操作
y1@linux:/home/myteam$ touch hello
y1@linux:/home/myteam$ rm -i hello
rm: remove regular empty file ‘hello’?

#试试其他同组的其他用户的使用情况:
edemon@linux:~$ su y2
Password:
y2@linux:/home/edemon$ cd /home/myteam
y2@linux:/home/myteam$ ls
hello  t1  t2  t3
y2@linux:/home/myteam$ cd t3
y2@linux:/home/myteam/t3$ ls
cp  cp~  doc1  doc2  t1
y2@linux:/home/myteam/t3$ cat cp
myteam
#但是对文件的写操作确是不行的
y2@linux:/home/myteam/t3$ echo '\n these are contents for y2'>cp
bash: cp: Permission denied
#这和文件属性有关的
y3@linux:/home/myteam/t3$ ls -l
total 20
-rw-rw-r-- 1 y1 y1    7 Feb  7 09:39 cp
-rw-rw-r-- 1 y1 y1   14 Feb  7 09:36 cp~
drwxrwxr-x 2 y1 y1 4096 Feb  7 09:17 doc1
drwxrwxr-x 2 y1 y1 4096 Feb  7 09:17 doc2
drwxrwxr-x 3 y1 y1 4096 Feb  7 09:56 t1

y2@linux:/home/myteam/t3$ su y3
Password:
y3@linux:/home/myteam/t3$ ls
cp  cp~  doc1  doc2  t1
y3@linux:/home/myteam/t3$ cat cp
myteam
y3@linux:/home/myteam/t3$

#给同组其他用户赋予w权限, 查看效果
y1@linux:/home/myteam/t3$ chmod o+w cp
y1@linux:/home/myteam/t3$ su y3
Password:
y3@linux:/home/myteam/t3$ cat cp
myteam
y3@linux:/home/myteam/t3$ echo 'y3'>cp
y3@linux:/home/myteam/t3$ cat cp
y3

#关于用户所属者:u 同组其他用户o 所有用户a
#其他用户
y3@linux:/home/myteam/t3$ su edemon
Password:
edemon@linux:/home/myteam/t3$ sudo useradd y4
[sudo] password for edemon:
edemon@linux:/home/myteam/t3$ sudo passwd y4
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
#新建立的用户目录默认为 /home/***
edemon@linux:/home/myteam/t3$ cd
edemon@linux:~$ pwd
/home/edemon
#其他用户是不能进入myteam的,因为没有执行权限 x
edemon@linux:/home$ su y4
Password:
y4@linux:/home$ cd /home/myteam
bash: cd: /home/myteam: Permission denied
y4@linux:/home$ ls -l
total 8
drwxr-xr-x 22 edemon edemon 4096 Feb  7 17:36 edemon
drwxrwx---  5 y1     myteam 4096 Feb  7 10:03 myteam

#给所有用户赋予X权限
y4@linux:/home$ su y1
Password:
y1@linux:/home$ chmod a+x myteam
y1@linux:/home$ su y4
Password:
y4@linux:/home$ cd myteam
y4@linux:/home/myteam$
y1@linux:/home$ ls -l
total 8
drwxr-xr-x 22 edemon edemon 4096 Feb  7 17:36 edemon
drwxrwx--x  5 y1     myteam 4096 Feb  7 10:03 myteam

#快速更改权限:
#同组所有用户有读r和执行x的权限
y1@linux:/home/myteam/t3$ chmod ug=rx,o=r cp
y1@linux:/home/myteam/t3$ ls -l
total 20
-r-xr-xr-- 1 y1 y1    3 Feb  7 18:48 cp
-rw-rw-r-- 1 y1 y1   14 Feb  7 09:36 cp~
drwxrwxr-x 2 y1 y1 4096 Feb  7 09:17 doc1
drwxrwxr-x 2 y1 y1 4096 Feb  7 09:17 doc2
drwxrwxr-x 3 y1 y1 4096 Feb  7 09:56 t1
#仅有文件创建者有rwx权限,其他用户r权限
y1@linux:/home/myteam/t3$ chmod u=rwxx,o=r cp
y1@linux:/home/myteam/t3$ ls -l
total 20
-rwxr--r-- 1 y1 y1    3 Feb  7 18:48 cp
-rw-rw-r-- 1 y1 y1   14 Feb  7 09:36 cp~
drwxrwxr-x 2 y1 y1 4096 Feb  7 09:17 doc1
drwxrwxr-x 2 y1 y1 4096 Feb  7 09:17 doc2
drwxrwxr-x 3 y1 y1 4096 Feb  7 09:56 t1
#--------------------------------------------------------------------------------------------------------
#3
#--------------------------------------------------------------------------------------------------------
#重定向:
y1@linux:/home/myteam/t3$ echo "ubuntu linux.">cp
y1@linux:/home/myteam/t3$ cat cp
ubuntu linux.
#输入和输出的重定向
edemon@linux:~$ cat <<EOF >3
> this
> is
> <<
> ans >
> test
> !
> EOF
edemon@linux:~$ cat 3
this
is
<<
ans >
test
!
edemon@linux:~$
#输入重定向
edemon@linux:~$ cat << EOF
> hello world
> EOF
hello world
#--------------------------------------------------------------------------------------------------------
# 4
#--------------------------------------------------------------------------------------------------------
/*
三种重要的文件:
普通文件
目录文件
链接文件:
ln -s 文件名   参数S表示这是创建符号链接文件
*/
edemon@linux:~$ ln -s 1.1 link1.1
edemon@linux:~$ ls
1.1  Desktop           link1.1        Pictures   下载
1.2  Documents         Music          Public     文档
2    Downloads         my nano file~  Templates  桌面
3    examples.desktop  myNanoFile     Videos

#通过了链接文件我们可以访问它所指的文件
#关于链接文件: 用于文件共享,隐私文件路径问题的解决
#链接文件和源文件建立了一个链接,其中一个文件改变会改变另一个文件.

edemon@linux:~$ cat link1.1
this is 1.1 file
edemon@linux:~$ nano link1.1
edemon@linux:~$ cat link1.1
this is 1.1 file
link1.1
edemon@linux:~$ cat 1.1
this is 1.1 file
link1.1

#删除此链接文件对源文件没有影响
edemon@linux:~$ rm link1.1
edemon@linux:~$ cat 1.1
this is 1.1 file

#创建指向目录的链接文件
edemon@linux:~$ ln -s Desktop linktop
edemon@linux:~$ ls
1.1  Desktop           linktop        Pictures   下载
1.2  Documents         Music          Public     文档
2    Downloads         my nano file~  Templates  桌面
3    examples.desktop  myNanoFile     Videos
edemon@linux:~$ cat linktop
cat: linktop: Is a directory

#硬链接文件
edemon@linux:~$ ln 3 link3
edemon@linux:~$ ls
1.1  Desktop           link3          myNanoFile  Videos
1.2  Documents         linktop        Pictures    下载
2    Downloads         Music          Public      文档
3    examples.desktop  my nano file~  Templates   桌面
#--------------------------------------------------------------------------------------------------------
# 5
#--------------------------------------------------------------------------------------------------------
#管道命令
#过滤显示
edemon@linux:~$ ls | grep 1
1.1
1.2
link1.1
# >>追加文件内容
edemon@linux:~$ echo '\n append 1.1'>>1.1
edemon@linux:~$ cat 1.1
this is 1.1 file
link1.1
\n append 1.1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: