一、Shell

  在 Linux 系统中,Shell 是命令行解释器,即用户输入命令,然后 Shell 解释这些命令,根据不同的命令,给用户返回不同的结果。

  Linux 支持的shell种类很多,目前比较流行 shell 有以下几种:Bourne Shell (sh),C Shell (csh),Korn Shell (ksh),Bourne Again Shell (bash)。

初识 Shell

  shell 命令提示符的格式如下:

1[root@localhost ~]#
  • 用户名:root
  • 主机名:localhost
  • 当前路径:~当前用户的home目录
  • 权限标志位:# 代表root,$ 代表普通用户

  查看当前发行版可以使用的 shell。

1[root@localhost Desktop]# cat /etc/shells
2/bin/sh
3/bin/bash
4/sbin/nologin
5/bin/dash
6/bin/tcsh
7/bin/csh

  查看当前系统使用的 shell。

1[root@localhost Desktop]# echo $SHELL
2/bin/bash

二、命令

  命令格式:命令 [选项] [参数]

注意:

  1. 选项通常以“-”开头,如果多个选项,可以合并在一起。-l -a 合并为 -la。
  2. 通常情况一行一条命令,如果一行放多条命令,使用分号“;”分隔。
  3. 如果命令比较长,第一行末尾“\”。

1、帮助命令

man

  查看命令详细的帮助信息,按 q 退出。

1man 命令名

help

  查看命令的简单的帮助信息。

1命令名 --help

info

  可以阅读 info 格式的文件,用来查看帮助信息。info 文档都存放在 /usr/share/info 目录中。

1info 命令名

2、目录操作

pwd

  查看当前目录的路径。

1[root@localhost Desktop]# pwd
2/root/Desktop

cd

  目录的切换:

  • cd 绝对或者相对路径
  • cd .. 上一级目录
  • cd ~ 返回家目录
  • cd - 返回刚才所在的位置
1[root@localhost /]# cd opt
2[root@localhost opt]# cd /root
3[root@localhost ~]# cd lib
4[root@localhost lib]# cd ~
5[root@localhost ~]# cd -
6/root/lib
7[root@localhost lib]# cd ..
8[root@localhost ~]# 

ls

  查看当前目录或指定目录下的所有文件,文件根据区分类型:

  • 黑色 —— 普通文件
  • 蓝色 —— 目录
  • 绿色 —— 可执行文件
  • 浅蓝色 —— 链接文件
  • 红色 —— 压缩文件
  • 黑底黄色 —— 设备文件
