人生新篇章,Linux学习第二篇

1,Linux发行版的系统目录名称命名规则及用途

一. 系统目录名称命名规则:
A.系统目录也是一种目录,所以首先它要符合一般目录的命名规则,而因为目录也是文件(Linux哲学思想:一切皆文件),所以也就是要符合文件的命名规则:

  1. 在同一路径下,两个文件不能同名
  2. 文件名最长255个字节
  3. 包括路径在内文件名称最长4095个字节
  4. 除了斜杠“/”和NUL,所有字符都有效。(但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们)
  5. 字母大小写敏感(这点与文件系统类型有关,例如标准Linux文件系统ext4,但如果用的是FAT32类型,那么字母大小写便不敏感)
    B.如果是系统目录,还要符合官方Linux的标准库:LSB linux Standard Base。文件系统分层结构:FHS:(Filesystem Hierarchy Standard)
    二.根目录下,系统目录的用途简述:
    目录 描述
    bin 基本命令二进制文件
    boot 引导 boot loader 的静态文件
    dev 设备文件
    etc 主机专用的系统配置
    lib 基本共享库和内核模块
    media 可移动媒体的挂载点
    mnt 临时挂载文件系统的挂载点
    opt 附加应用程序软件包
    run 进程运行过程中的相关数据
    sbin 基本系统二进制文件
    srv 提供该系统服务的数据
    tmp 临时文件
    usr 二级层次结构
    var 可变数据
    home 用户主目录(可选)
    lib <qual> 另一种格式的基本共享库 (可选)
    root root用户的主目录(可选)

2,描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
查看文件元数据

[[email protected] data]# stat wang.txt
File: ‘wang.txt’ 文件名
Size: 0 大小 Blocks: 0占用的磁盘块数 IO Block: 4096 磁盘块大小 regular empty file文件类型
Device: 803h/2051d所在设备 Inode: 67 文件节点编号 Links: 1硬链接次数
Access: (0644/-rw-r--r--)访问权限 Uid: ( 0/ root) 属哪个用户 Gid: ( 0/ root) 属哪个组
Access: 2020-03-01 20:55:49.464027136 +0800文件最近一次的访问时间
Modify: 2020-03-01 20:55:49.464027136 +0800文件的修改时间
Change: 2020-03-01 20:55:49.464027136 +0800文件的改变时间
Birth: -

修改文件时间戳方法
touch 命令的基本格式如下:touch [选项] 文件名

选项:
-a:只修改文件的访问时间;
-c:仅修改文件的时间参数(3 个时间参数都改变),如果文件不存在,则不建立新文件。
-d:后面可以跟欲修订的日期,而不用当前的日期,即把文件的 atime 和 mtime 时间改为指定的时间。
-m:只修改文件的数据修改时间。
-t:命令后面可以跟欲修订的时间,而不用目前的时间,时间书写格式为 YYMMDDhhmm。

举例:
[[email protected] data]# touch -c wang.txt
[[email protected] data]# stat wang.txt
File: ‘wang.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 67 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-03-01 21:07:55.100052676 +0800
Modify: 2020-03-01 21:07:55.100052676 +0800
Change: 2020-03-01 21:07:55.100052676 +0800
Birth: -
[[email protected] data]#

3,总结软连接和硬连接区别,并用实例操作说明。
硬链接 软链接
本质 同一个文件多个名字 不同文件,软链接只是指向相应的文件,类似于windows中的快捷方式
能否跨磁盘分区 不能 能
能否链接目录 不能 能
相互关系 平等 ,相对独立 有主次之分
文件类型 与源文件相同 链接文件
链接数 被链接后增加链接数 被链接后不增加链接数

硬链接实例:
[[email protected] data]# ll -i
total 8
68 drwxr-xr-x 2 root root 6 Feb 29 16:05 d1
69 -rw-r--r-- 2 root root 0 Feb 29 16:07 f1
69 -rw-r--r-- 2 root root 0 Feb 29 16:07 f1.link
71 -rw-r--r-- 1 root root 2285 Feb 29 16:31 passed.old
72 -rw-r--r-- 1 root root 2304 Feb 29 18:33 passwd
67 -rw-r--r-- 1 root root 0 Mar 1 21:07 wang.txt
[[email protected] data]# ln wang.txt wang1.txt
[[email protected] data]# ll -i
total 8
68 drwxr-xr-x 2 root root 6 Feb 29 16:05 d1
69 -rw-r--r-- 2 root root 0 Feb 29 16:07 f1
69 -rw-r--r-- 2 root root 0 Feb 29 16:07 f1.link
71 -rw-r--r-- 1 root root 2285 Feb 29 16:31 passed.old
72 -rw-r--r-- 1 root root 2304 Feb 29 18:33 passwd
67 -rw-r--r-- 2 root root 0 Mar 1 21:07 wang1.txt
67 -rw-r--r-- 2 root root 0 Mar 1 21:07 wang.txt
[[email protected] data]# rm wang1.txt
rm: remove regular empty file ‘wang1.txt’? y
[[email protected] data]# ll i
ls: cannot access i: No such file or directory
[[email protected] data]# ll -i
total 8
68 drwxr-xr-x 2 root root 6 Feb 29 16:05 d1
69 -rw-r--r-- 2 root root 0 Feb 29 16:07 f1
69 -rw-r--r-- 2 root root 0 Feb 29 16:07 f1.link
71 -rw-r--r-- 1 root root 2285 Feb 29 16:31 passed.old
72 -rw-r--r-- 1 root root 2304 Feb 29 18:33 passwd
67 -rw-r--r-- 1 root root 0 Mar 1 21:07 wang.txt
[[email protected] data]#

