wordpress密码访问,佛山网站页面优化,山东省建设项目备案证明网站,wordpress主题官方Linux 的命名规则
相对于其他操作系统#xff08;如 Windows #xff09;来说#xff0c;Linux 的命名规则并没有那么多条条框框#xff0c;还算是比较自由的。在 Linux 中#xff0c;它的命名规则有如下几点要求#xff1a;
首先是大小写敏感#xff1a;例如在 Linux…Linux 的命名规则
相对于其他操作系统如 Windows 来说Linux 的命名规则并没有那么多条条框框还算是比较自由的。在 Linux 中它的命名规则有如下几点要求
首先是大小写敏感例如在 Linux 中文件 demo 和文件 Demo 不是一个文件然而这在 Windows 中却是相同的文件。其次是 Linux 除了不允许 / 字符出现在名称中其他任何字符都可以这一点很宽松。然后是文件名称长度不要超过 255 个字符。最后是在 Linux 中没有文件后缀的说法Linux 中一切皆是文件你想用啥后缀都行但还是建议遵循共识规范来命名。 那么问题来了我如何识别一个文件是什么类型的文件呢 第一种方式看前缀这大致识别文件是什么类型也是我们最常用的方式虽然有时候不靠谱但能用就行
文件类型 - 普通文件 d 文件夹 l 链接文件 b 块设备文件 c 字符设备文件 p 管道文件 s 套接字文件
[testdemo ~]$ ls -l # 使用 ls 选项加 -l 选项通过每一行的第一个字符来判定文件类型
总用量 0
drwxrwxr-x. 2 test test 6 10月 21 23:01 dir1 # 文件夹
-rw-rw-r--. 1 test test 0 10月 21 23:02 file1 # 普通文件
lrwxrwxrwx. 1 test test 5 10月 21 23:04 file2 - file1 # 链接文件file stat 命令查看文件详细信息
[testdemo ~]$ file file1 # 通过 file 命令查看这也是最常见的辨别一个文件的类型的方式
file1: ASCII text # 当前文件为一个普通的 ascii 码字符文件
[testdemo ~]$ file dir1
dir1: directory[testdemo ~]$ stat file1 # 使用 stat 命令查看文件的 inode 块信息也可以知道当前文件类型文件file1大小4 块8 IO 块4096 普通文件 # 当前文件类型时普通文件
设备fd02h/64770d Inode136 硬链接1
......在 Linux 中请不要通过文件后缀来辨别文件类型除非你信任文件命名者采用了大家约定俗成的命名规范 文件管理基础 之 “增”
mkdir 创建文件夹
[testdemo ~]$ mkdir dir1 # 创建一个目录
[testdemo ~]$ mkdir dir2 dir3 # 创建多个目录或使用大括号 mkdir {dir2,dir3}
[testdemo ~]$ mkdir -p dir4/a/b/c # 使用 -p 参数递归创建多个目录
[testdemo ~]$ tree dir4
dir4
└── a└── b└── c
[testdemo ~]$ mkdir -m 700 dir5 # 使用 -m 参数在创建目录的同时设置权限关于权限的问题后面再说
[testdemo dir5]$ cd dir5 ll -a
总用量 0
drwx------. 2 test test 6 10月 21 23:28 . # 当前文件夹的权限创建时给的权限为 700touch 命令创建普通文件
[testdemo ~]$ touch file1 # 创建一个普通空文件
[testdemo ~]$ touch file2 file3 # 创建多个普通空文件或使用大括号 touch {file2,file3}[testdemo ~]$ ll --timeatime file1
-rw-rw-r--. 1 test test 0 10月 21 23:37 file1
[testdemo ~]$ touch file1 # 当文件存在时使用 touch 创建文件只会修改文件的访问时间
[testdemo ~]$ ll --timeatime file1
-rw-rw-r--. 1 test test 0 10月 21 23:40 file1[testdemo ~]$ touch -d 1999-12-12 04:23 file1 # touch 一般用于修改文件的时间更多参数使用 --help 查看
[testdemo ~]$ ll --timeatime file1
-rw-rw-r--. 1 test test 0 12月 12 1999 file1ln 命令创建链接
关于链接文件的 ”增“链接文件分为 软链接 和 硬链接 两种类型关于软硬链接的底层原理则需要了解 ext 文件系统的存储原理则都是后话了。
软链接类似于 Windows 中的快捷方式链接文件指向源文件如果源文件发生改变则链接文件也会发生相同改变。硬链接每个文件都有一个 inode 块来记录相关信息当创建硬链接时就是为一个已存在的 inode 又在其中建立了一个新的目录项也就是说多个文件名指向同一个 inode。不理解很正常说人话就是 硬链接指向的源文件如果发生任何变化链接文件都会发生相应变化即使源文件被删了也只是少了一个文件记录项而已只要 inode 块还在硬链接就还是可用的。
[testdemo ~]$ ln -s f1 ln1 # 使用 -s 参数创建一个软链接指向源文件 f1
[testdemo ~]$ ll
-rw-rw-r--. 1 test test 0 10月 22 00:08 f1
lrwxrwxrwx. 1 test test 2 10月 22 00:08 ln1 - f1 # 建立的软链接 ln1 指向了 f1如果源文件被删除则当前链接不可用[testdemo ~]$ ln f1 ln2 # 建立一个硬链接指向源文件 f1
[testdemo ~]$ ll
-rw-rw-r--. 2 test test 0 10月 22 00:08 f1
-rw-rw-r--. 2 test test 0 10月 22 00:08 ln2 # 硬链接当 f1 被删除则 ln2 还是可用因为 inode 块还在
[testdemo ~]$ stat f1 # 查看 f1 文件的 inode 块信息文件f1大小0 块0 IO 块4096 普通空文件
设备fd02h/64770d Inode136 硬链接2 # 当前硬链接数为 2即包含 f1 和 ln2 两个cp 命令复制文件
[testdemo ~]$ cp file1 copy1 # 将文件 file1 复制为文件 copy1
[testdemo ~]$ cp -d ln1 ln2 # 使用 -d 参数复制符号链接文件本身而不是它所指向的源文件
[testdemo ~]$ cp -p file1 file2 # 使用 -p 参数复制的文件将会保留源文件的所有属性如权限、时间、属主等
[testdemo ~]$ cp --preservemode f1 ffff # 使用完整选项可以指定具体保留哪些属性如权限(mode)、时间戳(timestamps)等
[testdemo ~]$ cp -r dir dircopy # 使用 -r 参数将递归复制 dir 中所有文件和目录
[testdemo ~]$ cp -a file1 copy2 # 使用 -a 参数等于同时使用 -d -p -r
[testdemo ~]$ cp -l file1 copy3 # 使用 -l 参数以复制的形式创建 file1 的硬链接
[testdemo ~]$ cp -s file1 copy4 # 使用 -s 参数以复制的形式创建指向 file1 的软链接
[testdemo ~]$ cp -n file1 file3 # 使用 -n 参数在复制文件 file1 时如果 file3 已存在则取消本次复制
[testdemo ~]$ cp -i file1 file2 # 使用 -i 参数交互式复制若文件 file2 存在则给出提示
cp是否覆盖file2 y # file2 存在给出提示输入 n 拒绝输入 y 允许
[testdemo ~]$ cp -f file1 file2 # 使用 -f 参数强制复制若目标文件已存在则将其覆盖
[testdemo ~]$ cp -u f1 f2 # 使用 -u 参数若 f1 的最近改动时间被 f2 新则将 f1 复制到 f2否则忽略本次复制
[testdemo ~]$ cp -b f1 f3 ls # 使用 -b 参数当 f3 存在且于 f1 内容不同时则先备份 f3 再将 f1 复制为 f3
f1 f2 f3 f3~ # f3~ 创建的为备份文件文件管理基础 之 “删”
rmdir 命令删除空文件夹
[testdemo ~]$ rmdir dir1 # 使用 rmdir 删除空目录若目录非空则删除失败
[testdemo ~]$ tree a
a # 虽然每个目录都为空但是目录树存在多个分支所以不能删除
├── b
│ └── c
└── d
[testdemo ~]$ rmdir -p a/b/c # 使用 -p 参数递归从最底层开始依次删除所有空目录前提是目录树只能是一条线
rmdir: 删除目录 a 失败: 目录非空上面的命令虽然很鸡肋但是在一些应用场景下它是安全的可以防止手贱贸然删除一些文件 rm 命令删除一切
[testdemo ~]$ rm file1 # 使用 rm 命令可以删除一切文件没有回收站的那种删除
[testdemo ~]$ rm -r dir1 # 使用 -r 参数可以删除一切目录
[testdemo ~]$ rm -i file1 # 使用 -i 参数在删除之前进行询问可以防止手贱意外删除
[testdemo ~]$ rm -f file1 # 使用 -f 参数强制删除文件和 -r 搭配成 -rf 可以强制删除目录
[testdemo ~]$ rm -rf dir1 file1 # 终极命令可以删除任何文件目录为什么你在使用 rm 不加 -i 时还是存在删除提示 因为系统使用了 alias rm“rm -i” 命令给你做了别名等于是防呆设计。在没有完全把握之前请不要使用终极命令大力出奇迹虽然系统尽力防止你手贱但是防呆不防傻。 trash 命令第三方回收站
# 当你没有安装 RHEL 系列的额外软件仓库 epel 时请先安装此仓库如果你没有条件可以忽略这一步
[rootdemo ~]$ sudo dnf install epel-release # 安装 epel 软件仓库# 注意此软件需要你的系统中已存在 python 环境
# 如果你没有安装 epel 仓库则可以通过 https://pkgs.org 网站搜索和下载对应发行版的 trash-cli 软件包和依赖
[rootdemo ~]$ sudo dnf install -y trash-cli # 从 epel 仓库中安装 trash-cli 软件包# 对于离线安装此软件包的用户执行如下命令来离线安装
[testdemo ~]$ ls # 首先确定你已经拥有了如下两个软件包其中第一个为依赖包第二个为软件包
python3-unipath-1.1-16.el8.noarch.rpm trash-cli-0.21.4.18-2.el8.noarch.rpm
[testdemo ~]$ sudo rpm -ivh * # 执行命令安装软件包其中 * 表示当前文件夹下所有文件
[sudo] test 的密码
......[testdemo ~]$ trash file1 # 使用 trash 命令删除文件到回收站中
[testdemo ~]$ trash-list # 使用 tsash-list 命令查看回收站
2024-10-22 18:21:15 /home/test/file1
[testdemo ~]$ trash-restore file1 # 使用 trash-restore 来恢复文件请切换到需要恢复的文件夹中执行0 2024-10-22 18:21:15 /home/test/file1
What file to restore [0..0]: 0 # 查询当前文件夹下可以恢复的同名文件个数通过对应编号来选取需要恢复的文件
[testdemo ~]$ trash-rm file1 # 使用 trash-rm 来删除回收站中对应文件会删除所有同名文件
[testdemo ~]$ trash-empty 20 # 使用 trash-empty 来清空回收站20 表示删除过去 20 天的文件不加天数则删除所有注意trash 删除文件并不是真正的删除而是将文件移入了 ~/.local/share/Trash 的文件夹中在 ~/.local/share/Trash 文件夹中files 文件夹中记录了你删除的所有文件info 文件夹中记录了所删除文件的所有信息如 何时删除路径是哪里等。 建议如果你觉得命令太长用起来麻烦那么可以使用前面章节提到得 alias 命令来为其设置别名。 文件管理基础 之 “改”
文本文件内容的改动请参照 “vi 和 vim 怎么玩” 和 “Linux 文本处理三剑客” 章节的内容。
mv 命令修改路径 重命名
[testdemo ~]$ ls
dir1 file1
[testdemo ~]$ mv file1 dir1/ # 使用 mv 命令移动文件将文件 file1 移动到 dir1 目录下
# 注意若目标区域存在和当前需移动文件名相同的文件采用如上方式将会覆盖目标区域的同名文件[testdemo ~]$ mv -i file1 dir1/ # 使用 -i 参数如果出现意料之外的情况将会提示和 -f 完全相反
mv是否覆盖dir1/file1 n # 使用 n 或 y 来选择是否覆盖
[testdemo ~]$ mv -f file1 dir1/ # 将会强制覆盖 dir1/ 下的同名文件和 -i 完全相反
[testdemo ~]$ mv -n file1 dir1/ # 使用 -n 参数若 dir1/ 下存在同名文件将终止此次操作不会覆盖
[testdemo ~]$ mv -u file1 dir1/ # 使用 -u 参数和上面的 cp 命令 -u 参数功能一样
[testdemo ~]$ mv -b file1 dir1/ # 使用 -b 参数和上面的 cp 命令 -b 参数功能一样# mv 命令除了用来移动文件位置由于其不加任何参数时会覆盖相同位置的同名文件的特性因此也经常用来重命名文件
[testdemo ~]$ ls
a
[testdemo ~]$ mv a b # 将文件 a 重命名为 b
[testdemo ~]$ ls
b文件管理基础 之 “查”
ls 命令及其常用选项更多参数选项使用 --help 查看
[testdemo ~]$ ls # 使用 ls 命令查看目录中所有文件不包含隐藏 以 . 开头 文件
b
[testdemo ~]$ ls -a # 使用 -a 参数查看所有文件包含隐藏的其中 . 表示本级目录.. 表示上级目录
. .. b .bash_history .bash_logout .bash_profile .bashrc .local .viminfo
# 注意 如果你不想看到 . 和 .. 两个目录则可以使用 -A 选项[testdemo ~]$ ls -l # 使用 -l 参数查看所有文件的长格式
-rw-rw-r--. 1 test test 0 10月 22 19:13 b
-rw-rw-r--. 1 test test 0 10月 22 19:13 c
[testdemo boot]$ ls -lh # 使用 -h 参数以人类能读懂的方式查看文件的长格式如文件大小
总用量 166M
-rw-r--r--. 1 root root 192K 5月 10 2022 config-4.18.0-372.9.1.el8.x86_64
drwxr-xr-x. 3 root root 17 10月 21 15:55 efi
drwx------. 4 root root 83 10月 21 15:59 grub2
-rw-------. 1 root root 85M 10月 21 15:58 initramfs-0-rescue-a6af9cee7de24b79a602774b242f2e89.img
[testdemo ~]$ ls -lt # 使用 -t 参数将所有文件按照时间排序联合 -r 选项可以反转顺序
drwxrwxr-x. 2 test test 6 10月 22 19:18 d1
-rw-rw-r--. 1 test test 0 10月 22 19:13 b
-rw-rw-r--. 1 test test 0 10月 22 19:13 c
[testdemo boot]$ ls -lSh # 使用 -S 参数将所有文件按照大小排序联合 -r 选项可以反转顺序
总用量 166M
-rw-------. 1 root root 85M 10月 21 15:58 initramfs-0-rescue-a6af9cee7de24b79a602774b242f2e89.img
-rw-------. 1 root root 31M 10月 21 16:00 initramfs-4.18.0-372.9.1.el8.x86_64.img
-rw-------. 1 root root 26M 10月 21 16:01 initramfs-4.18.0-372.9.1.el8.x86_64kdump.img
[testdemo boot]$ ls -ld # 使用 -d 参数只查看当前目录情况
dr-xr-xr-x. 5 root root 4096 10月 21 16:01 .cd 命令及其常用选项等
[testdemo ~]$ cd dir1/ # cd 命令没有选项可选直接跟路径即可无论绝对路径还是相对路径# cd 可以跟着几个特殊路径符号
[testdemo dir1]$ cd . # . 表示当前目录表示进入到当前目录
[testdemo dir1]$ cd .. # .. 表示上一级目录表示进入到上一级目录
[testdemo dir1]$ cd ~ # ~ 表示当前用户家目录表示进入到用户家目录
[testdemo dir1]$ cd ~tom # 表示进入到用户 tom 的家目录
[testdemo dir1]$ cd - # 表示回退到上次所在的目录pwd 命令
[testdemo ~]$ pwd # 查看当前所在的绝对路径位置
/home/test
# pwd 存在两个参数 -L 、-P不过没啥用结果都一样find 命令查找一切
[testdemo ~]$ sudo find /etc -name sudoers # 使用 -name 参数指定在路径下需要查找的文件名称
/etc/sudoers # 命中到的结果
[testdemo ~]$ sudo find /etc -iname sUdoErs # 使用 -iname 参数不区分名称大小写
/etc/sudoers
[testdemo ~]$ find /dev -maxdepth 1 -type c # 使用 -type 参数查找指定类型的文件普通文件为 f其他和上面一样
/dev/vcsa6
/dev/vcs6
......
# 使用 -maxdepth [数字] 可以指定最大查找深度使用 -mindepth [数字] 可以指定从第几层开始查找
[testdemo ~]$ sudo find /boot -size 10M # 使用 -size 参数查找文件 10M 的文件 -10M 就是 10M 的文件
[sudo] test 的密码
/boot/initramfs-4.18.0-372.9.1.el8.x86_64.img
/boot/initramfs-0-rescue-a6af9cee7de24b79a602774b242f2e89.img
/boot/initramfs-4.18.0-372.9.1.el8.x86_64kdump.img
[testdemo ~]$ find ./ -mtime -1 # 使用 -mtime 参数查找在 1 天以内修改过的文件 1 表示在 1 天前修改过的文件1 表示刚好 1 天前修改过的文件
[testdemo ~]$ find ./ -perm 664 # 使用 -perm 参数查找权限为 664 的文件
./text
./f
[testdemo ~]$ find ./ -perm /urw # 支持字符串查找用户有读写权限的文件
./text
./f
[testdemo ~]$ find ./ -user test # 使用 -user 参数查找指定用户的文件
[testdemo ~]$ find ./ -group test # 使用 -group 参数查找指定组的文件
[testdemo dir1]$ find ./ -name file1 -exec cat {} \; # 使用 -exec 参数对查找到的文件执行 cat 命令
# -exec 后面根需要执行的命令{} 占位符表示 find 查到的文件 \; 是结束标记
[testdemo dir1]$ find ./ -name file -ok cat {} \; # 使用 -ok 参数功能和 -exec 一样唯一的区别就是自行命令前会提示cat ... ./file ? y # 使用 y 、n 来确定和否定执行命令 cat
111# 使用多条件查找条件优先级请看下面的警告部分
[testdemo dir1]$ find . -name *.txt -size 1M # 使用 and 查找以 .txt 结尾且大小 1M 的文件 -and 可以省略
[testdemo dir1]$ find . -name *.txt -o -name *.log # 使用 or 查找名称以 .txt 或 .log 结尾的文件
[testdemo dir1]$ find . -not -name *.txt # 使用 not 查找不以 .txt 结尾的文件警告使用多条件查找时的条件优先级顺序是依次递减 [] 、[ -not ] 、[ -a -and ] 、[ -o -or ] 若未指定条件运算符号则默认使用 -and 连接这也是 -and 可以省略的原因 cat 命令查看文件内容
[testdemo ~]$ echo hello,world text
[testdemo ~]$ cat text # 查看文件内容
hello,world
[testdemo ~]$ cat -n text # 使用 -n 参数查看内容时显示行号1 hello,world
[testdemo ~]$ cat -A text # 使用 -A 参数显示所有内容包含回车($)、、制表符(^|)等
hello,world$
# 没啥参数常用的其他参数使用 --help 查看用法cat 命令的缺点就是一次性打印所有内容当文件过大时翻页都难受这时就需要下面的交互式查看命令了 more 命令查看文件内容
[testdemo etc]$ sudo more /etc/sudoers # 选择一个长文件通过 more 打开因为查看的是受限的文件所以使用了 sudo
# 用的少基本不用需要其他参数使用 --help 查看用法more 中常用的交互式命令 q 或 Q 退出交互模式 Enter 向下翻页一行内容 Space 向下翻页一页内容 显示当先所处位置的行号 / 搜索指定字符 v 进入编辑模式要退出按 :q 退出按 :q! 强制退出 (不推荐使用因为几乎没用过) :f 在 v 模式里按下 :f 显示当前光标位置和文件名称 h 或 查看帮助 注意more 命令只能从前向后翻页居然不能反过来这就是个鸡肋命令不如下面的 less 命令 less 命令查看文件内容
[testdemo etc]$ sudo less /etc/sudoers # 查看文件
[testdemo etc]$ sudo less -N /etc/sudoers # 使用 -N 参数显示行号
[testdemo etc]$ sudo less -e /etc/sudoers # 使用 -e 参数在文件翻页完继续翻页后自动退出
[testdemo etc]$ sudo less -i /etc/sudoers # 使用 -i 参数打开的文件搜索字符串时将忽略大小写
[testdemo etc]$ sudo less -f /etc/sudoers # 使用 -f 参数强制打开某个文件如设备文件等
[testdemo etc]$ sudo less -o /etc/sudoers # 使用 -o 参数将 less 输出的内容追加到指定文件中使用 -O 则是覆写less 常用的一些交互命令 上下键上下滚动一行内容 左右键左右滚动一个页面的内容 Space下滚动一个页面 Enter 下滚动一行 Home滚动到顶部其他键End、PgUp等功能对应键的含义 / 搜索指定字符串 N 搜索字符串时切换到前一个匹配项 n 搜索字符串时切换到下一个匹配项 q 或 Q 退出交互界面 h 或 H 显示帮助 注意在滚动页面时还可以通过字母来滚动如 j 向下滚动一行但是由于很多字母都具有滚动效果很繁琐记不住所以一般就不推荐通过字符滚动 head 命令查看文件内容的开头
[testdemo ~]$ sudo head /etc/sudoers # 默认查看文件开头的 10 行内容
[testdemo ~]$ sudo head -3 /etc/sudoers # 以行模式查看文件开头的 3 行内容 等于使用 -n3
[testdemo ~]$ sudo head -c3 /etc/sudoers # 以字符模式查看文件开头 3 个字符tail 命令查看文件内容的结尾
[testdemo ~]$ sudo tail /etc/sudoers # 默认查看文件结尾的 10 行内容
[testdemo ~]$ sudo tail -3 /etc/sudoers # 以行模式查看文件结尾的 3 行内容 等于使用 -n3
[testdemo ~]$ sudo tail -c3 /etc/sudoers # 以字符模式查看文件结尾 3 个字符
[testdemo ~]$ sudo tail -f 5 /var/log/xx.log # 使用 -f 参数持续关注文件的结尾 5 行内容按ctrl c 可以退出关注nl 命令查看文件内容
[testdemo ~]$ sudo nl /etc/sudoers # 按行号查看文件内容效果等同于 cat -n 命令xxd 命令查看二进制文件数据
[testdemo ~]$ sudo xxd /etc/sudoers # 输出文件的十六进制内容。适合查看一些二进制文件
00000000: 2323 2053 7564 6f65 7273 2061 6c6c 6f77 ## Sudoers allow
00000010: 7320 7061 7274 6963 756c 6172 2075 7365 s particular use
......