1[root@localhost ~]# ls
2anaconda-ks.cfg  lib                           post-install      Videos
3Desktop          Link to vmware-tools-distrib  post-install.log  vmvmware-tools-distrib?[D?
4Documents        Music                         Public            VMwareTools-10.3.10-13959562.tar.gz
5Downloads        Pictures                      Templates         vmware-tools-distrib

  ls [option] [dirname|filename],常用选项如下:

  • -a 所有的文件(包括隐藏文件)
  • -l 列举详细信息(相当于 ll )
  • -i 信息节点(inode)
  • -R 递归显示目录中所有内容(包含子目录)

  使用 ls -l 查找的内容如下:

1[root@localhost ~]# ls -l
2total 55176
3-rw-------. 1 root root      935 Sep 15 19:38 anaconda-ks.cfg
4drwxr-xr-x. 2 root root     4096 Sep 15 19:40 Desktop
5drwxr-xr-x. 2 root root     4096 Sep 15 19:40 Documents
6drwxr-xr-x. 2 root root     4096 Sep 15 19:40 Downloads
7drwxr-xr-x. 5 root root     4096 Sep 19 15:51 lib
8lrwxrwxrwx. 1 root root       26 Sep 19 15:50 Link to vmware-tools-distrib -> /root/vmware-tools-distrib
9drwxr-xr-x. 2 root root     4096 Sep 15 19:40 Music

  开头是由 10 个字符构成的字符串。其中第一个字符表示文件类型:

  • -:普通文件
  • d:目录
  • l:符号链接
  • b:块设备文件
  • c:字符设备文件

  后面 9 个字符表示文件的访问权限,分为 3 组,每组 3 位。第一组表示文件属主的权限。第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表示对文件的读、写和执行权限。r:可读取、w:可写入、x:可执行、-:没有设置权限。

  后面的数字表示:该文件(文件夹)中的文件数;root 表示:该文件属于root用户,文件的所属者。root:该文件属于root组,文件的所属组;文件的大小;修改日期;文件名。

  查看指定文件/目录的详细信息,ls -ld 文件名/目录名。

1[root@localhost tmp]# ls -ld d
2-rw-r--r--. 1 zyx aa 25 Sep 21 13:09 d

mkdir

  创建目录,-p 递归创建多级目录。

1mkdir 目录名

rmdir

  删除目录,-p 递归删除多级目录。

1rmdir 目录名

3、查看文件

cat

  显示文件所有内容,-n 编号,-b 编号(空行不编号)。

1cat -n 文件名

more

  分屏显示,enter 下一行,空格翻页。

1more 文件名

less

  分屏显示,pageup(上页),pagedown(下页);输入 :q 退出。

1less 文件名

head

  显示文件的前几行。

1head -行数 文件名

tail

  显示文件的后几行,下面的命令是显示前 10 行。

1tail -行数 文件名

4、创建文件

cat

  创建文件并输入文件内容,a 表示文件名,按回车后开始输入文件内容,按ctrl + d 结束文件输入。

1cat > 文件名

  通过其他文件创建文件,创建 文件3 文件内容为 文件2 和 文件1 的内容。

1cat 文件名1 文件名2 > 文件名3

touch

  创建一个空文件。

1touch 文件名

echo

  创建文件,并将引号内的内容添加到文件中。

1echo "文件内容" > 文件名

5、复制、移动、重命名、删除文件和目录

cp

  拷贝文件,-r:递归复制文件和目录。

1cp 被拷贝文件名 拷贝后文件名

mv

  将文件 a 重命名为 c。

1mv a c

  将文件 c 移动到目录 /tmp 中 ,如果该目录已存在同名的文件则提示是否覆盖,输入 yes/no 即可。

1[root@localhost a1]# mv c /tmp
2mv: overwrite `/tmp/c'? yes

  将目录 /tmp/a2 移动目录 /tmp/a3 中(前提是目录 a3 已存在,若不存在则改名):

1mv /tmp/a2 /tmp/a3

rm

  删除文件或目录,参数:-f 直接删除,不询问;-i 询问删除;-r 删除目录(通常和-f配合使用)。

1rm -rf 目录名

三、补充

1、快捷键

  • tab:补全命令(文件名)
  • 上下箭头:历史命令
  • ctrl+l:清屏(和 clear 命令一样)
  • ctrl+u:清除光标左侧内容

2、文件的命名规则

  1. 除了 / 之外,所有字符都合法;
  2. 特殊字符如:@、#、¥、&、()、+、-、空格等最好不要使用,当使用空格作为文件名时,执行命令会出错;
  3. 避免使用“.”作为文件名的第一个字符,因为在Linux系统中以“.”为开头的文件代表隐藏,系统将自动隐藏以“.”为开头的文件;
  4. Linux系统区分大小写,因此文件命名也区分大小写;
  5. Linux 文件后缀名无意义,但是为方便识别应定义后缀(.txt、.php等),定义后缀在大多数情况亦能将文件与目录区分;
  6. 文件位置最好设置在 Linux 专用目录下,如配置文件大多时候放置于/etc目录下;
  7. 文件夹及文件的命名尽量聚有其特定的含义;
  8. 三个特殊目录,“.”:代表当前目录,“..”:代表上一级目录,“/”:代表根目录。

3、管道

  管道 | 使用该符号分隔两个命令,把前一命令的输出作为后一命令的输入。下面这条命令就是创建一个 bb 文件,文件内容与 aa 相同。

1cat aa | cat > bb

4、命令别名

  为命令起别名,alias 别名=‘详细的命令格式’。

1alias ll='ls -l --color=auto'

5、重定向符号

  • > 把内容写入到,替换(原来内容就没有了)。
  • >> 追加内容。

  上文中,把 > 替换为 >> 就不再是覆盖内容,而是追加内容。例如下面的命令,如果 bb 文件存在,则将 aa 文件的内容追加到 bb 文件内容的末尾。

1cat aa | cat >> bb

标题:Linux 中目录和文件的操作 —— Centos 6.5
作者:Yi-Xing
地址:http://zyxwmj.top/articles/2020/09/19/1600500762396.html
博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!