软链接实例:
[[email protected] data]# ll -i
total 0
67 -rw-r--r-- 1 root root 0 Mar 1 21:07 wang.txt
[[email protected] data]# ln -s wang.txt wang.txt.link
[[email protected]s7 data]# ll -i
total 0
67 -rw-r--r-- 1 root root 0 Mar 1 21:07 wang.txt
68 lrwxrwxrwx 1 root root 8 Mar 1 21:21 wang.txt.link -> wang.txt
[[email protected] data]# rm wang.txt
rm: remove regular empty file ‘wang.txt’? y
[[email protected] data]# ll -i
total 0
68 lrwxrwxrwx 1 root root 8 Mar 1 21:21 wang.txt.link -> wang.txt
[[email protected] data]# touch wang.txt
[[email protected] data]# ll -i
total 0
67 -rw-r--r-- 1 root root 0 Mar 1 21:22 wang.txt
68 lrwxrwxrwx 1 root root 8 Mar 1 21:21 wang.txt.link -> wang.txt
[[email protected] data]#

4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
pwd 显示当前shell CWD的绝对路径
语法:
pwd(选项)
选项:
-P 显示真实物理路径
-L 显示链接路径(默认)
实例:
[[email protected] ~]# pwd
/root
[[email protected] ~]# cd /data
[[email protected] data]# pwd
/data
[[email protected] data]#
cd 改变目录
语法:
cd (选项) (参数)
选项:
-p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
-L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。
当仅实用"-"一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录。
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. 返回上两级目录;
cd !$ 把上个命令的参数作为cd参数使用。
实例:
[[email protected] ~]# cd /data
[[email protected] data]# pwd
/data
[[email protected] data]# cd /home
[[email protected] home]# cd ~
[[email protected] ~]# cd -
/home
[[email protected] home]# cd ..
[[email protected] /]# cd ../..
[[email protected] /]# cd !$
cd ../..
[[email protected] /]#

ls 列出当前目录的内容或指定目录
语法:
ls(选项)(参数)
ls -a 包含隐藏文件
ls -l 显示额外的信息
ls -R 目录递归
ls -ld 目录和符号链接信息
ls -1 文件分行显示
ls –S 按从大到小排序
ls –t 按mtime排序
ls –u 配合-t选项,显示并按atime从新到旧排序
ls –U 按目录存放顺序显示
ls –X 按文件后缀排序
实例:
[[email protected] /]# ls
bin boot data dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[[email protected] /]# ls -a
. .. .autorelabel bin boot data dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[[email protected] /]# ls -L
bin boot data dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[[email protected] /]# ls -l
total 24
lrwxrwxrwx. 1 root root 7 Feb 22 20:58 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Feb 24 21:41 boot
drwxr-xr-x. 2 root root 43 Mar 1 21:22 data
drwxr-xr-x 19 root root 3320 Mar 8 15:30 dev
drwxr-xr-x. 140 root root 8192 Mar 8 15:30 etc
drwxr-xr-x. 3 root root 19 Feb 22 21:12 home
lrwxrwxrwx. 1 root root 7 Feb 22 20:58 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Feb 22 20:58 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 media
drwxr-xr-x. 3 root root 18 Feb 24 21:38 mnt
drwxr-xr-x. 3 root root 16 Feb 22 21:05 opt
dr-xr-xr-x 196 root root 0 Mar 8 15:30 proc
dr-xr-x---. 16 root root 4096 Mar 8 15:30 root
drwxr-xr-x 40 root root 1260 Mar 8 15:30 run
lrwxrwxrwx. 1 root root 8 Feb 22 20:58 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Apr 11 2018 srv
dr-xr-xr-x 13 root root 0 Mar 8 15:30 sys
drwxrwxrwt. 24 root root 4096 Mar 8 15:31 tmp
drwxr-xr-x. 13 root root 155 Feb 22 20:58 usr
drwxr-xr-x. 20 root root 282 Feb 22 21:22 var
[[email protected] data]# ls -R
.:
wangtest wang.txt wang.txt.link

