声明!
本学习笔记以MacOS系统下的zsh Shell作为命令执行器和LINUX系统存在一些差异,但希望可以为初识Linux基础命令作为一定的参考!
Bash和zsh Shell的区别
两者都是shell的一种,本质都是命令解释器,zsh基本上可以兼容bash
Shell切换命令
chsh -s /bin/bash
chsh -s /bin/zsh
路径
路径分为两类:即绝对路径或者相对路径
绝对路径:从根目录开始
相对路径:以当前所在路径作为参考
(./) =>表示 当前目录
(../) =>表示 上一级目录
(~)=>表示
Linux常用命令
需要注意:Linux下以.开头的文件/目录为隐藏文件
man获得帮助信息(manual)
基本语法:
man [命令或者配置文件] (功能描述:获得帮助信息)
ls命令
基础语法:
ls [选项] [文件/路径]
选项: -a 功能:全部文件,包含隐藏文件
-l 功能: 长数据串列出,包含文件的属性与权限等等数据,(bash常用)等价于"'ll"
ls -a
yy@deMacBook-Pro / % ls -a
. System opt
.. Users private
ls -l
yy@deMacBook-Pro /bin % ls -l
-r-xr-xr-x 1 root wheel 1326688 10 18 20:36 bash
-rwxr-xr-x 1 root wheel 135408 10 18 20:36 cat
-rwxr-xr-x 1 root wheel 136960 10 18 20:36 chmod
-rwxr-xr-x 1 root wheel 152800 10 18 20:36 cp
pwd 命令
基础语法:pwd
作用:用于显示当前目录或者文件的绝对路径
yy@deMacBook-Pro ~ % cd /bin
yy@deMacBook-Pro /bin % pwd
/bin
cd 切换目录
基本语法 cd [文件路径]
cd 默认切换家目录
yy@deMacBook-Pro /etc % pwd
/etc
yy@deMacBook-Pro /etc % cd
yy@deMacBook-Pro ~ %
cd ~
普通用户:切换到家目录
yy@deMacBook-Pro ~ % pwd
/Users/yy
mkdir 创建目录
基本语:mkdir [选项] 目录名
选项:
1.-p 递归创建多个目录
yy@deMacBook-Pro download % mkdir -p g/h/a
yy@deMacBook-Pro a % pwd
/Users/yy/download/g/h/a
2.-m 手动设置权限
3. -v 每次创建目录都显示信息
rmdir 删除空目录
特别注意rmdir只能删除空目录,若要删除非空目录需要使用rm删除命令
基本语法 : rmdir [参数] 目录
选项:
-p: 递归删除子目录
错误示范:
yy@deMacBook-Pro download % rmdir -pv ./g
rmdir: ./g: Directory not empty
该提示:该文件不为空目录,所以不能使用rmdir命令
-v:显示删除信息
touch 创建文件
需要注意:touch和vim创建文件的区别,vim是一个文本编辑器,且touch是可以创建空文件的
基本语法: touch [选项] 文件名
yy@deMacBook-Pro download % touch abc
cp 复制命令
基本语法 cp [选项] 源文件 目标路径
选项:
-f 如果目标文件已存在,直接覆盖原文件
-r 递归复制文件和目录
-p 保留源文件或目录的所有属性
yy@deMacBook-Pro o % ls
CMakeLists.txt cmake-build-debug main.c
yy@deMacBook-Pro o % cd ../
yy@deMacBook-Pro download % cp -r ./o ./convent
yy@deMacBook-Pro download % cd ./convent
yy@deMacBook-Pro convent % ls
CMakeLists.txt main.c o
cmake-build-debug nnnnn
rm 删除目录或者文件
基本语法 : rm [选项] 文件路径
默认删除是 rm -i 文件 会交互式询问的删除
选项:
-i 询问是否删除
-r 递归删除目录所有内容
-f 强制执行删除操作
-v 显示指令的执行过程
一定注意不要使用 rm -rf /*
mv 移动文件或者重命名
移动文件基本语法;mv [选项] 源文件路径 目标文件路径
注意该命令的移动文件可以理解为剪切文件
yy@deMacBook-Pro sh_scripts % ls
abc hello.zshrc
yy@deMacBook-Pro sh_scripts % mv ./abc ../
yy@deMacBook-Pro sh_scripts % ls
hello.zshrc
重命名文件基本语法: mv [选项] 文件原名称 文件新名称
yy@deMacBook-Pro 本地代码 % ls
Java代码 SQL代码 abc sh_scripts 前端代码
yy@deMacBook-Pro 本地代码 % mv abc one
yy@deMacBook-Pro 本地代码 % ls
Java代码 SQL代码 one sh_scripts 前端代码
cat 查看文件内容
作用:查看文件内容(不该内容只查看)
cat [选项] [文件/文件路径]
more 文件内容分屏查看器
作用:more指令是vi的文本过滤器
基本语法: more 查看的文件
less查看文件
基本语法: less 需要查看的文件
操作说明:
1 .空格键:向下翻一页
2.q 离开less程序
echo命令
主要作用:输出内容到显示台
echo [选项] [输出内容]
选项:-e 作用:支持转移字符
使用"\"进行转译
find查找命令
基本语法 find 搜索范围 选项
Shell
Shell概述:
Shell 是命令解释器,它接收用户应用程序/命令,然后调用操作系统内核,也是一门脚本语言
在centos中使用bash作为默认shell,而在新版Mac系统中使用zsh作为默认shell
查看系统默认shell命令
echo $SHELL (注意一定要大写)
yy@deMacBook-Pro ~ % echo $SHELL
/bin/zsh
注意shell脚本文件后缀名采用.sh
且头行声明采用什么shell
#!/bin/bash
yy@deMacBook-Pro sh_scripts % vim hello.sh
yy@deMacBook-Pro sh_scripts % bash hello.sh
hello world
执行脚本
注意:采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x)
bash 脚本文件路径
yy@deMacBook-Pro sh_scripts % bash hello.sh
hello world
source 脚本文件路径
注意source和“.”都是shell内嵌命令
source是当前当前shell进行执行
"."开一个子shell进行执行
yy@deMacBook-Pro sh_scripts % source hello.sh
hello world
yy@deMacBook-Pro sh_scripts % type source
source is a shell builtin
在脚本路径前面加上“.“
要注意区别“. "脚本路径和路径前的.
. hello.sh
//改意思为. 命令启动脚本
source ./hello.sh
//当前的"."表示当前路径
开子shell和不开子shell的区别在于,环境变量的继承关系,在子shell设置当前变量父shell是不可以见的
$ 是取变量值的意思
变量
变量分为全局变量和局部变量,用“”定义字符串
全局变量
作用域:当前shell和子shell都可见
常用系统预定义变量
$HOME ,$PWD,$SHELL,$USER
自定义变量
语法:变量名=变量值,注意=前后不能存在空格
撤销变量:unset 变量名
局部变量
只能在当前shell可见
环境变量
环境变量的作用:可以被多个文件使用使用变量
设置环境变量的基本语法:
export 变量名=变量值(功能描述:将shell变量输出为环境变量/全局变量)
source 配置文件(功能描述:将修改的配置信息立刻生效)
echo $变量名 (功能描述:查询环境变量的值)