Linux命令行与Shell脚本编程

一、bash shell基本命令

1、cd destination

进入目录,可以是相对路径,也可以是绝对路径,如果后面没有参数,则直接跳回主目录

2、pwd

显示当前目录

3、.

表示当前目录

4、..

表示当前目录的父目录

5、ls

显示当前目录下的文件和目录,会按照列顺序按字母排序
-F参数能区分文件和目录
-a参数会显示当前目录下的所有文件,包含隐藏文件
-R表示递归选项,能够递归的列出当前目录下的所有目录和文件
-l参数会产生长列表格式的输出,包含了目录中每个文件的更多相关信息包含:

  • 文件类型,比如目录(d)、文件(-)、字符型文件(c)或块设备(b)
  • 文件的权限
  • 文件的硬链接总数
  • 文件属主的用户名
  • 文件属组的组名
  • 文件的大小(以字节为单位)
  • 文件的上次修改时间,如果想查看访问时间,需要再加参数--time=atime
  • 文件名或目录名

显示的时候可以使用通配符,?代表一个字符 *代表零个或多个字符
ls -l fall 只显示fall文件
ls -l f?ll
ls -l f*ll

6、touch file

创建空文件或者改变文件的修改时间,如果只是想改变文件的访问时间可用-a参数

7、cp source destination

复制文件
如果目标文件已经存在,cp命令并不会提醒,所以需要加上-i选项,强制shell访问是否需要覆盖已有文件。
destination也可以是一个目录。
如果source是其他目录的文件,要复制到当前目录中,那destination可以使用单点符.来简化命令
-R递归复制整个目录的内容

8、制表键自动补全

制表键自动补全允许你在输入文件名和目录名时按一下制表键,让shell帮忙将内容补充完整。
如果输入的文件名或者目录名有多个匹配的选项,那按一下是不会自动补全的,再按一下,就会列出以你输入的为开头的匹配的文件名或目录名。

9、ln

链接文件,链接第目录中指向文件真实位置的占位符,在linux中有两种不同类型的文件链接

  • 符号链接 符号链接是指一个实实在在的文件,这个文件指向另外一个文件,这两个文件彼此的内容不相同,使用ln命令和-s来创建 ln -s data_file sl_data_file表示符号链接sl_data_file链接到data_file上的一个符号链接,链接文件和源文件是两个完全不同的文件,他们的文件大小和内容不相同
  • 硬链接 硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置,但是他们从根本上而言就是同一个文件,引用硬链接文件就等同于引用源文件。直接使用ln命令创建硬链接

同一个文件可以拥有多个链接,但是千万别创建链接文件的链接,这会形成混乱的链接链,不仅容易断裂,还会造成各种麻烦。

10、mv

移动(moving),重命名文件或目录 或者 移动文件或目录
mv fall fzll 将fall文件重命名为fzll
mv fall Pictures/ 将fall文件移动到Picture文件夹下, -i提示是否覆盖
mv fall Pictures/pzll 将fall文件移动到Picture文件夹下并且重命名为fzll

11、rm

删除文件(removing) -i参数提示是不是要真正的删除文件,因为bash shell中没有回收站或垃圾箱,一旦删除就无法找回。 rm -i fall

12、mkdir rmdir

创建目录 mkdir new_dir
如果要创建多级目录,需要加入-p参数 mkdir new_dir/sub_dir/under_dir
删除目录 rmdir 只删除空目录,如果目录下面有文件,则会报错
如果要删除整个目录文件则使用命令 rm -R new_dir

13、file cat

file test1 查看文件类型
cat test1 查看文件内容 -n所有行显示行号 -b只有文本的行才显示行号
tail test1查看文件最后几行的内容,默认最后10行,-n可以指定最后几行 -f是tail命令的一个突出特性,它允许你在其他进行使用该文件时查看文件的内容,tail命令会保持活动装填,并不断显示添加到文件中的内容,这是实时监测系统日志的绝妙方式。
head test1查看文件开头那些行的内容,默人10行,也支持-n参数。

14、gzip gzcat gunzip

gzip压缩文件
gzcat 查看压缩过的文本文件内容
gunzip解压文件

二、环境变量

1、环境变量

bash shell用一个叫做环境变量(environment variable)的特性来存储有关shell会话和工作环境的信息。这项特性允许你在内存中存储数据,以便程序或shell中运行的脚本能轻松访问他们。

在bash shell中,环境变量分为两类

  • 全局变量
  • 局部变量

全局变量对于shell会话和所有生成的子shell都是可见的。系统环境变量基本上都是使用大写字母。要查看全局变量,使用envprintenv命令

局部环境变量只能在定义它们的进程中可见。

2、用户自定义变量

xueshanshandeMacBook-Pro:~ xueshanshan$ echo $temp

xueshanshandeMacBook-Pro:~ xueshanshan$ temp=hello
xueshanshandeMacBook-Pro:~ xueshanshan$ echo $temp
hello

如果要给变量赋值一个含有空格的字符串值,必须用单引号来界定字符串的首和尾
变量名、等号和值之间没有空格,这一点非常重要
如果出现了空格,bash shell会把它当成一个单独的命令

3、设置和删除环境变量

设置使用export命令 export temp
删除使用unset命令 unset temp

在涉及变量名时,什么时候该用 , 什 么 时 候 不 该 用 , 有 点 让 人 摸 不 着 头 脑 。 记 住 一 点 就 行 了 : 如 果 要 使 用 变 量 就 加 ,什么时候不该用,有点让人摸不着头脑。记住一点就行了:如果要使用变量就加 使,比如echo,如果要操作变量,不用$,比如赋值。

3、设置PATH环境变量

猜你喜欢

转载自blog.csdn.net/qq_33666539/article/details/100583826