./wangtest:
1 2

./wangtest/1:

./wangtest/2:
[[email protected] data]# ls -ld
drwxr-xr-x. 3 root root 59 Mar 8 15:36 .
[[email protected] data]# ls -1
wangtest
wang.txt
wang.txt.link
[[email protected] data]# ls -S
wangtest wang.txt.link wang.txt
[[email protected] data]# ls -t
wangtest wang.txt wang.txt.link
[[email protected] data]# ls -ut
wangtest wang.txt.link wang.txt
[[email protected] data]# ls -U
wang.txt.link wang.txt wangtest
[[email protected] data]# ls -X
wangtest wang.txt.link wang.txt
[[email protected] data]# stat 用于显示文件的状态信息。
语法:
stat(选项)(参数)
选项:
-L:支持符号连接;
-f:显示文件系统状态而非文件状态;
-t:以简洁方式输出信息;
--help:显示指令的帮助信息;
--version:显示指令的版本信息。
实例:
[[email protected] data]# stat wang.txt
File: ‘wang.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 67 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-03-01 21:22:31.105083509 +0800
Modify: 2020-03-01 21:22:31.105083509 +0800
Change: 2020-03-01 21:22:31.105083509 +0800
Birth: -
[[email protected] data]# stat -f wang.txt
File: "wang.txt"
ID: 80300000000 Namelen: 255 Type: xfs
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 13100800 Free: 13092536 Available: 13092536
Inodes: Total: 26214400 Free: 26214392
[[email protected] data]# stat -t wang.txt
wang.txt 0 0 81a4 0 0 803 67 1 0 0 1583068951 1583068951 1583068951 0 4096
[[email protected] data]#
touch 创建空文件和刷新时间
语法:
touch [OPTION]... FILE...
选项:
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建
实例:
[[email protected] data]# touch -t 03081544 wang.txt
[[email protected] data]# stat wang.txt
File: ‘wang.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 67 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-03-08 15:44:00.000000000 +0800
Modify: 2020-03-08 15:44:00.000000000 +0800
Change: 2020-03-08 15:49:20.931053407 +0800
Birth: -
[[email protected] data]#
cp 复制文件和目录
语法:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
选项:
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
实例:
[[email protected] wangtest]# ls
3
[[email protected] wangtest]# cd ..
[[email protected] data]# cp -if [1-3] wangtest
cp: overwrite ‘wangtest/3’? y
mv 移动和重命名文件
语法:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
选项:
-i 交互式
-f 强制
-b 目标存在,覆盖前先备份
实例:
[[email protected] data]# ls -a
. .. 10 2 3 4 9 t1 t2 wangtest wang.txt wang.txt.link
[[email protected] data]# ls -l
total 0
-rw-r--r-- 1 root root 0 Mar 8 16:10 10
-rw-r--r-- 1 root root 0 Mar 8 15:41 2
-rw-r--r-- 1 root root 0 Mar 8 16:03 3
-rw-r--r-- 1 root root 0 Mar 8 15:41 4
-rw-r--r-- 1 root root 0 Mar 8 16:10 9
drwxr-xr-x 2 root root 6 Mar 8 16:10 t1
drwxr-xr-x 2 root root 24 Mar 8 16:09 t2
drwxr-xr-x 3 root root 45 Mar 8 16:06 wangtest
-rw-r--r-- 1 root root 0 Mar 8 15:44 wang.txt
lrwxrwxrwx 1 root root 8 Mar 1 21:21 wang.txt.link -> wang.txt
[[email protected] data]# mv /data/t1/ /data/t2
[[email protected] data]# ls t2
7 8 t1
[[email protected] data]#
rm 删除
语法:
rm [OPTION]... FILE...
选项:
-i 交互式
-f 强制删除
-r 递归
--no-preserve-root 删除/
实例:
[[email protected] t2]# rm -r t1
rm: remove directory ‘t1’? y
[[email protected] t2]# cd ..
[[email protected] data]# ls t2
7 8
[[email protected] data]# rm -rf t2
[[email protected] data]# ls
10 2 3 4 9 wangtest wang.txt wang.txt.link
[[email protected] data]#

5、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符
cp /etc/profile /tmp 复制/etc/profile至/tmp/目录
vim /tmp/profile / 用vim打开profile文件

扩展命令模式下输入
:%s/^\s*//g

完成后:

6、在vim中设置tab缩进为4个字符
vim打开用户家目录下.vimrc,如需改全局变量的话修改/etc/vimrc文件:
vim ~/.vimrc

加入如下字段:
set tabstop=4
然后:wq保存退出,再次vim编辑按tab键已经缩进为4个字符

