精华内容
下载资源
问答
  • 一键删除所有硬盘(Fix 不包含移动盘和光驱)的 指定文件夹。间隔多长时间执行一次。可以最小化到托盘,可以注册。

    一键删除所有硬盘(Fix  不包含移动盘和光驱)上的 指定文件夹。间隔多长时间执行一次。可以最小化到托盘,可以注册。



    开始:开始一键删除所有硬盘(Fix  不包含移动盘和光驱)上的 指定文件夹。间隔多长时间执行一次。

    停止:就停止删。

    可以最小化到托盘,可以注册。



    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using Microsoft.Win32;
    using System.IO;
    
    namespace 注册机
    {
        public partial class Form1 : Form
        {
            public string fileName = "配置11.txt";
            public Form1()
            {
                InitializeComponent();
            }
            SoftReg softReg = new SoftReg();
            private void Form1_Load(object sender, EventArgs e)
            {
                string str=Read(fileName);
                if (str==null)
                {
                    this.textBoxInterval.Text = "36000";
                    this.textBoxPath.Text = "示例#test123456";
                }
                else
                {
                    string[] strArr = str.Split('*');
                    if (strArr.Length>=2)
                    {
                        this.textBoxInterval.Text = strArr[strArr.Length-2]; //36000
                        this.textBoxPath.Text = strArr[strArr.Length-1];// "示例#test123456";
                    }
                } 
       
                try
                {
                    //判断软件是否注册
                    RegistryKey retkey = Registry.CurrentUser.OpenSubKey("SOFTWARE", true).CreateSubKey("mySoftWare").CreateSubKey("Register.INI");
                    foreach (string strRNum in retkey.GetSubKeyNames())
                    {
                        if (strRNum == softReg.GetRNum())
                        {
                            this.labRegInfo.Text = "此软件已注册!";
                            this.btnReg.Enabled = false;
                            return;
                        }
                    }
                    this.labRegInfo.Text = "此软件尚未注册!";
                    this.btnReg.Enabled = true;
    
    
    
                    //MessageBox.Show("您现在使用的是试用版,可以免费试用5次!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
    
                    //Int32 tLong;    //已使用次数
                    //try
                    //{
                    //    tLong = (Int32)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\mySoftWare", "UseTimes", 0);
                    //    MessageBox.Show("您已经使用了" + tLong + "次!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //}
                    //catch
                    //{
                    //    MessageBox.Show("欢迎使用本软件!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //    Registry.SetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\mySoftWare", "UseTimes", 0, RegistryValueKind.DWord);
                    //}
                    判断是否可以继续试用
                    //tLong = (Int32)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\mySoftWare", "UseTimes", 0);
                    //if (tLong < 5)
                    //{
                    //    int tTimes = tLong + 1;
                    //    Registry.SetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\mySoftWare", "UseTimes", tTimes);
                    //}
                    //else
                    //{
                    //    DialogResult result = MessageBox.Show("试用次数已到!您是否需要注册?", "信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                    //    if (result == DialogResult.Yes)
                    //    {
                    //        FormRegister.state = false; //设置软件状态为不可用
                    //        btnReg_Click(sender, e);    //打开注册窗口
                    //    }
                    //    else
                    //    {
                    //        Application.Exit();
                    //    }
                    //}
    
                    DialogResult result = MessageBox.Show("此软件尚未注册!您是否需要注册?", "信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                    if (result == DialogResult.Yes)
                    {
                        FormRegister.state = false; //设置软件状态为不可用
                        btnReg_Click(sender, e);    //打开注册窗口
                    }
                    else
                    {
                        Application.Exit();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("请以管理员身份运行!");
                    this.Close();
                }
    
        
            }
    
            private void btnReg_Click(object sender, EventArgs e)
            {
                FormRegister frmRegister = new FormRegister();
                frmRegister.ShowDialog();
            }
    
            private void btnClose_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }
            private void limited()
            {
                DateTime dt1 = DateTime.Parse("2016-05-20");
                if (DateTime.Compare(dt1, DateTime.Now) < 0)
                {
                    MessageBox.Show("试用版已经到期,请联系小黄人软件QQ345139427");
                    return;
                }
            }
            private void buttonDel_Click(object sender, EventArgs e)
            {
    
    
    
                limited();
                if (timer1.Enabled)
                {
                    timer1.Enabled = false;//设置为truetimer1_Tick实践就会执行,开始计时
                    buttonDel.Text = "开始";
                }
                else
                {
                    Write(fileName, this.textBoxInterval.Text + "*" + this.textBoxPath.Text);
                    timer1.Interval = Convert.ToInt32(this.textBoxInterval.Text);//设置timer1的timer1_Tick实践执行周期为N毫秒
                    timer1.Enabled = true;//设置为truetimer1_Tick实践就会执行,开始计时
                    buttonDel.Text = "停止";
                }
            }
    
            private void timer1_Tick(object sender, EventArgs e)
            {
    
    
    
                timer1.Interval = Convert.ToInt32(this.textBoxInterval.Text);//设置timer1的timer1_Tick实践执行周期为N毫秒
        
                DriveInfo[] drives = DriveInfo.GetDrives();
                for (int i = 0; i < drives.Length; i++)
                {
                    if (drives[i].DriveType == DriveType.Fixed)
                    {
                        ForEachDisk(drives[i].ToString());
                    }
                }
               // MessageBox.Show("遍历完毕");
                this.notifyIcon.ShowBalloonTip(10, this.notifyIcon.BalloonTipTitle,this.notifyIcon.BalloonTipText,ToolTipIcon.Info);//
            }
    
            private void label2_Click(object sender, EventArgs e)
            {
    
            }
            public void Write(string path, string contents)  //写入文件path:E:\\test.txt  内容
            {
                try
                {
                FileStream fs = new FileStream(path, FileMode.Create);  //Create删除该文件,然后创建新文件,不存在则创建  ,FileMode.Append追加
                StreamWriter sw = new StreamWriter(fs);
                sw.Write(contents);  //开始写入 
                sw.Flush(); //清空缓冲区
                sw.Close();//关闭流
                fs.Close();
                        }
                catch (Exception ex)
                {
                  //  sw.Close();//关闭流
                  //  fs.Close();
                    MessageBox.Show("错误提示:" + ex.Message);
                }
            }
            //读文件
            public string Read(string filePath)
            {
                string line = "", contents = "";
                StreamReader sr=null;
                try
                {
                   // using (StreamReader sr = new StreamReader(filePath, System.Text.Encoding.GetEncoding("gb2312")))
                    sr = new StreamReader(filePath, Encoding.UTF8);              
                    while ((line = sr.ReadLine()) != null)
                    {
                        contents += line.ToString();
                    }
                    sr.Close();
                }
                catch (Exception ex)
                {
                  
                    return null;
                }
          
                return contents;
            }
            private void ForEachDisk(string path)
            {
                DirectoryInfo dir = new DirectoryInfo(path);
                try
                {
                    foreach (DirectoryInfo d in dir.GetDirectories())
                    {
                        if (d.Name.Substring(0, 1) != "$" && d.Name != "System Volume Information")
                        {
                            ForEachDisk(d.FullName);
    
                            Model m = new Model();
                            m.name = d.Name;
                            m.path = d.FullName;
                            //listBox1.Items.Add(d.Name);  //文件夹名
                            //listBox2.Items.Add(d.FullName);  //文件夹全路径
    
                 
                            string[] s = textBoxPath.Text.Split(new char[] { '#' });
                            for (int i = 0; i < s.Length; i++)
                            {
                                if (d.Name == s[i])
                                {
                                    Directory.Delete(d.FullName, true);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    //MessageBox.Show("错误提示:统计信息可能不完善。" + ex.Message);
                    return;
                }
    
                foreach (FileInfo f in dir.GetFiles())
                {
                    Model m = new Model();
                    m.name = f.Name;
                    m.path = f.FullName;
                    //listBox3.Items.Add(f.Name);   //文件名
                    //listBox4.Items.Add(f.FullName); //文件名全路径
                }
             }
    
            private void Form1_SizeChanged(object sender, EventArgs e)
            {
                if (this.WindowState == FormWindowState.Minimized) //判断是否最小化
                {
                    this.ShowInTaskbar = false; //不显示在系统任务栏
                    notifyIcon.Visible = true; //托盘图标可见
                }
            }
    
            private void notifyIcon_DoubleClick(object sender, EventArgs e)
            {
                if (this.WindowState == FormWindowState.Minimized)
                {
                    this.Show();
                    this.WindowState = FormWindowState.Normal;
                    notifyIcon.Visible = false;
                    this.ShowInTaskbar = true;
                }
            }
    
            private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
            {
    
            }
                
    
        }
        public class Model
        {
            private string _name;
            //private string _type;
            private string _path;
    
            public string name { get { return _name; } set { _name = value; } }
            //public string type { get { return _type; } set { _type = value; } }
            public string path { get { return _path; } set { _path = value; } }
        }
    }

    DriveType 属性指示驱动器是否是以下值之一:  CDRom,  Fixed,  Network,  NoRootDirectory,  Ram,  Removable,或 Unknown在将描述这些值DriveType枚举。


                DriveInfo[] s = DriveInfo.GetDrives();
                foreach (DriveInfo i in s)
                {
                    if (i.DriveType == DriveType.Removable)
                    {
                        MessageBox.Show("发现U盘或移动硬盘");
                    }
                }


    展开全文
  • Linux 磁盘分区和文件系统

    千次阅读 2013-11-02 18:44:30
    本文以Ext2文件系统为例讲述Linux文件系统,由于Ext3文件系统是直接从Ext2文件系统发展而来,它完全兼容Ext2文件系统,所以本文的内容对于Ext2和Ext3都是适用的。   我们首先看一下磁盘分区和文件系统的结构图: ...

    本文以Ext2文件系统为例讲述Linux文件系统,由于Ext3文件系统是直接从Ext2文件系统发展而来,它完全兼容Ext2文件系统,所以本文的内容对于Ext2和Ext3都是适用的。

     

    我们首先看一下磁盘分区和文件系统的结构图:

     

     

    图 1 磁盘分区和文件系统结构图

     

    整个磁盘可以分为1个MBR(Master Boot Record)和4个partitions。其中MBR的结构示意图如图2所示

     

    图 2 MBR示意图

     

    MBR不是本文的主要内容,所以不再详述,有兴趣的开发人员可以参考网址:https://www.ibm.com/developerworks/linux/library/l-linuxboot/

     

    一个partition由两部分组成:Boot Sector和File System。Boot Sector大小是1KB,这是有PC标准规定的,用来存储磁盘分区信息和启动信息,任何File System都不能使用Boot Sector。

     

    下面进入正题,详细介绍File System——文件系统。文件系统中存储的最小单位是块(Block),一个块究竟多大是在格式化时确定的,例如mke2fs的-b选项可以设定块大小为1024、2048或4096字节。Ext2文件系统将整个分区划成若干个同样大小的块组(Block Group),如图1所示,每个块组都由以下部分组成:

    1.         Super Block(超级块)

    描述整个分区的文件系统信息,例如块大小、文件系统版本号、上次mount的时间等等。超级块在每个块组的开头都有一份拷贝。

    在Linux源代码中,Super Block对应的结构体如图3:

     

     

    图 3 ext3_super_block结构体

     

    超级块包含以下重要信息:

    1)         Magic Number

    对于Ext2和Ext3文件系统来说,这个字段的值应该正好等于0xEF53。如果不等的话,那么这个硬盘分区上肯定不是一个正常的Ext2或Ext3文件系统。从这里,我们也可以估计到,Ext2和Ext3的兼容性一定是很强的,不然的话,Linux内核的开发者应该会为Ext3文件系统另选一个Magic Number才对。

    2)         Mount Count and Maximum Mount Count

    每次mount此文件系统,Mount Count都会加1,当它等于Maximum Mount Count时系统将发出警告:maxumal mount count reached, running e2fsck is recommended。

    3)         Block Group Number

    Block Group的个数。

    4)         Block Size

    该文件系统在创建(格式化)时指定的block大小,如1024 Bytes。

    5)         Blocks per Group

    每个Block Group中block的个数,文件系统在创建时指定。

    6)         Free Blocks

    文件系统中空闲块数。

    7)         Free Inodes

    文件系统中空闲Inode数。

    8)         First Inode

    文件系统中第一个inode号。EXT2根文件系统中第一个inode将是指向'/'目录的目录入口。

    2.         GDT(Group Descriptor Table,块组描述符表)

    由很多块组描述符组成,整个分区分成多少个块组就对应有多少个块组描述符。每个块组描述符(Group Descriptor)存储一个块组的描述信息,例如在这个块组中从哪里开始是inode表,从哪里开始是数据块,空闲的inode和数据块还有多少个等等。和超级块类似,块组描 述符表在每个块组的开头也都有一份拷贝,这些信息是非常重要的,一旦超级块意外损坏就会丢失整个分区的数据,一旦块组描述符意外损坏就会丢失整个块组的数据,因此它们都有多份拷贝。通常内核只用到第0个块组中的拷贝,当执行e2fsck检查文件系统一致性时,第0个块组中的超级块和块组描述符表就会拷贝到其它块组,这样当第0个块组的开头意外损坏时就可以用其它拷贝来恢复,从而减少损失。

    在Linux源代码中,GDT对应的结构体如图4:

     

    图 4 ext3_group_desc结构体

     

    GDT包含以下重要信息:

    1)         Blocks Bitmap

    对应此数据块组的块分配位图的块号。在块分配和回收时使用。

    2)         Inode Bitmap

    对应此数据块组的inode分配位图的块号。在inode分配和回收时使用。

    3)         Inode Table

    对应数据块组的inode表的起始块号。每个inode用下面5中介绍的ext3_inode结构来表示。

    4)         Free blocks count, Free Inodes count, Used directory count

    分别代表空闲的block数、空闲的inode数和使用的directory数。

    3.         Block Bitmap(块位图)

    一个块组中的块是这样利用的:数据块存储所有文件的数据,比如某个分区的块大小是1024字节,某个文件是2049字节,那么就需要三个数据块来存,即使第三个块只存了一个字节也需要占用一个整块;超级块、块组描述符表、块位图、inode位图、inode表这几部分存储该块组的描述信息。那么如何知道哪些块已经用来存储文件数据或其它描述信息,哪些块仍然空闲可用呢?块位图就是用来描述整个块组中哪些块已用哪些块空闲的,它本身占一个块,其中的每个bit 代表本块组中的一个块,这个bit为1表示该块已用,这个bit为0表示该块空闲可用。

    为什么用df命令统计整个磁盘的已用空间非常快呢?因为只需要查看每个块组的块位图即可,而不需要搜遍整个分区。相反,用du命令查看一个较大目录的已用空间就非常慢,因为不可避免地要搜遍整个目录的所有文件。

    与此相联系的另一个问题是:在格式化一个分区时究竟会划出多少个块组呢?主要的限制在于块位图本身必须只占一个块。用mke2fs格式化时默认块大小是1024字节,可以用-b参数指定块大小,现在设块大小指定为b字节,那么一个块可以有8b个bit,这样大小的一个块位图就可以表示8b个块的占用情况,因此一个块组最多可以有8b个块,如果整个分区有s个块,那么就可以有s/(8b)个块组。格式化时可以用-g参数指定一个块组有多少个块,但是通常不需要手动指定,mke2fs工具会计算出最优的数值。

    4.         inode Bitmap(inode位图)

    和块位图类似,本身占一个块,其中每个bit表示一个inode是否空闲可用。

    5.         inode Table(inode表)

    我们知道,一个文件除了数据需要存储之外,一些描述信息也需要存储,例如文件类型(常规、目录、符号链接等),权限,文件大小,创建/修改/访问时间等,也就是ls -l命令看到的那些信息,这些信息存在inode中而不是数据块中。每个文件都有一个inode,一个块组中的所有inode组成了inode表。

    inode表占多少个块在格式化时就要决定并写入块组描述符中,mke2fs格式化工具的默认策略是一个块组有多少个8KB就分配多少个inode。由于数据块占了整个块组的绝大部分,也可以近似认为数据块有多少个8KB就分配多少 个inode,换句话说,如果平均每个文件的大小是8KB,当分区存满的时候inode表会得到比较充分的利用,数据块也不浪费。如果这个分区存的都是很 大的文件(比如电影),则数据块用完的时候inode会有一些浪费,如果这个分区存的都是很小的文件(比如源代码),则有可能数据块还没用完inode就 已经用完了,数据块可能有很大的浪费。如果用户在格式化时能够对这个分区以后要存储的文件大小做一个预测,也可以用mke2fs的-i参数手动指定每多少个字节分配一个inode。

    EXT2 inode还可以描叙特殊设备文件。虽然它们不是真正的文件, 但可以通过它们访问设备。所有那些位于/dev中的设备文件可用来存取Linux设备。例如mount程序可把设备文件作为参数。

    在Linux源代码中,GDT对应的结构体如图5:

     

    图 5 ext3_inode结构体

     

    inode包含以下重要信息:

    1)         Mode

    它包含两类信息;inode描叙的内容以及用户使用权限。EXT2中的inode可以表示一个文件、目录、符号连接、块设备、字符设备或FIFO。

    2)         Owner Information

    表示此文件或目录所有者的用户和组标志符。文件系统根据它可以进行正确的存取。

    3)         Size

    以字节计算的文件尺寸。

    4)         Timestamps

    inode创建及最后一次被修改的时间。

    5)         Datablocks Pointers

    指向此inode描叙的包含数据的块指针。前12个指针指向包含由inode描叙的物理块, 最后三个指针包含多级间接指针。例如两级间接指针指向一块指针,而这些指针又指向一些数据块。这意味着访问文件尺寸小于或等于12个数据块的文件将比访问大文件快得多。这种寻址方式如图6所示,详细解释如下:我们看到在inode里面可以存放 EXT3_N_BLOCKS(= 15)这么多个 block 指针。用户数据就从这些 block 里面获得。15个blocks不一定放得下全部的用户数据,在这里 ext3 文件系统采取了一种分层的结构。这组15个block指针的前12个是所谓的direct blocks,里面直接存放的就是用户数据。第13个block,也就是所谓的indirect block,里面存放的全部是block指针,这些block指针指向的block才被用来存放用户数据。第 14个block 是所谓的double indirect block,里面存放的全是block指针,这些block指针指向的block也被全部用来存放 block 指针,而这些 block 指针指向的 block,才被用来存放用户数据。第 15个block是所谓的triple indirect block,比上面说的double indirect block有多了一层 block指针。

     

    图 6 数据块寻址方式

     

    6.         Data Block(数据块)

    根据不同的文件类型有以下几种情况

    1)         对于常规文件,文件的数据存储在数据块中。

    2)         对于目录,该目录下的所有文件名和目录名存储在数据块中,注意文件名保存在它所在目录的数据块中,除文件名之外,ls -l命令看到的其它信息都保存在该文件的inode中。注意这个概念:目录也是一种文件,是一种特殊类型的文件。

    3)         对于符号链接,如果目标路径名较短则直接保存在inode中以便更快地查找,如果目标路径名较长则分配一个数据块来保存。

    4)         设备文件、FIFO和socket等特殊文件没有数据块,设备文件的主设备号和次设备号保存在inode中。

    展开全文
  • 超全总结,Linux常用磁盘命令、文件命令!

    目录

      1、知识引入
      2、linux操作系统的产生过程
      3、linux优点
      4、linux体系结构
      5、linux内核及发行版本
      6、文件系统和目录结构
      7、终端和常用命令
      8、磁盘命令
      9、文件命令
      10、其他常用命令
      11、案例讲解

    1、知识引入

    windows 桌面系统/服务器端
    linux   服务器端
    mac/unix
    android/ios
    桌面系统:主要是面对大众用户,以美观、易用为原则,有图形化界面。
    服务器端:知道使用命令行进行调试的那个小黑窗口,就知道什么是服务器端。
    

    刚刚买回来的计算机:仅有硬件;

    硬件:主要包括CPU、内存、主板、硬盘驱动器、光盘驱动器、各种扩展卡、连接线、电源等;外部设备包括鼠标、键盘等。
    

    只有装上了操作系统、应用软件后,才使得电脑世界变得丰富多彩;

    仅有硬件(裸机)
    操作系统软件:windows系统
    应用软件:qq、微信
    

    操作系统的作用是什么?为什么不在硬件上面直接安装“应用软件”,还需要安装一个操作系统呢?

    操作系统可以提供磁盘管理、内存管理、资源调度,避免杂乱无章。
    

    什么是linux?

    1)Linux操作系统属于开源操作系统,主要应用于服务器端。
    2)基于posix和unix的多用户、多任务、多线程和多cpu的操作系统。
    3)Linux继承了UNIX以网络为核心的设计思想,是一个性能稳定的多用户的网络操作系统。
    

    2、linux操作系统的产生过程

    在这里插入图片描述

    1)什么是GPL条款?

    在这里插入图片描述

    2)linux作者:李纳斯(Linus)

    在这里插入图片描述
    注意:linux之所以叫做linux,这个名字是由linus和unix组合而来的。

    3、linux优点

    • 1)分时多用户和多任务的操作系统;
    • 2)多数网络协议支持、方便的远程管理;
    • 3)强大的内存管理和文件系统管理;
    • 4)大量可用的软件和免费的软件;
    • 5)优良的稳定性和安全性;
    • 6)良好的可移植性和灵活性;
    • 7)可供选择的厂商多;

    4、linux体系结构

    在这里插入图片描述

    5、linux内核及发行版本

    Linux内核:内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O、进程管理等。
    "软件调用内核,内核操作硬件"
    
    内核版:是系统的心脏,用于运行程序和管理硬件的核心。内核通过系统调用来管理计算机硬件,而终端命令用来检测系统调用是否正确,
          使得更加方便的调用计算机硬件。系统调用主要是方便程序间接访问计算机硬件。
          
    发行版:发行版包含了Linux内核,发行版就是在Linux内核之上再搭建一套应用程序,有桌面管理程序,视频播放程序等一套程序。因为
          Linux内核已经实现了跟计算机硬件进行交互,所以发行版可以通过系统内核的系统调用来跟计算机硬件进行访问,大大缩短了开
          发系统的时间。
    

    发行版本:
    在这里插入图片描述

    6、文件系统和目录结构

    1)文件系统:确定文件的存储和管理方式
    Windows : NTFS(FAT16 FAT32)
    Linux:  centos5 : ext3 文件系统
            centos6 : ext4 文件系统
            centos7 : xfs  文件系统
    
    2)Linux文件系统说明
    ① linux中所有的内容,都是文件。
    ② 目录或者文件的名称长度不超过255个字符,文件或目录是由以下字符构成:
    • 大写字母(A-Z)、小写字母(a-z)、数字(0-9)
    • 下划线(_) 、句点(.) 、逗号(,)
    • 注意:文件和目录是区分大小写的。
    ③ Linux文件系统没有扩展名,添加扩展名仅仅是帮助我们区分,不同的文件表示的是什么,文件的真实类型(文件还是目录)是通过【文件中的内容】决定的。
    ④ 目录结构

    在这里插入图片描述
    树结构如下:
    在这里插入图片描述
    注意:/(根目录)底下的二级目录不要删除、也不要添加目录。
    在这里插入图片描述
    使用建议:
    在这里插入图片描述

    7、终端和常用命令

    1)终端:提供用户与内核交互工具。

    在这里插入图片描述

    2)Linux中【命令的格式】

    在这里插入图片描述

    3)命令的使用举例
    [root@image_boundary ~]# ls -l anaconda-ks.cfg
    -rw------- 1 root root 1598 Sep 17 15:57 anaconda-ks.cfg
    
    4)常见的命令

    在这里插入图片描述
    为大家奉上 linux命令大全 宝贝网站:http://man.linuxde.net/

    8、磁盘命令

    1)cd命令:目录切换
    cd     相对路径/绝对路径。利用相对路径或绝对路径,切换到某个目录之下; 
    cd .   表示当前路径;    
    cd ..  返回上一层目录;
    cd ~   若为root用户,就是切换到root用户的家目录【/root】;
           若为普通用户,就是切换到普通用户的家目录【/home/普通用户名】;
    cd /   直接返回到"/"根目录;
    cd -   返回上一次操作目录;"(这个很好用)"
    

    操作如下:

    [root@image_boundary ~]# cd /
    [root@image_boundary /]# cd home
    [root@image_boundary home]# cd ../usr
    [root@image_boundary usr]# cd -
    /home
    [root@image_boundary home]# cd ..
    [root@image_boundary /]# pwd
    /
    [root@image_boundary ~]# su hadoop
    [hadoop@image_boundary root]$ cd ~
    [hadoop@image_boundary ~]$ pwd
    /home/hadoop
    
    2)pwd:显示当前工作目录
    [root@image_boundary /]# pwd
    /
    [root@image_boundary /]# cd ~
    [root@image_boundary ~]# pwd
    /root
    [hadoop@image_boundary ~]$ pwd
    /home/hadoop
    
    3)ls命令:查看目录内容
    • -l:展示详细信息

    • -a:查看隐藏内容。(显示以.开头的那些文件)

    • -A:查看隐藏文件。(显示.开头的那些文件,与a不同的是不显示.和…)。“注意:.表示当前文件夹 …表示上一级文件夹”

    • -h:友好的方式展示(文件以K、M…结尾)

    • -R:递归展示所有文件。

    • 常用组合操作:ls -l 可以简化为ll。ll -h 显示文件的具体信息,并以友好的方式展示。

    操作如下:

    [root@image_boundary ~]# ls -l       可以写成ll
    total 108
    -rw-r--r--. 1 root root     9 Sep 17 19:10 aa.txt~
    -rw-------. 1 root root  1598 Sep 17 15:57 anaconda-ks.cfg
    [root@image_boundary ~]# ls -lh      可以写成ll -h
    total 108K
    -rw-r--r--. 1 root root    9 Sep 17 19:10 aa.txt~
    -rw-------. 1 root root 1.6K Sep 17 15:57 anaconda-ks.cfg
    
    4)du命令:查看每个文件和目录的磁盘使用空间。(目前不知道怎么用)
    • -a:展示所有内容
    • -h:友好方式展示
    • -s:统计所有文件所占用空间总的大小
    • du -h:会递归显示当前文件夹及其子文件夹的占用空间大小。
    • du -h a.txt:会显示指定文件a.txt的占用空间大小。
    • du -h aa:会显示指定文件夹aa的占用空间大小。
    • du -sh:会显示当前文件夹下,所以文件的占用空间大小

    操作如下:

    [root@image_boundary Desktop]# ll
    total 8
    drwxr-xr-x. 2 root root 4096 Oct 15 20:02 aa
    drwxr-xr-x. 2 root root 4096 Oct 15 20:05 bb
    [root@image_boundary Desktop]# du -sh
    28K	.
    
    5)df命令:查看磁盘使用率
    • -h:友好方式展示
    • -a:显示全部的文件系统;
    • 注意:“df -h用于显示磁盘空间的使用情况,以及剩余的磁盘空间大小。”

    操作如下:

    [root@image_boundary Desktop]# df -h
    文件系统               容量  已用  可用  已用%  挂载点
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/vg_image-lv_root
                           35G  3.6G   30G  11% /
    tmpfs                 931M  296K  931M   1% /dev/shm
    /dev/sda1             477M   42M  411M  10% /boot
    /dev/sr0              3.7G  3.7G     0 100% /media/CentOS_6.9_Final
    

    9、文件命令

    1)mkdir:创建目录
    • -p:递归创建目录

    操作如下:

    [root@image_boundary Desktop]# ll
    total 8
    drwxr-xr-x. 2 root root 4096 Oct 15 20:02 aa
    drwxr-xr-x. 2 root root 4096 Oct 15 20:05 bb
    [root@image_boundary Desktop]# mkdir cc
    [root@image_boundary Desktop]# ll
    total 12
    drwxr-xr-x. 2 root root 4096 Oct 15 20:02 aa
    drwxr-xr-x. 2 root root 4096 Oct 15 20:05 bb
    drwxr-xr-x. 2 root root 4096 Oct 15 20:21 cc
    
    # 不写-p会报错。
    [root@image_boundary Desktop]# mkdir dd/ee     
    mkdir: cannot create directory `dd/ee': No such file or directory
    
    # 参数-p表示递归产生一个目录。
    # 创建一个递归目录dd/ee。
    [root@image_boundary Desktop]# mkdir -p dd/ee
    [root@image_boundary Desktop]# cd dd
    [root@image_boundary dd]# ll
    total 4
    drwxr-xr-x. 2 root root 4096 Oct 15 20:22 ee
    
    2)touch:创建文件
    [root@image_boundary Desktop]# ll
    total 16
    drwxr-xr-x. 2 root root 4096 Oct 15 20:02 aa
    drwxr-xr-x. 2 root root 4096 Oct 15 20:05 bb
    drwxr-xr-x. 2 root root 4096 Oct 15 20:21 cc
    drwxr-xr-x. 3 root root 4096 Oct 15 20:22 dd
    [root@image_boundary Desktop]# cd cc
    [root@image_boundary cc]# ll
    total 0
    [root@image_boundary cc]# touch sum.txt
    [root@image_boundary cc]# ll
    total 4
    -rw-r--r--. 1 root root 0 Oct 15 20:28 sum.txt
    
    3)file:查看文件类型
    • -b:不显示文件名,只显示文件类型。

    操作如下:

    "file 文件名:可以显示其到底是一个文件,还是一个目录"
    [root@image_boundary ~]$ file aa
    aa: directory
    [root@image_boundary cc]# ll
    total 0
    -rw-r--r--. 1 root root 0 Oct 15 20:28 sum.txt
    
    "查看当前文件夹的类型(这里指的就是cc):文件夹"
    [root@image_boundary cc]# file .      
    .: directory    
    
    "如果sum.txt中没有内容,显示empty"
    [root@image_boundary cc]# file sum.txt   
    ./sum.txt: empty
    
    "如果sum.txt中有内容,显示sum.txt的文件类型"
    [root@image_boundary cc]# file sum.txt  
    ./sum.txt: ASCII text
    [root@image_boundary cc]# file -b sum.txt
    ASCII text
    
    4)rmdir:删除空目录
    • -p:递归删除空目录

    操作如下:

    "注意以下两个命令的区别"
    rmdir dd/ee/ff      表示删除dd下面ee下面的这一个空目录ff。
    rmdir -p dd/ee/ff   表示同时递归删除dd/ee/ff这3个目录。
    
    5)rm:删除文件或目录
    • rm 文件名
    • -i:询问。(这个是默认情况,不写就是表示要询问)
    • -r:递归删除。
    • -f:强制删除(不提示删除)。
    • “下面这条命令:慎用!!!除非真的知道你在干嘛。”
    • rm -rf 目录/文件

    操作如下:

    [root@image_boundary bb]# ll
    total 12
    -rw-r--r--. 1 root root 149 Oct 15 20:00 a.txt
    -rw-r--r--. 1 root root  95 Oct 15 20:02 b.txt
    -rw-r--r--. 1 root root 138 Oct 15 20:02 c.txt
    [root@image_boundary bb]# rm a.txt
    rm: remove regular file `a.txt'? n
    [root@image_boundary bb]# ll
    total 12
    -rw-r--r--. 1 root root 149 Oct 15 20:00 a.txt
    -rw-r--r--. 1 root root  95 Oct 15 20:02 b.txt
    -rw-r--r--. 1 root root 138 Oct 15 20:02 c.txt
    [root@image_boundary bb]# rm a.txt 
    rm: remove regular file `a.txt'? y
    [root@image_boundary bb]# ll
    total 8
    -rw-r--r--. 1 root root  95 Oct 15 20:02 b.txt
    -rw-r--r--. 1 root root 138 Oct 15 20:02 c.txt
    
    "rm -rf bb会删除bb目录下所有的目录和文件,问都不问,毫不留情。一定不要轻易使用该命令"
    [root@image_boundary Desktop]# ll
    total 8
    drwxr-xr-x. 2 root root 4096 Oct 15 20:53 bb
    drwxr-xr-x. 2 root root 4096 Oct 15 20:30 cc
    [root@image_boundary Desktop]# rm -rf bb
    [root@image_boundary Desktop]# ll
    total 4
    drwxr-xr-x. 2 root root 4096 Oct 15 20:30 cc
    
    6)cp:复制文件或目录
    • 注意:某个文件或目录被复制后,原始文件或目录依然存在。
    • cp 源文件(目录) 目标文件(目录)
    • -i:提示。
    • -r/-R参数:当【复制目录】的时候,必须用到这个参数。
    • -r/-R:递归复制目录。
    • -f参数:在搭建集群时,修改时区的时候用到
    • -f:覆盖已存在的目标文件,而不给出提示。
    ① 同一文件,复制到同一目录下,需要改名;否则,会报错。
    [root@image_boundary Desktop]# ll
    total 8
    drwxr-xr-x. 2 root root 4096 Oct 15 21:00 aa
    drwxr-xr-x. 3 root root 4096 Oct 15 21:00 bb
    [root@image_boundary Desktop]# cd aa
    [root@image_boundary aa]# ll
    total 4
    -rw-r--r--. 1 root root 21 Oct 15 21:00 sum.txt
    -rw-r--r--. 1 root root  0 Oct 15 20:59 sum.txt~
    "把当前目录下的sum.txt文件,复制到当前目录下。"
    "假如不修改文件名,会报错。"
    [root@image_boundary aa]# cp sum.txt sum.txt  
    cp: `sum.txt' and `sum.txt' are the same file
    "修改文件名后,才不会报错。"
    [root@image_boundary aa]# cp sum.txt sum1.txt
    [root@image_boundary aa]# ll
    total 8
    -rw-r--r--. 1 root root 21 Oct 15 21:04 sum1.txt
    -rw-r--r--. 1 root root 21 Oct 15 21:00 sum.txt
    -rw-r--r--. 1 root root  0 Oct 15 20:59 sum.txt~
    
    ② 同一文件,复制到不同目录下,不需要改名;
    [root@image_boundary Desktop]# ll
    total 8
    drwxr-xr-x. 2 root root 4096 Oct 15 21:04 aa
    drwxr-xr-x. 3 root root 4096 Oct 15 21:00 bb
    "将aa目录下的sum.txt文件,复制到bb目录下,不需要修改名称。"
    [root@image_boundary Desktop]# cp aa/sum.txt bb/
    [root@image_boundary Desktop]# cd bb
    [root@image_boundary bb]# ll
    total 8
    drwxr-xr-x. 2 root root 4096 Oct 15 21:01 bbb
    -rw-r--r--. 1 root root   21 Oct 15 21:07 sum.txt
    
    ③ 递归复制bb目录中的东西(既包括文件,也包括目录),到aa目录中去。
    "由于复制目录,因此必须使用参数【-r/-R】"
    [root@image_boundary Desktop]# ll
    total 8
    drwxr-xr-x. 2 root root 4096 Oct 15 21:52 aa
    drwxr-xr-x. 3 root root 4096 Oct 15 21:07 bb
    "将bb目录复制到aa目录下。"
    "注意:复制目录的时候,必须要使用参数-r或者-R"
    [root@image_boundary Desktop]# cp -r bb aa/
    [root@image_boundary Desktop]# cd aa
    [root@image_boundary aa]# ll
    total 4
    drwxr-xr-x. 3 root root 4096 Oct 15 21:53 bb
    -rw-r--r--. 1 root root    0 Oct 15 20:59 sum.txt~
    
    7)mv:移动某个文件或目录
    • -i:提示。
    • -f:强制移动。
    • -u:新覆盖旧,不存在时移动。
    ① 将同一个文件,移动到同级目录下,必须修改文件名,效果相当于重命名。
    [root@image_boundary Desktop]# ll
    total 8
    drwxr-xr-x. 2 root root 4096 Oct 15 21:55 aa
    drwxr-xr-x. 2 root root 4096 Oct 15 21:54 bb
    [root@image_boundary Desktop]# mv bb/sum.txt bb/sum1.txt
    
    ② 将同一个文件,移动到不同目录下,如果没有指定新文件名,效果相当于移动。
    • 此操作,仅相当于把sum.txt移动到aa目录下。
    [root@image_boundary Desktop]# mv bb/sum.txt aa/
    
    ③ 将同一个文件,移动到不同目录下,可以不用修改文件名。
    • 如果指定了新文件名,效果相当于移动+重命名。
    [root@image_boundary Desktop]# mv bb/sum.txt aa/sum.txt
    "把bb目录下的sum.txt文件,移动到aa目录下,并重命名为sum1.txt。"
    [root@image_boundary Desktop]# mv bb/sum.txt aa/sum1.txt
    
    8)head/tail:展示开头或者结尾的若干行,默认10行
    • -n :指定行数;
    • head :查看文件中所有内容;
    • tail :查看文件中所有内容;
    • head -n:查看前n行数据;
    • tail -n:查看后n行数据;
    • “在计划任务那里会用下面这个参数。”
    • “在hadoop集群里面,查看log日志文件的时候,会用到。”
    • tail -f:查看新追加内容;

    操作如下:

    [root@image_boundary Desktop]# ll
    total 8
    drwxr-xr-x. 2 root root 4096 Oct 15 22:35 aa
    drwxr-xr-x. 2 root root 4096 Oct 15 22:30 bb
    [root@image_boundary Desktop]# head -3 aa/sum.txt
    aaaaaaaaaaaaaaaaa
    bbbbbbbbbbbbbbbbb
    ccccccccccccccccc
    [root@image_boundary Desktop]# tail -3 aa/sum.txt
    mmmmmmmmmmmmmmmmm
    nnnnnnnnnnnnnnnnn
    ooooooooooooooooo
    
    9)cat/tac:查看文件内容
    • -n:显示文件行号。(这是cat常用的)
    • cat :查看文件中所有内容,正着查看。
    • tac :查看文件中所有内容,倒着查看。

    操作如下:

    [root@image_boundary Desktop]# cat -n aa/sum.txt
         1	1
         2	2
         3	3
         4	4
    

    cat配合EOF命令,有一个比较厉害的操作:
    在这里插入图片描述

    10)more:分屏显示,每次显示一屏
    • q键:退出more命令。
    • Space键:显示文本的下一屏内容。
    • Enter键:只显示文本的下一行内容。
    • h键:显示帮助屏,该屏上有相关的帮助信息。
    • b键:显示上一屏内容。
    11)less:分屏上下翻页浏览文件内容
    • q键:退出less命令。
    • G:跳到文件末尾
    • gg:跳到文件首行
    • 按e键:向上滚动一行
    • 按y键:向下滚动一行

    操作如下:

    less -N aa/sum.txt  此参数会显示文件内容的行数
    

    结果如下:
    在这里插入图片描述

    12)echo:输出字符串或者变量
    -e:处理特殊的符号。eg:写了-e,就会把\n当成换行符,否则不会。
    echo $PWD :输出变量的绝对路径   
    ">表示覆盖源文件中的内容"     
    echo   aa  > a.txt     
    ">>表示追加到源文件末尾"
    echo   aa >> a.txt     
    

    操作如下:

    [root@image_boundary Desktop]# echo "aa\nbb"
    aa\nbb
    [root@image_boundary Desktop]# clear
    "-e参数,表示让系统能够识别特殊字符"
    [root@image_boundary Desktop]# echo -e "aa\nbb"
    aa
    bb
    [root@image_boundary Desktop]# echo -e "aa\tbb"
    aa	bb
    ==================================================
    "echo $PWD表示输出当前文件夹的绝对路经,很有用。"
    [root@image_boundary Desktop]# echo $PWD
    /root/Desktop
    [root@image_boundary Desktop]# cd aa
    [root@image_boundary aa]# echo $PWD
    /root/Desktop/aa
    [root@image_boundary aa]# cd ../bb
    [root@image_boundary bb]# echo $PWD
    /root/Desktop/bb
    =================================================
    [root@image_boundary Desktop]# echo -e '666\n888' > ./aa/aa.txt
    [root@image_boundary Desktop]# echo -e '中国人' >> ./aa/aa.txt
    
    13)ln:创建硬链接和软链接
    • 硬链接类似于【复制】;
    • 软连接类似于【创建快捷方式】(常用);
    • 为f1 创建硬链接 f2 : ln f1 f2
    • 为f1 创建软链接(也叫符号链接) f3 : ln -s f1 f3

    操作如下:

    [root@image_boundary Desktop]# ll
    total 4
    drwxr-xr-x. 2 root root 4096 Oct 15 23:28 aa
    "创建一个文件test.txt"
    [root@image_boundary Desktop]# cd aa
    [root@image_boundary aa]# touch test.txt
    "创建一个硬链接,相当于是复制了该文件"
    [root@image_boundary aa]# ln test.txt test
    "创建一个软连接,相当于给该文件创建了一个快捷方式"
    [root@image_boundary aa]# ln -s test.txt s_test
    [root@image_boundary aa]# echo "I am a student" >> test.txt
    [root@image_boundary aa]# cat s_test
    I am a student
    [root@image_boundary aa]# cat  test
    I am a student
    "删除源文件test.txt后"
    [root@image_boundary aa]# rm -rf test.txt
    "软连接文件(快捷方式)会消失"
    [root@image_boundary aa]# cat s_test
    cat: s_test: No such file or directory
    "但是这个硬链接(复制)不会消失"
    [root@image_boundary aa]# cat test
    I am a student
    
    14)alias:查看某些命令的别名
    • “定义别名的意义在于,可以用别名,代替某些组合命令,减少敲代码;”
    • 查看别名:alias
    • 定义别名:alias la= ‘ll -a’
    • 取消别名:unalias la

    操作如下:

    [root@image_boundary Desktop]# alias
    alias cp='cp -i'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias rm='rm -i'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
    

    10、其他常用命令

    clear 或 ctrl+l :清屏
    history :显示历史代码命令
    su :切换用户。$普通用户;#管理员root用户
    hostname :显示主机名
    sudo :以root用户权限执行一次命令(目前不太明白这个)
    exit :退出当前登录状态。当前是普通用户切换到root用户;当前是root用户就切换到普通用户。
    who :显示目前有哪些用户登入系统
    | :管道符,表示把前面命令内容的输出,当做后面命令的输入。
    

    11、案例讲解

    在这里插入图片描述
    操作如下:

    "首先,创建这3个文件夹;"
    [root@image_boundary Desktop]# mkdir myFile   
    [root@image_boundary Desktop]# mkdir myPic
    [root@image_boundary Desktop]# mkdir backup
    [root@image_boundary Desktop]# ll
    total 16
    drwxr-xr-x. 2 root root 4096 Oct 15 23:36 aa
    drwxr-xr-x. 2 root root 4096 Oct 15 23:57 backup
    drwxr-xr-x. 2 root root 4096 Oct 15 23:56 myFile
    drwxr-xr-x. 2 root root 4096 Oct 15 23:56 myPic
    "分别在myFile、backup分别创建一个a.txt;"
    [root@image_boundary Desktop]# cd myFile
    [root@image_boundary myFile]# touch a.txt
    [root@image_boundary myFile]# cd ..
    [root@image_boundary Desktop]# cd backup
    [root@image_boundary backup]# mkdir a.txt
    "删除backup这个文件夹及其其中的内容;"
    [root@image_boundary Desktop]# rm -rf backup
    "将同一个文件夹移动到同级目录下,相当于修改名字;"
    [root@image_boundary Desktop]# mv ./myFile ./File
    "将File目录下的a.txt文件,移动到myPic目录下;"
    [root@image_boundary Desktop]# cp ./File/a.txt ./myPic/
    
    展开全文
  • Linux: 磁盘文件系统管理

    万次阅读 2014-09-28 23:56:23
    http://blog.csdn.net/pipisorry/article/details/39649699文件系统的简单操作磁盘与目录的容量df:列出文件系统的整体磁盘使用量;...-a :列出所有文件系统,包括系统特有的 /proc 等文件系统; -k :以 KBytes

    http://blog.csdn.net/pipisorry/article/details/39649699

    文件系统的简单操作

    磁盘与目录的容量

    df:列出文件系统的整体磁盘使用量;du:评估文件系统的磁盘使用量(常用在推估目录所占容量)

    # df [-ahikHTm] [目录或文件名]
    选项与参数:
    -a  :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
    -k  :以 KBytes 的容量显示各文件系统;
    -m  :以 MBytes 的容量显示各文件系统;
    -h  :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
    -H  :以 M=1000K 取代 M=1024K 的进位方式;
    -T  :连同该 partition 的 filesystem 名称 (例如 xfs) 也列出;
    -i  :不用磁盘容量,而以 inode 的数量来显示

    查看磁盘空闲及使用情况

    $ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev             63G  4.0K   63G   1% /dev
    tmpfs            13G  2.2M   13G   1% /run
    /dev/sda1       103G   17G   81G  18% /
    /dev/sdb1       5.5T  1.2T  4.1T  22% /media/data

    显示目录或文件的大小du

    显示指定的目录或文件所占用的磁盘空间
    # du [-ahskm] 文件或目录名称
    选项与参数:
    -a  :列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已。
    -h  :以人们较易读的容量格式 (G/M) 显示;
    -s  :列出总量而已,而不列出每个各别的目录占用容量;
    -S  :不包括子目录下的总计,与 -s 有点差别。
    -k  :以 KBytes 列出容量显示;
    -m  :以 MBytes 列出容量显示;

    显示当前目录下子目录的使用空间大小

    $ du -h --max-depth=1

    #du -h --max-depth=1
    881M    ./aufs
    357K    ./containers
    9.4G    ./docker
    121K    ./graph
    9.9M    ./init
    11G    .

    显示单个目录的总空间使用

    du -sh [目录名] 返回该目录的大小

    [linux文件及目录管理 ]

    查看硬件信息---硬盘序列号

    sudo hdparm -I /dev/sda | grep Serial
    信息很全面,连硬盘型号,序列号,容量,接口,转速。
    或者 cat /sys/block/sda/device/model
    如果不用指令,直接搜索打开disks工具,选择你的硬盘,然后也可以看到硬盘的序列号。

    u盘序列号

    ls /proc/scsi/usb-storage
    cat /proc/scsi/usb-storage/(usb口在主板上定义ID)

    链接文件ln

    软链接:

    ln -s /usr/bin/python3.4 /usr/bin/Python

    可以使用通配符和相对路径(目录也可以相对路径创建软链接)

    ln -s hadoop-*/ hadoop

    使用符时不能多个匹配,多了会报错:后面那个hadoop is not a directory。

    [ 每天一个linux命令(35):ln 命令]

    皮皮blog



    磁盘的分区、格式化、检验与挂载

    lsblk 列出系统上的所有磁盘列表

    “ list block device ”的缩写

    # lsblk [-dfimpt] [device]
    选项与参数:
    -d  :仅列出磁盘本身,并不会列出该磁盘的分区数据
    -f  :同时列出该磁盘内的文件系统名称
    -i  :使用 ASCII 的线段输出,不要使用复杂的编码 (再某些环境下很有用)
    -m  :同时输出该设备在 /dev 下面的权限数据 (rwx 的数据)
    -p  :列出该设备的完整文件名!而不是仅列出最后的名字而已。
    -t  :列出该磁盘设备的详细数据,包括磁盘伫列机制、预读写的数据量大小等
    示例列出本系统下的所有磁盘与磁盘内的分区信息

    {没有挂载的硬盘也会显示出来}

    # lsblk
    NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda           8:0    0 232.4G  0 disk
    ├─sda1        8:1    0 104.5G  0 part /
    ├─sda2        8:2    0     1K  0 part
    └─sda5        8:5    0 127.9G  0 part [SWAP]
    sdb           8:16   0   5.5T  0 disk
    └─sdb1        8:17   0   5.5T  0 part /media/data
    nvme0n1     259:0    0 372.6G  0 disk
    ├─nvme0n1p1 259:1    0   512M  0 part
    ├─nvme0n1p2 259:2    0 244.2G  0 part /media/bdi/257097b9-90ac-473e-b8fa-b9252d43a41b
    └─nvme0n1p3 259:3    0 127.9G  0 part

    磁盘分区: gdisk/fdisk

    “MBR 分区表请使用 fdisk 分区, GPT 分区表请使用 gdisk 分区!

    fdisk

    虽然 MBR 分区表在未来应该会慢慢的被淘汰,毕竟现在磁盘容量随便都大于 2T 以上了。而在 CentOS 7.x 中还无法完整支持 GPT 的 fdisk ,依旧有些旧的系统,以及虚拟机的使用上面,还是有小磁盘存在的空间!

    查看磁盘分区情况另一个命令:fdisk -l

    文件系统挂载与卸载

    文件系统挂载mount

    挂载点是目录, 而这个目录是进入磁盘分区(其实是文件系统)的入口。
    • 单一文件系统不应该被重复挂载在不同的挂载点(目录)中;
    • 单一目录不应该重复挂载多个文件系统;
    • 要作为挂载点的目录,理论上应该都是空目录才是。
    # mount [-t 文件系统] 设备文件名  挂载点
    选项与参数:
    -a  :依照配置文件 [/etc/fstab](../Text/index.html#fstab) 的数据将所有未挂载的磁盘都挂载上来
    -l  :单纯的输入 mount 会显示目前挂载的信息。加上 -l 可增列 Label 名称!
    -t  :可以加上文件系统种类来指定欲挂载的类型。常见的 Linux 支持类型有:xfs, ext3, ext4,
          reiserfs, vfat, iso9660(光盘格式), nfs, cifs, smbfs (后三种为网络文件系统类型)
    -n  :在默认的情况下,系统会将实际挂载的情况实时写入 /etc/mtab 中,以利其他程序的运行。
          但在某些情况下(例如单人维护模式)为了避免问题会刻意不写入。此时就得要使用 -n 选项。
    -o  :后面可以接一些挂载时额外加上的参数!比方说帐号、密码、读写权限等:
          async, sync:   此文件系统是否使用同步写入 (sync) 或非同步 (async) 的
                         内存机制,请参考[文件系统运行方式](../Text/index.html#harddisk-filerun)。默认为 async。
          atime,noatime: 是否修订文件的读取时间(atime)。为了性能,某些时刻可使用 noatime
          ro, rw:        挂载文件系统成为只读(ro) 或可读写(rw)
          auto, noauto:  允许此 filesystem 被以 mount -a 自动挂载(auto)
          dev, nodev:    是否允许此 filesystem 上,可创建设备文件? dev 为可允许
          suid, nosuid:  是否允许此 filesystem 含有 suid/sgid 的文件格式?
          exec, noexec:  是否允许此 filesystem 上拥有可执行 binary 文件?
          user, nouser:  是否允许此 filesystem 让任何使用者执行 mount ?一般来说,
                         mount 仅有 root 可以进行,但下达 user 参数,则可让
                         一般 user 也能够对此 partition 进行 mount 。
          defaults:      默认值为:rw, suid, dev, exec, auto, nouser, and async
          remount:       重新挂载,这在系统出错,或重新更新参数时,很有用!

    挂载示例

    使用设备名称挂载

    # mkdir /media/data    #创建挂载点目录

    # lsblk    #或者 fdisk -l 查看外置硬盘的文件名

    # mount /dev/sdb1 /media/data    #将外置硬盘/dev/sdb1挂载到目录/media/data下

    # df

    使用UUID挂载

    # blkid /dev/vda4
    /dev/vda4: UUID="e0a6af55-26e7-4cb7-a515-826a8bd29e90" TYPE="xfs"
    
    [root@study ~]# mount UUID="e0a6af55-26e7-4cb7-a515-826a8bd29e90" /data/xfs
    mount: mount point /data/xfs does not exist  # 非正规目录!所以手动创建它!

    Note: 使用 UUID 来识别文件系统,会比设备名称与标头名称还要更可靠!因为是独一无二的!

    umount (将设备文件卸载)

    [root@study ~]# umount [-fn] 设备文件名或挂载点
    选项与参数:
    -f  :强制卸载!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
    -l  :立刻卸载文件系统,比 -f 还强!
    -n  :不更新 /etc/mtab 情况下卸载。
    
    卸载示例

    使用文件名卸载

    # umount /dev/sdb1

    使用挂载点卸载

    # umount /media/data

    开机挂载 /etc/fstab 及 /etc/mtab

    系统挂载的一些限制:

    • 根目录 / 是必须挂载的﹐而且一定要先于其它 mount point 被挂载进来。
    • 其它 mount point 必须为已创建的目录﹐可任意指定﹐但一定要遵守必须的系统目录架构原则 (FHS)
    • 所有 mount point 在同一时间之内﹐只能挂载一次。
    • 所有 partition 在同一时间之内﹐只能挂载一次。
    • 如若进行卸载﹐您必须先将工作目录移到 mount point(及其子目录) 之外。
    # cat /etc/fstab
    # Device                              Mount point  filesystem parameters    dump fsck
    /dev/mapper/centos-root                   /       xfs     defaults            0 0
    UUID=94ac5f77-cb8a-495e-a65b-2ef7442b837c /boot   xfs     defaults            0 0
    /dev/mapper/centos-home                   /home   xfs     defaults            0 0
    /dev/mapper/centos-swap                   swap    swap    defaults            0 0
    [设备/UUID等]  [挂载点]  [文件系统]  [文件系统参数]  [dump]  [fsck]
    
    • 第一栏:磁盘设备文件名/UUID/LABEL name:

    这个字段可以填写的数据主要有三个项目:

    • 文件系统或磁盘的设备文件名,如 /dev/vda2 等
    • 文件系统的 UUID 名称,如 UUID=xxx
    • 文件系统的 LABEL 名称,例如 LABEL=xxx

    因为每个文件系统都可以有上面三个项目,所以你喜欢哪个项目就填哪个项目!无所谓的!只是从鸟哥测试机的 /etc/fstab 里面看到的,在挂载点 /boot 使用的已经是 UUID 了喔!那你会说不是还有多个写 /dev/mapper/xxx 的吗?怎么回事啊? 因为那个是 LVM 啊!LVM 的文件名在你的系统中也算是独一无二的,这部份我们在后续章节再来谈。 不过,如果为了一致性,你还是可以将他改成 UUID 也没问题喔!(鸟哥还是比较建议使用 UUID 喔!) 要记得使用 blkid 或 xfs_admin 来查询 UUID 喔!

    • 第二栏:挂载点 (mount point)::

    就是挂载点啊!挂载点是什么?一定是目录啊~要知道啊!忘记的话,请回本章稍早之前的数据瞧瞧喔!

    • 第三栏:磁盘分区的文件系统:

    在手动挂载时可以让系统自动测试挂载,但在这个文件当中我们必须要手动写入文件系统才行! 包括 xfs, ext4, vfat, reiserfs, nfs 等等。

    • 第四栏:文件系统参数
    • 第五栏:能否被 dump 备份指令作用:

    dump 是一个用来做为备份的指令,不过现在有太多的备份方案了,所以这个项目可以不要理会啦!直接输入 0 就好了!

    • 第六栏:是否以 fsck 检验扇区:

    早期开机的流程中,会有一段时间去检验本机的文件系统,看看文件系统是否完整 (clean)。 不过这个方式使用的主要是通过 fsck 去做的,我们现在用的 xfs 文件系统就没有办法适用,因为 xfs 会自己进行检验,不需要额外进行这个动作!所以直接填 0 就好了。

    开机挂载示例

    假设我们要将 /dev/sdb1 每次开机都自动挂载到/media/data,该如何进行?

    答:首先,请用将下面这一行写入 /etc/fstab 最后面中;

    /dev/sdb1 /media/data ext4 defaults 0 0 #或者最好先找到UUID再挂载

    再来看看 /dev/vda4 是否已经挂载#df,如果挂载了,请务必卸载再说!因为,如果要被挂载的文件系统已经被挂载了(无论挂载在哪个目录),那测试就不会进行喔!**

    最后测试一下刚刚我们写入 /etc/fstab 的语法有没有错误!这点很重要!因为这个文件如果写错了, 则你的 Linux 很可能将无法顺利开机完成!

    所以请务必要测试测试喔!

    # mount -a
    # df
    
    最终有看到 /dev/sdb1 被挂载起来的信息才是成功的挂载了!而且以后每次开机都会顺利的将此文件系统挂载起来的!

    皮皮blog



    Linux挂载分区错误

    $ sudo mount /dev/sdb1 a
    mount: you must specify the filesystem type
    $ sudo mount -t ext4 /dev/sdb1 a 
    mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
    
     
    missing codepage or other error
    In some cases useful info is found in syslog - try
    dmesg | tail or so
    [ Recovering ext4 superblocks]

    Note: 磁盘挂载不能使用sudo mount /dev/sdb a,否则也会报相同错误,因为/dev/sdb可能是磁盘名而不是分区后的名字!

    这种情况一般为superblock损坏的概率很大。
    superblock是什么?分区的第一块superblock位于分区的第二块block。如果分区的blocksize是1024,则superblock位于[1024, 2048)之间。

    超级块损坏,但是文件系统都是有超级块备份的,只需要重新恢复超级块就可以了。

    [LInux硬盘挂载失败,提示mount: wrong fs type, bad option, bad superblock on /dev/的解决办法]

    $ sudo e2fsck -f -b 32768 /dev/sdb1
    
    e2fsck: Bad magic number in super-block while trying to open /dev/sdb
    The superblock could not be read or does not describe a valid ext2/ext3/ext4
    filesystem.  If the device is valid and it really contains an ext2/ext3/ext4
    filesystem (and not swap or ufs or something else), then the superblock
    is corrupt, and you might try running e2fsck with an alternate superblock:
        e2fsck -b 8193 <device>     or    e2fsck -b 32768 <device>

    linux系统挂载windows分区错误

    root执行/media可执行文件权限不够,chmod修改权限无效

    ubnutu中切换用户后再用admin登录设备不能挂载某个win分区盘符
    ubuntu  gedit 打开 windows 分区中txt 文件乱码

    root执行/media可执行文件权限不够,chmod修改权限无效

    问题:我想执行media文件夹下自己写的某个程序,但无法执行?

    lz发现,linux中挂载的windows分区的目录和文件并不能修改所有者等,主要是ntfs文件系统不支持linux权限。

    1. 于是我以root的身份在终端以输入指令 chmod a+x 1,回车后没反应,查询该文件夹的属性,也没有改变,即修改权限无效。

    2. 直接图形界面进入文件夹,打开文件属性,属性权限设置里面 执行权限都不可选(勾选后自动消失,即使使用ROOT权限同样)

    3. 而拷贝到linux分区(比如/tmp文件夹下)才可以正常执行

    pipi@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#g++ -o div divide.cpp
    pipi@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#./div
    bash: ./div: 权限不够
    pipi@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#ll div
    -rw------- 1 pipi pipi 8522 Oct  2 00:43 div
    pipi@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#chmod u+x div
    pipi@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#ll div
    -rw------- 1 pipi pipi 8522 Oct  2 00:43 div    =>权限竟然没变,依旧没法执行!!!
    
    media这个文件夹的所有者是root
    root@ubuntu:/#ls -ld /media
    drwxr-xr-x 5 root root 1024 Sep 29 00:08 /media

    即当插入一个windows分区格式的硬盘或者U盘时,linux系统自动挂载该移动硬盘到/media目录下,通过ls -al查看其权限,显示为:drwx------,证明我们可以进入到该盘符目录,当进一步查看该盘符下的某可执行文件的权限时,就如上所说发现其为-rw-------,即可以对该文件进行读写操作,但不能执行该文件,通过chmod更改权限也无济于事.

    此时如何获得执行权限?(再比如在移动硬盘上有一源代码,通过编译产生了目标程序,但是当通过./来执行时,却告知没有权限,同时sudo chmod +x也不起任何作用,在实际工作中遇到这样的情况时,一般可以通过将源码拷贝到linux系统磁盘中进行编译或者将编译好的目标程序拷贝到linux系统的磁盘中再使用chmod更改权限来解决,但如果能直接让linux系统挂载的移动硬盘具有执行权限就方便多了)

    linux设备挂载

    这一问题涉及到硬盘挂载,首先需要了解linux系统中与磁盘挂载相关的两个系统文件。

    /etc/fstab是系统分区信息以及系统启动时磁盘的挂载参数,该文件是一个静态文件(系统启动后不再改变,如人为改变,需要重启系统);

    /etc/mtab是当前系统中已经挂载的磁盘列表,该文件是一个动态文件,即随系统mount和umount文件系统而随时发生改变,例如当插入U盘时,系统在mtab文件中写入该磁盘的相关信息,当拔下U盘时,系统随之删除mtab文件中有关该磁盘的信息。

    fstab文件内容的格式如下

    # /etc/fstab: static file system information.
    # <file system> <mount point>   <type>          <options>                   <dump>  <pass>

    ……
    proc                       /proc                   proc    nodev,noexec,nosuid              0                 0

    ……

    mtab文件内容的格式如下

    ……
    proc                       /proc                    proc   rw,noexec,nosuid,nodev          0                 0

    ……

    root@ubuntu:~#cat /etc/mtab
    /dev/loop0  /  ext3  rw  0  0
    ...
    /dev/sda1 /host fuseblk rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096 0 0
    gvfs-fuse-daemon /home/pipi/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,user=pipi 0 0
    /dev/sda6 /media/000B089D0000696F fuseblk rw,nosuid,nodev,allow_other,default_permissions,blksize=4096 0 0 #小编windows分区下的c盘

    fstab和mtab文件中的格式都是按照“设备名称—挂载点—分区类型—挂载选项—dump选项—pass选项”的格式组织列表。[鸟哥的linux私房菜]

    让linux挂载的移动硬盘具有执行权限

    1、设备名称是指系统中设备的名称,比如/dev/sda1或/etc/sdb1或/etc/sdc1等,这些设备名称可以通过sudo fdisk -l命令来查看。

    2、挂载点实际上就是为挂载磁盘创建的文件夹,比如./,./usr,和./swap这样的系统默认挂载点,当然我们可以自己使用mkdir创建一个文件夹作为挂载点。

    3、分区类型在linux下面有ext2,ext3,ext4,jfs,jfs2,reiserfs,reiser4,swap等(在windows下面有FAT和NTFS等)。

    4、常用的挂载选项包括:

      (1)auto和noauto: auto允许系统自动挂载或使用mount -a就能挂载,fstab默认就是这个选项 ;noauto使系统开机不自动挂载 或使用mount -a时不挂载;

      (2)rw和ro:rw表示以读写权限挂载该设备,ro表示以只读权限挂载该设备;

      (3)suid和nosuid:suid表示允许对该设备进行uid和gid的设置操作,nosuid就是不允许设置uid和gid;

      (4)dev和nodev:dev表示同时挂载文件系统上的特殊设备,nodev表示不挂载这些特殊设备;

      (5)exc和noexc:exec表示允许执行该文件系统下的二进制文件,noexc当然表示不允许执行二进制文件;

     (6)user、nouser、users和owner:user允许指定的普通用户挂载该设备,nouser表示禁止普通用户挂载该设备(仅root可以挂载该设备),users表示允许所有普通用户挂载该设备,owner表示仅设备所有者可以挂载。user和users选项同时隐含noexec,nosuid,nodev选项;

      (7)sync和asnyc:sync表示对该设备的I/O操作同步进行,不进行缓冲处理,而async表示不同步,进行缓冲处理;

      (8)defaults: 该选项是rw, suid, dev, exec, auto, nouser, and async这些选项的组合。

    linux系统针对不同的文件系统还可以设定其他特别选项

    对Windows下的NTFS文件系统,可以设置utf8(表示采用UTF-8转换文件名称)、uid=****(挂载设备的指定用户id,可以通过id命令或者查看/etc/passwd文件方式获得)、gid=****(挂载设备的指定用户群组id)和umask=***(挂载设备的权限屏蔽,八进制数值)等。

    对Windows下的FAT(包括msdos,umsdos,vfat等)文件系统,可以设置uid=****,gid=****,umask=***,dmask=***(挂载设备时应用于目录的权限屏蔽,八进制数值)和fmask=***(挂载设备时应用于普通文件的权限屏蔽,八进制数值)。更多挂载选项可以参见man mount。

    5、dump选项用来设置是否让备份程序dump备份文件系统,0为不备份,1为备份,如果上次用dump备份,将显示备份至今的天数。

    6、pass选项,告诉fsck程序在开机时以什么顺序检查文件系统,为0就表示不检查,(./)分区只能是1,其它的分区只能是2,当数字相同就同时检查。

    windows挂载分区的权限

     在linux下面挂载windows分区格式的移动硬盘了,关键就是设置挂载选项从而获得相应权限。

    当挂载Windows分区格式的文件系统时,我们可以通过uid=****,gid=****和umask=***/dmask=***/fmask=***来设置权限,uid和gid直接设置为自己的uid和gid就可以;

    关于权限mask的设置采用数字式的,同样第一个数字表示所有者的权限mask,第二个数字表示群组的权限mask,第三个数字表示其他用户的权限mask,如果umask=000,就表示不屏蔽任何用户的任何权限,即所有用户具有读、写和执行权限,再例如fmask=033,就表示文档所有者具有读、写和执行权限,而群组和其他用户只具有读取的权限。

    [linux文件权限及目录管理 ]

    media文件夹下很多文件只读的原因

    只读的原因是win8的快速重启技术开启后进入其它系统对该分区进行写操作会导致数据丢失 所以ntfs-3g(linux上的ntfs支持模块)默认禁止对ntfs写操作。如果ntfs系统中不能读写,没法儿更改里边的文件属性。

    另外/下的文件夹切忌修改权限

    windows挂载分区权限不能修改的原因

    由于挂载的分区是ntfs的所以不能按照linux的权限方式修改,目前看到的权限是mount时赋予的。

    问题解决方案

    1.修改/etc/fstab(推荐)

    ubuntu14.04+设置windows分区开机挂载

    ~sudo su

    #mkdir /media/pika/files

    #mkdir /media/pika/softwares

    使用命令查看UUID    # 使用uuid,用磁盘号维护时可能错乱

    #blkid

    记录要挂载的磁盘的uuid号
    #vi /etc/fstab
    fstab文件添加行如下

    #files in windows
    15 /dev/sda6 /media/pi/files ntfs defaults 0 0     #ubuntu12.04

    UUID=BA78CD5F78CD1AD1 /media/pika/files ntfs defaults 0 0

    UUID=E8567DD3567DA2CC /media/pika/softwares ntfs defaults 0 0

    测试挂载
    #mount -a
    #df -T

    [ubuntu 14.04 开机自动挂载分区]

    <ubuntu12.04?

    可以在/etc/fstab中添加像下面这样的挂载配置,并重启系统让系统挂载硬盘,从而获得执行权限。

    # <file system> <mount point>                               <type>                <options>                                             <dump>  <pass>

    /dev/sdb6         /media/sdb6                                      ntfs       utf8,uid=1000,gid=1000, umask=000                  0             0
    /dev/sda6         /media/E        ntfs       utf8,uid=1000,gid=1000,fmask=033                    0             0        (小编的系统这么修改的,可先挂载windows分区,再通过df -h查询windows分区的挂载具体情况)

    万一在fstab中修改有误,导致开机失败,可以按屏幕提示按s键就可以了,进入系统后修改好fstab

    或者按m键进入单用户维护模式,修改fstab,输入restart重启就可以进入系统了

    解决之后的情况(具有执行权限了,并且可以执行):

    root@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#ls -l div
    -rwxr--r-- 1 pipi pipi 8522 Oct  2 00:43 div
    root@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#./div
    2 13 5 6 4 9 0 98 0 0 1 6 2 3 2 4 0 49 0 0 
    

    2.使用mount解决

    umount /media/...
    mount -o rw /dev/sda7 /media

    Note: mount 简单用法:
    需要root权限
    mount 分区 挂载点
    分区:类似/dev/sda1之类
    挂载点:目的文件夹,最好是空的
    例:把第一分区(sda1)挂载到/home/xxx/a
    mount /dev/sda1 /home/xxx/a
    卸载只需 umount 挂载点

    3.专用分区

    双系统中可以先装windows。在里边分好区,然后专门给linux留一个32G的fat32分区,免得和ntfs打交道。

    把经常用的东西放fat32,这样保证你什么时候都能用。

    把windows下常用但linux不用的放ntfs。把linux常用但windows不用的放到linux自己的分区。

    [Ubuntu下若把一NTFS格式的移动硬盘手动挂到非/media 目录的目录下,被挂载的目录权限就被设置成了777,属主和属组都为root。且chmod,chown命令对该目录失效]

    [关于挂载windows分区的权限的问题]

    [关于修改文件夹权限的命令求解]

    [让linux挂载的移动硬盘具有执行权限]

    [解决mount挂载u盘后chmod无法修改挂载点权限]

    皮皮blog

    ubnutu中切换用户后再用admin登录设备不能挂载某个win分区盘符

    添加了一个新用户dapi后[linux下添加删除修改用户],用新用户账号dapi登录,打开主文件夹时提示需要管理员pipi授权


    输入管理员账号就可以看到某个盘符了,如我的显示的是F盘(windows下的)

    但是注销后再用管理员账号登录就看不到F盘了,显示没有权限

    用ls -l查询后才发现那个盘符所有者是dapi,而盘符的权限设置为drwx------,用pipi登录的就当然不能访问了

    尝试用chown和chgrp修改盘符所有者和组失败[root执行/media可执行文件权限不够,chmod修改权限无效]

    解决方案

    用新账号dapi登录系统,主文件夹>右键点击F盘,卸载

    然后用管理员账户pipi登录就可以正常访问设备中的F盘了

    ps:要是我频繁切换两个账户,那不是每次用新账户dap登录时都要授权,注销之前都要卸载了?这个怎么解决?

    皮皮blog

    ubuntu  gedit 打开 windows 分区中txt 文件乱码

    ubuntu 12.04 gedit 打开 windows 分区中的txt 文件乱码,是因为 ubuntu 和 windows 两个系统的编码不同。

    解决办法1:(推荐)

    终端里依次输入以下 2 条命令即可:

    gsettings setorg.gnome.gedit.preferences.encodings auto-detected "['GB18030','GB2312', 'GBK', 'UTF-8', 'BIG5', 'CURRENT','UTF-16']"

    gsettings setorg.gnome.gedit.preferences.encodings shown-in-menu "['GB18030','GB2312', 'GBK', 'UTF-8', 'BIG5', 'CURRENT','UTF-16']"

    [ubuntu 12.04 gedit 打开 txt 文件乱码的解决办法]

    解决办法2:

    1、在终端输入“dconf-editor”回车。(如果没有安装用“sudo apt-get install dconf-tools”安装。)

    2、展开org/gnome/gedit/preferences/encodings

    auto-detected的value中加入 'GB18030', 加在uft8后面,按回车;

    show-in-menu的value中在前面加入 'GB18030', 按回车。

    [Ubuntu 12.04下Gedit打开Windows下txt文件乱码解决]

    [ubuntu下txt文档乱码现象]

    from: http://blog.csdn.net/pipisorry/article/details/39649699

    ref:


    展开全文
  • 主要介绍了批处理统计文件夹内的所有文件的数量和总大小的bat,需要的朋友可以参考下
  • Linux磁盘文件系统管理

    千次阅读 2016-06-26 22:26:51
    系统管理的重要任务之一就是管理好自己的磁盘文件系统,每个分区不可太大也不能太小,太大会造成磁盘容量的浪费,太小则会产生文件无法存储的困扰。 认识EXT2文件系统 Linux最传统的磁盘文件系统使用的是EXT2。 ...
  • Du命令功能说明:统计目录(或文件)所占磁盘空间的大小。 语 法:du [-abcDhHklmsSx] [-L ][-X ][--block-size][--exclude=] [--max-depth=][--help][--version][目录或文件] 常用参数: -a或-all 为每个指定...
  • Linux 磁盘文件查找详解

    千次阅读 2013-12-10 16:52:08
    df 和du 是查看linux 磁盘文件系统的命令,可以加上参数查看磁盘剩余空间信息, 命令格式:df -hl du 显示格式为: 文件系统 容量 已用 可用 已用% 挂载点 Filesystem Size Used Avail Use% Mounted on /dev...
  • 设定文件系统配额vim /etc/fstab 挂载选项中添加usrquota(针对用户),grpquota(针对组) mount -o remount,rw /home cd /home #创建磁盘配额数据库(u对应usrquota,g对应grpquota) #关闭selinux setenforce 0 #创建...
  • Linux 磁盘文件系统

    千次阅读 2018-09-16 10:39:38
    认识 Linux 文件系统 磁盘组成与分区基本知识 扇区(Sector)为最小的物理储存单位,且依据磁盘的设计,目前有 512bytes 和 4k 两种格式 将扇区组成一个圆,就是磁柱(道)(Sectors/Track),鸟哥所说的 磁盘盘 是...
  • QT 文件磁盘处理

    千次阅读 2018-09-28 10:07:55
    QFile 用于进行文件操作,提供读写文件的接口 QTextStream 用于处理文本文件,提供读写文件的接口 QDataStream 用于处理二进制文件 QTemporaryFile 用于处理临时文件 QFileInfo 可以获取文件信息 QDir 可以处理目录 ...
  • df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息, 命令:df -lh //清楚磁盘使用情况 命令:df -a //查询全部的文件系统的使用情况 命令:du -sh [目录] //返回...
  • 查看整个磁盘的 df -h 查看当前目录 du -h --max-depth=1 ./
  • 磁盘文件系统相关操作

    千次阅读 2013-09-11 12:03:48
    格式化、挂载、文件系统操作相关指令 ...df -a列出所有文件系统 df -k 以KBytes显示各文件系统 df -m 以MBytes显示各文件系统 df -h 以GBytes,MBytes等格式自行显示 df -H 以M=1000K 取代 M=1024K
  • Linux磁盘文件系统

    千次阅读 2013-09-02 11:55:43
    一、硬盘结构 1、扇区(sector):是最小的物理存储单位,每个扇区512bytes 2、将扇区围成一个圆,就是柱面(cylinder),是分区(partition)最小单位 3、第一扇区包括: ...二、各种接口磁盘在Linux中文件名
  • free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。 语法: free [-bkmotV][-s &lt;间隔秒数&gt;] 参数: -b 以Byte为单位显示内存使用情况...
  • 用于显示目前Linux系统文件系统的磁盘使用情况统计 2、语法 df [选项]... [FILE]...  文件-a, --all 包含所有的具有 0 Blocks 的文件系统文件--block-size={SIZE} 使用 {SIZE} 大小的 Blocks文件-h, --...
  • 1.查看磁盘空间 ...查看当前文件夹下所有文件大小(包括子文件夹):du -sh  3.查看文件数量 统计当前目录下文件的个数(不包括目录) ls -l | grep "^-" | wc -l   参考资料: ...
  • ...第八章、Linux 磁盘与...系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分割槽不可太大也不能太小, 太大会造成磁盘容量的浪费,太小则会产生文件无法储存的困扰。此外,我们在前面几章谈到
  • Linux 磁盘分区表、文件系统的查看、统计的工具很多,有些工具是多功能的,不仅仅是查看磁盘的分区表,而且也能进行磁盘分区的操作;但在本文,我们只讲磁盘分区的查看,以及分区的使用情况的查看;本文只是给新手...
  • 统计文件中字符个数

    万次阅读 2015-09-02 09:49:22
    所谓“文件”是指一组相关数据的有序集合。这个数据集有一个名称 ...ASCII文件也称为文本文件,这种文件磁盘中存放时每个字符对应一个 字节,用于存放对应的ASCII码。例如,数字5678的存储形式
  • linux du命令参数及用法详解---linux统计磁盘空间大小命令 du命令功能说明:统计目录(或文件)所占磁盘空间的大小。 语 法:du [-abcDhHklmsSx] [-L ][-X ][--block-size][--exclude=] [--max-depth=]...
  • 4.Linux磁盘文件系统管理

    千次阅读 2018-09-24 14:37:50
    2.Linux的EXT2文件系统(inode) 3.日志文件系统(Journaling filesystem) 4.文件系统管理 5.磁盘分区: 6.格式化分区(磁盘格式化):  7.磁盘挂载与卸除(mount,umount) 7.1.挂载 :mount 7.2.卸除装置...
  • 提要:Linux 磁盘分区表、文件系统的查看、统计的工具很多,有些工具是多功能的,不仅仅是查看磁盘的分区表,而且也能进行磁盘分区的操作;但在本文,我们只讲磁盘分区的查看,以及分区的使用情况的查看;本文只是给...
  • FsutilFsutil 是一个命令行实用程序,可用于执行多种与文件分配表 (FAT) 和 NTFS 文件系统相关的任务,例如管理重分析点、管理稀疏文件或拆卸卷。因为 fsutil 的功能非常强大,所以只应由具有 Windows XP 或 Windows...
  • Linux 磁盘分区表、文件系统的查看

    万次阅读 2010-04-16 10:42:00
    提要:Linux 磁盘分区表、文件系统的查看、统计的工具很多,有些工具是多功能的,不仅仅是查看磁盘的分区表,而且也能进行磁盘分区的操作;但在本文,我们只讲磁盘分区的查看,以及分区的使用情况的查看;本文只是给...
  • 1.每天脚本检测所有分区的使用率和inode使用率 2.将磁盘空间和inode使用率记录到以当天日志命名的日志中 3.某个分区使用量或inode使用量大于90%时,发送邮件通知 查看磁盘分区使用情况: [root@linux shell]# df -h ...
  • (1)查看文件大小 ...查看当前文件夹下所有文件大小(包括子文件夹) du-sh #du-h 15M./package 16K./.fontconfig 4.0K./.cache 5.1M./.rpmdb 20M. 查看指定文件夹下所有文件大小(包括子文件夹) #du-hftp

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 121,110
精华内容 48,444
关键字:

统计磁盘上所有文件名称