一、Shell
在 Linux 系统中,Shell 是命令行解释器,即用户输入命令,然后 Shell 解释这些命令,根据不同的命令,给用户返回不同的结果。
Linux 支持的shell种类很多,目前比较流行 shell 有以下几种:Bourne Shell (sh),C Shell (csh),Korn Shell (ksh),Bourne Again Shell (bash)。
初识 Shell
shell 命令提示符的格式如下:
[root@localhost ~]#
- 用户名:root
- 主机名:localhost
- 当前路径:~当前用户的home目录
- 权限标志位:# 代表root,$ 代表普通用户
查看当前发行版可以使用的 shell。
[root@localhost Desktop]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
查看当前系统使用的 shell。
[root@localhost Desktop]# echo $SHELL
/bin/bash
二、命令
命令格式:命令 [选项] [参数]
注意:
- 选项通常以“-”开头,如果多个选项,可以合并在一起。-l -a 合并为 -la。
- 通常情况一行一条命令,如果一行放多条命令,使用分号“;”分隔。
- 如果命令比较长,第一行末尾“\”。
1、帮助命令
man
查看命令详细的帮助信息,按 q 退出。
man 命令名
help
查看命令的简单的帮助信息。
命令名 --help
info
可以阅读 info 格式的文件,用来查看帮助信息。info 文档都存放在 /usr/share/info 目录中。
info 命令名
2、目录操作
pwd
查看当前目录的路径。
[root@localhost Desktop]# pwd
/root/Desktop
cd
目录的切换:
- cd 绝对或者相对路径
- cd .. 上一级目录
- cd ~ 返回家目录
- cd - 返回刚才所在的位置
[root@localhost /]# cd opt
[root@localhost opt]# cd /root
[root@localhost ~]# cd lib
[root@localhost lib]# cd ~
[root@localhost ~]# cd -
/root/lib
[root@localhost lib]# cd ..
[root@localhost ~]#
ls
查看当前目录或指定目录下的所有文件,文件根据区分类型:
- 黑色 —— 普通文件
- 蓝色 —— 目录
- 绿色 —— 可执行文件
- 浅蓝色 —— 链接文件
- 红色 —— 压缩文件
- 黑底黄色 —— 设备文件
[root@localhost ~]# ls
anaconda-ks.cfg lib post-install Videos
Desktop Link to vmware-tools-distrib post-install.log vmvmware-tools-distrib?[D?
Documents Music Public VMwareTools-10.3.10-13959562.tar.gz
Downloads Pictures Templates vmware-tools-distrib
ls [option] [dirname|filename],常用选项如下:
- -a 所有的文件(包括隐藏文件)
- -l 列举详细信息(相当于 ll )
- -i 信息节点(inode)
- -R 递归显示目录中所有内容(包含子目录)
使用 ls -l 查找的内容如下:
[root@localhost ~]# ls -l
total 55176
-rw-------. 1 root root 935 Sep 15 19:38 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 Sep 15 19:40 Desktop
drwxr-xr-x. 2 root root 4096 Sep 15 19:40 Documents
drwxr-xr-x. 2 root root 4096 Sep 15 19:40 Downloads
drwxr-xr-x. 5 root root 4096 Sep 19 15:51 lib
lrwxrwxrwx. 1 root root 26 Sep 19 15:50 Link to vmware-tools-distrib -> /root/vmware-tools-distrib
drwxr-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 文件名/目录名。
[root@localhost tmp]# ls -ld d
-rw-r--r--. 1 zyx aa 25 Sep 21 13:09 d
mkdir
创建目录,-p 递归创建多级目录。
mkdir 目录名
rmdir
删除目录,-p 递归删除多级目录。
rmdir 目录名
3、查看文件
cat
显示文件所有内容,-n 编号,-b 编号(空行不编号)。
cat -n 文件名
more
分屏显示,enter 下一行,空格翻页。
more 文件名
less
分屏显示,pageup(上页),pagedown(下页);输入 :q 退出。
less 文件名
head
显示文件的前几行。
head -行数 文件名
tail
显示文件的后几行,下面的命令是显示前 10 行。
tail -行数 文件名
4、创建文件
cat
创建文件并输入文件内容,a 表示文件名,按回车后开始输入文件内容,按ctrl + d 结束文件输入。
cat > 文件名
通过其他文件创建文件,创建 文件3 文件内容为 文件2 和 文件1 的内容。
cat 文件名1 文件名2 > 文件名3
touch
创建一个空文件。
touch 文件名
echo
创建文件,并将引号内的内容添加到文件中。
echo "文件内容" > 文件名
5、复制、移动、重命名、删除文件和目录
cp
拷贝文件,-r:递归复制文件和目录。
cp 被拷贝文件名 拷贝后文件名
mv
将文件 a 重命名为 c。
mv a c
将文件 c 移动到目录 /tmp 中 ,如果该目录已存在同名的文件则提示是否覆盖,输入 yes/no 即可。
[root@localhost a1]# mv c /tmp
mv: overwrite `/tmp/c'? yes
将目录 /tmp/a2 移动目录 /tmp/a3 中(前提是目录 a3 已存在,若不存在则改名):
mv /tmp/a2 /tmp/a3
rm
删除文件或目录,参数:-f 直接删除,不询问;-i 询问删除;-r 删除目录(通常和-f配合使用)。
rm -rf 目录名
三、补充
1、快捷键
- tab:补全命令(文件名)
- 上下箭头:历史命令
- ctrl+l:清屏(和 clear 命令一样)
- ctrl+u:清除光标左侧内容
2、文件的命名规则
- 除了 / 之外,所有字符都合法;
- 特殊字符如:@、#、¥、&、()、+、-、空格等最好不要使用,当使用空格作为文件名时,执行命令会出错;
- 避免使用“.”作为文件名的第一个字符,因为在Linux系统中以“.”为开头的文件代表隐藏,系统将自动隐藏以“.”为开头的文件;
- Linux系统区分大小写,因此文件命名也区分大小写;
- Linux 文件后缀名无意义,但是为方便识别应定义后缀(.txt、.php等),定义后缀在大多数情况亦能将文件与目录区分;
- 文件位置最好设置在 Linux 专用目录下,如配置文件大多时候放置于/etc目录下;
- 文件夹及文件的命名尽量聚有其特定的含义;
- 三个特殊目录,“.”:代表当前目录,“..”:代表上一级目录,“/”:代表根目录。
3、管道
管道 | 使用该符号分隔两个命令,把前一命令的输出作为后一命令的输入。下面这条命令就是创建一个 bb 文件,文件内容与 aa 相同。
cat aa | cat > bb
4、命令别名
为命令起别名,alias 别名=‘详细的命令格式’。
alias ll='ls -l --color=auto'
5、重定向符号
>
把内容写入到,替换(原来内容就没有了)。>>
追加内容。
上文中,把 >
替换为 >>
就不再是覆盖内容,而是追加内容。例如下面的命令,如果 bb 文件存在,则将 aa 文件的内容追加到 bb 文件内容的末尾。
cat aa | cat >> bb
标题:Linux 中目录和文件的操作 —— Centos 6.5
作者:Yi-Xing
地址:http://47.94.239.232/articles/2020/09/19/1600500762396.html
博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!