Linux基础02篇

本文主要介绍文件系统、文件权限、文件打包和解包及软件包管理方面的命令。

1. 文件系统

  • 磁盘分区
    磁盘分区主要使用fdisk(sfdisk)命令和parted命令。

    1
    2
    3
    4
    # sfdisk-l
    # sfdisk-s
    # cfdisk-Ps
    # fdisk -l
  • 格式化
    mkfs命令

    1
    2
    # mkfs.ext4
    # mfks -t ext4 /dev/sda6
  • 挂载
    mount命令

    1
    2
    3
    # mount /dev/sda5 /test
    # mount /soft/rhel-server-6.3-x86_64-dvd.iso /yum/ -o loop
    # mount -o remount,noexec /
  • 查看磁盘

    1
    2
    3
    4
    5
    6
    7
    # df –h					显示已经挂载的分区列表
    # df –T 显示分区列表的文件系统类型
    # du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间
    # fsck 文件系统修复
    # dumpe2fs /dev/sda1 显示磁盘状态
    # findmnt 查找已经被挂载的文件系统
    # blkid

2. 文件权限

  • 基本的权限
    -rw——- 1 root root 1112 Mar 27 03:14 anaconda-ks.cfg
    rw- — — 权限用九位来表示
    前三位代表用户u(user),中间三位代表组g(group),后三位代表o(others)
    基本权限有三种 r(read)读 w(write)写 x(execute)执行 a表示all
    r 读权限
    针对目录,有r权限,就代表能对此目录有列表的功能 (就是ls列出来的功能)
    针对文件,有r权限,就代表能对此文件有阅读的功能 (就是指cat一类的命令)
    w 写权限
    针对目录,有w权限,就代表在此目录下创建文件或者子目录 (touch,mkdir等)
    针对文件,有w权限,就代表能在此文件写入内容或者修改 (> ,>>, vi 再写等)
    x 执行权限
    针对目录,有x权限,就代表能进入此目录 (cd)
    针对文件,有x权限,就代表能执行它 (命令,可执行文件等)
    1
    2
    3
    4
    5
    6
    7
    # chmod a+x 1.txt
    # chmod g+x 1.txt
    # chmod a+x 1.txt
    # chmod a-r 1.txt
    # chmod o-rwx 1.txt
    # chmod u-w,g+x,o+x abc --也可以一次性连写
    # chmod o=rwx 1.txt

rw- — —
110 000 000 –二进制 600 –十进制

权限用数字来表示 (r,w,x都可以用数字来表示)
r 4
w 2
x 1

-rw-r–r– 这个以数字表示为644

修改文件所有者和组

1
2
3
4
5
6
7
8
9
10
11
12
# touch 1.txt
# ll 1.txt
-rw-r--r-- 1 root root 0 Aug 20 15:28 1.txt
# chown user2.user2 1.txt
# ll 1.txt
-rw-r--r-- 1 user2 user2 0 Aug 20 15:28 1.txt
# chown user3:user3 1.txt
# ll 1.txt
-rw-r--r-- 1 user3 user3 0 Aug 20 15:28 1.txt
# chown user2:user3 1.txt
# ll 1.txt
-rw-r--r-- 1 user2 user3 0 Aug 20 15:28 1.txt

  • 特殊权限
    s权限:一个可执行文件拥有s位时,当别的用户来执行这个可执行文件的话,使用的权限是此可执行文件属主或者属组的权限
    只针对前三位,中间三位。对目录可以加,但是无效,因为目录不是命令,根本不能执行它
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # ll /usr/bin/passwd
    -rwsr-xr-x. 1 root root 30768 Feb 17 2012 /usr/bin/passwd
    # ll /etc/shadow
    ----------. 1 root root 1434 Jul 17 09:27 /etc/shadow
    ```

    t权限,只针对目录有效
    有t位的目录,任何用户在有权限的情况下是可以创建文件和目录,但是自己只能删除自己创建的目录。
    ```markdown
    # ll -d /tmp/

s位和t位注意的地方:
用数字表示
前三位上加s 4
中间三位加s 2
后三位加t 1

s位和t位大小写的区别
小写的话就表示 有x执行权限
大写的话就表示 没有x执行权限

  • 隐藏属性
    1
    2
    3
    4
    5
    6
    7
    8
    # chattr +a file1 只允许以追加方式读写文件
    # chattr +c file1 允许这个文件能被内核自动压缩/解压
    # chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
    # chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
    # chattr +s file1 允许一个文件被安全地删除
    # chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
    # chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
    # lsattr 显示特殊的属性

3.文件打包和解包

示例:

1
2
3
4
5
6
7
8
9
10
11
12
# tar -cvf archive.tar file1 创建一个非压缩的 tarball
# tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件
# tar -tf archive.tar 显示一个包中的内容
# tar -xvf archive.tar 释放一个包
# tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
# tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
# tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
# tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
# tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
# zip file1.zip file1 创建一个zip格式的压缩包
# zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
# unzip file1.zip 解压一个zip格式压缩包

4. 软件包管理

  • rpm包管理

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # rpm -ivh package.rpm 安装一个rpm包
    # rpm -ivh --nodeps package.rpm 安装一个rpm包而忽略依赖关系警告
    # rpm -U package.rpm 更新一个rpm包但不改变其配置文件
    # rpm -e package_name.rpm 删除一个rpm包
    # rpm -qa 显示系统中所有已经安装的rpm包
    # rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包
    # rpm -qi package_name 获取一个已安装包的特殊信息
    # rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表
    # rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表
    # rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供
    # rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表
    # rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书
    # rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包
    #
  • yum管理工具

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # yum install package_name 下载并安装一个rpm包
    # yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
    # yum update package_name.rpm 更新当前系统中所有安装的rpm包
    # yum update package_name 更新一个rpm包
    # yum remove package_name 删除一个rpm包
    # yum list 列出当前系统中安装的所有包
    # yum search package_name 在rpm仓库中搜寻软件包
    # yum clean packages 清理rpm缓存删除下载的包
    # yum clean all 删除所有缓存的包
---------------- The End ----------------