原文地址:https://blog.51cto.com/14697765/2476387

时间: 2024-10-07 00:35:30

人生新篇章,Linux学习第二篇的相关文章

UI学习第二篇 (控件)

UIbutton 也是一个控件,它属于UIControl 用的最多的就是事件响应 1. //创建按钮对象 UIButton * _botton = [UIButton buttonWithType:UIButtonTypeCustom]; //设置标题 [_botton setTitle:@"按住说话" forstate:UIControlStateNormal]; [_botton setTitle:@"松开说话" forstate:UIControlStateH

Web前端学习第二篇

今天看到了一篇写的不错的文章,是有关对JQuery.js等一些源代码初识的内容,感觉写的还是不错,所以拿过来分享一下. 文章的地址:http://my249645546.iteye.com/blog/1716629 1.对(function(){})(); 几乎所有的开源js代码开篇都是这样(function(……){……})(……); 下面是Jquery的部分源码: (function( window, undefined ) { var jQuery = function( selector

Java并发包下锁学习第二篇Java并发基础框架-队列同步器介绍

Java并发包下锁学习第二篇队列同步器 还记得在第一篇文章中,讲到的locks包下的类结果图吗?如下图: ? 从图中,我们可以看到AbstractQueuedSynchronizer这个类很重要(在本文中,凯哥就用AQS来代替这个类).我们先来了解这个类.对这个类了解之后,学习后面的会更容易了. 本篇是<凯哥(凯哥Java:kagejava)并发编程学习>系列之<Lock系列>教程的第一篇:<Java并发包下锁学习第二篇:队列同步器>. 本文主要内容:同步器介绍:同步器

LINUX学习第二章

过了10天时间,学习了Linux系统精讲课程,期间因为有其他学习上的事情需要处理,导致学习速度比较慢.接下来的学习时间需要加快速度,全身心地投入了. 2-0单用户模式 root密码重置 reboot----3秒内随便按一个健进入一个界面----选中第二行按下e ----进入另一个界面,在最后一行的最后加一个 1然后按回车----再按b----顺利进入1模式下 指令 runlevel 查看模式 指令 passwd 更改密码 设置新密码后reboot重启 2-1救援模式 另一种修改root密码的方式

linux学习第二天 (Linux就该这么学)

2018年11月10日,今天是学习的第二天 今天学习了安装vmware workstation12的安装及怎么安装 redhat7系统,在新建虚拟机时注意要选择"稍后安装操作系统"要vmwark workstation会以最精简安 装系统 后就没有相关命令 安装时选择内存推荐有两种方案1G和2G,并开启虚拟化功能,网络选择为 "仅主机模式"方便日后实验,安装系统时注意事项:SOFTWARE SELECTION 选项为"Server with GUI&quo

Android基础学习第二篇—Activity

写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对的地方,希望大家给与指正. 2. 由于类似于读书笔记,可能格式神马的会比较随(hen)意(chou),大家看着受不了,可以使劲吐槽. *************************************我只是分割线***************************************

linux学习基础篇01--硬件基础

最近看马哥的linux运维视频,虽然我是我做软件测试的,但是最近也对运维方面的东西很感兴趣,因为以前总是写写测试框架代码,谢谢自动化测试代码.发现自己懂得东西很少.我的目标是成为一个测试架构师,可是只是会写写代码的话,永远也达不到这个目标.测试架构师需要在各个计算机领域都有一定深度的了解.所以前一段时间学习mysql调优后,现在开始看马哥的linux视频.学习一下运维的知识.这里有一个很诧异的地方就是,运维需要会的东西是很多的,而且要很深.为什么国内运维人员的工资缺普遍还不如我们测试呢.这是个问

linux-ubuntu学习-第二篇

10.grep是linux系统中一个强大的文本搜索工具.主要用途在于搜索查找的关键指令.数据.正则表达式等.11.打开软键盘:Ctrl+Alt+T,输入onboard:如果没有装这个软键盘程序,直接去图形库下载:onboard sudo apt-get install onboard,或者sudo yum install onboard.12.Linux允许将命令执行结果重定向到一个文件:echo(重复,回声)重定向的概念,主要用于在终端中显示的内容"输出/追加"到我们指定的文件夹中.

Linux学习——基础篇

学习Linux之前,需要首先了解计算机的基础知识.1.二进制.十进制相互转换.156转换为二进制的方法:逐一减去2的次幂方法.(需要自己提前记住:`27=128:26=64;25=32;24=16;23=8;22=4;21=2;2`0=1 )``` 156-128是否够减,如果够,则二进制数值为:128+....156-128剩余28,28-32不够,28-16够减,剩余12.则二进制数为:128+16+...12可以拆分为:8+4那么156转换为二进制数为:128+16+8+4.二进制为2`7