Linux的Shell
1.Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户命令并把它们送入内核去执行。
2.实际上Shell是一个命令解释器,它解释由用户输入的命令并且把他们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由Shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序具有同样的效果。(百度)
3.查看Shell方法:echo $SHELL
4.Shell提示符标识了命令行的开始:
- 普通用户以"$"作为Shell提示符
- 根用户以”#“作为提示符
4.Shell命令提示符格式:
username@hostname direction$
用户名 主机名 目录名 - username:用户名,显示当前登陆用户的账户名
- hostname:主机名,显示登陆的主机名
- direction:目录名,显示当前所处的路径,当在根目录下显示为“/”,当在用户主目录下显示为“~”。
5.两种类型命令: - Shell内部命令
-
外部应用程序命令
6.命令格式:
command [option] [arguments]
command:执行的命令
[]:表示选项或参数可有可无,即参数并非必须
option:命令的选项,说明对命令的要求
arguments:命令的参数,描述命令作用的对象
eg: ls -l /home
7.Shell命令补全:
用Tab键输入命令自动补齐
eg:在命令行下,只需输入例如m,再连续按两次Tab键,系统将列出所有以m开头的命令
Linux基本命令:
1.基本简单命令:
ls:查看当前文件夹下所有内容
ls -l:查看当前文件夹下所有内容的详细信息
-rw-rw-r--: -表示文件
drwxrwxr-x: d表示文件夹
cd:进入一个文件夹
cd / :表示进入根目录
2.主要文件夹:
/home: 存放除了root用户以外用户的私有文件夹
/etc:存放配置文件
/usr:安装文件
/root:root用户的私有文件夹,root是超级用户
3.帮助命令
man:
ps:(1)Space键可以显示下一屏的文本信息
(2)q键退出
$man ls:查看man手册,显示系统手册页中的内容,内容大多数是对命令的解释信息
man l echo 或 man echo:查看echo的命令
man bash :查看Linux内部命令(使用手册)
help cd:查看内部help命令,直接使用help后接要查询的命令
info:
info是一个基于菜单的超级文本系统
info bash :使用信息页info COMMAND
info ls:查看手册
PS:(1)?键可以列出info窗口中的相关命令
(2)Space键可以进行滚动浏览
(3)q键是退出
help:
命令接收此参数
ls --help:查看help相关的命令
PS:help最简单,info信息最详尽,man介于两者之间
Linux中的目录:
“/ ”:表示根目录
“." :工作目录(当前目录)
”..“:父目录
PS:(1)用pwd命令查询当前工作目录路径。
(2)用户可以通过一个"~" 字符来引用自己的主目录(cd~)
文件路径:
路径中间用”/“分开
绝对路径:/home/aaa/hello.txt
相对路径:
./hello.txt
bin/cp
../home/aaa
文件与目录操作命令:
ls:显示文件名称和属性等
mkdir/rmdir:创建或删除一个目录
cp:将给出的文件或目录复制到另一个文件或目录中
mv:为文件或目录改名或将文件由一个目录移入另一个目录中
rm:删除一个目录中的一个或多个文件或目录
cat:连接并显示指定的一个和多个文件的有关信息
tac:从最后一行开始显示文件
more/less:用于在终端按屏显示文本文件
head/tail:用于显示文本文件的前几行或后几行
touch:用于创建一个新文件
nl:显示时同时输出行号
ln:为某一个文件在另一个位置建立一个符号连接
ls
作用:显示目录内容
格式:ls [选项][目录或文件]
ls -la :列出所有文件包括隐含文件
ls -dl :仅查看目录属性
ls -R :递归显示子目录的文件
ls/home/aaa:查看/home/aaa文件信息
ls -l:查看文件
ls -ld:查看路径
ls -lh :查看文件属性
- 对上图第一行进行分析:
-rw-rw-r--:权限
1:引用计数
ubuntu:所有者
ubuntu:所属组
1815:大小
Mar 30 17:24:创建时间
a1bak.txt:文件名 - 第1个字母:代表文件类型
第2~4字母:代表用户的权限
第5~7字母:代表用户组的权限
第8~10字母:代表其他的用户权限 - 各权限如下所示:
r:读
w:写
x:执行 (对于目录,表示进入权限)
ps:linux文件系统不是根据后缀来执行文件的,而是根据此文件有没有执行权限。 - 在Linux常见的文件类型有七种:
1.普通文件(-):
常用ls -lh查看某文件属性,类似 -rw-r--r--,第一个符号为-,这样的文件在Linux中就是普通文件,这类文件一般用于一些相关的应用程序创建,比如图像工具,文档工具,归档工具等,这类文件是Linux中最多的一种文件,包括纯文本文件(ASCII)二进制文件(binary)数据格式的文件(data).各种压缩文件。这类文件的删除方式用rm命令。
2.目录文件(d):
有类似drwxr-xr-x 这样的文件就是目录,第一个字符是d,用#cd命令进入,创建目录的命令可以用mkdir命令,或cp命令,cp可以把一个目录复制为另一个目录,删除用rm或rmdir命令。
3.字符设备文件(c):
character device。即串行端口的接口设备,例如键盘,鼠标等,第一个字符为c,这些文件是和内核相关联的,一般不自己创建,用mknode创建,用rm创建。
4.块设备文件(b):
block device。就是存储数据以供系统存取的接口设备,简单而言就是硬盘,例如一号硬盘的代码是/dev/hda1等文件,第一个属性为(b)。
5.套接字文件(s):
socket。这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s],最常在 /var/run目录中看到这种文件类型.
6.管道文件(p):
pipe。它主要的目的是,解决多个程序同时存取一个文件所造成的错误。
7.链接文件(l):
symbolic link.类似Windows下面的快捷方式。
mv:
作用:移动文件(目录), 修改文件名(目录名)
格式:mv [options] 源文件或目录 目标文件或目录
- -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
- -f: 在mv操作要覆盖某已有的目标文件时不给任何指示;
eg:
1.将/usr/cbu中的所有文件移到当前目录(用“.”表示)中:
$ mv /usr/cbu/ * .
2.将文件cjh.txt重命名为wjz.txt:
$ mv cjh.txt wjz.txt
cp:
作用:复制文件或目录
语法: cp [选项] 源文件或目录 目标文件或目录
- -a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录。
- -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
- -f 覆盖已经存在的目标文件而不提示。
- -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
- -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
- -l:不复制文件,只是生成链接文件。
- -R/-r: 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名
eg:
使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下,输入如下命令:
$ cp –r test/ newtest
mkdir:
作用:创建一个目录
格式:mkdir [选项] dirname
要求:创建目录的用户在当前目录中(dir-name的父目录中)具有写权限,并且dirname不能是当前目录中已有的目录或 文件名称。
- -m 对新建目录设置存取权限。也可以用chmod命令设置。
- -p 可以是一个路径名称。此时若路径中的某些目录尚不存在, 加上此选项后, 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
eg:
在工作目录下,建立一个名为 AAA 的子目录 :
mkdir AAA
在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。)
mkdir -p BBB/Test
rm:
作用:删除一个文件或目录
格式:rm [参数] 文件名或目录名
- -r 递归删除,通常跟d结合,删除一个完整目录及其子目录
- -i 删除一个文件
- -f 不询问,直接删除
eg:
删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:
rm test.txt
rm:是否删除 一般文件 "test.txt"? y
rm homework
rm: 无法删除目录"homework": 是一个目录
rm -r homework
rm:是否删除 目录 "homework"? y
删除当前目录下的所有文件及目录,命令行为:
rm -r *
PS:文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。
rmdir:
作用:删除空目录
格式:rmdir [选项] dirname
- -p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。
eg:
将工作目录下,名为 AAA 的子目录删除 :
rmdir AAA
在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除:
rmdir -p BBB/Test
PS:一个目录被删除之前必须是空的。rm - r命令可代替 rmdir。
(此文章仅作为个人学习笔记使用,如有错误欢迎指正~)