最流行的shell,bash详细介绍及入门
2020-08-30 11:07
996 查看
最流行的shell,bash介绍及入门
Bash
目前主流的Linux发行版都预装了bash,而且在Redhat系上sh是bash的软链接
命令窗口
登录后,首先看到的是命令提示符,一般是
登录名@主机名:当前路径$,例如
root@pc2020-virtual-machine:~#,如果最后是
$表示普通用户,
#表示root用户,环境变量
PS1控制命令提示符的样式。
一个命令窗口就是一个会话, 运行一个命令类似浏览器打开一个标签, 通过
jobs可以查看所有任务,
fg切换到前台,
bg切换到后台, 利用
nohup和
&可以运行与终端无关的后台任务, 利用
screen可以保持断线后任务继续运行, 用户退出后一般的任务都是与终端关联的, 终端没了, 任务也就自动结束了
快捷键
作为最常用的命令行环境,快捷键可以极大的提高效率。
TAB键:最常用的就是,可以自动补全文件和目录的路径,也可以补全命令
鼠标中键:复制粘贴是非常高频的动作,鼠标左键选中,中键粘贴,特别常用
Ctrl + L:屏幕上内容非常多时,清屏
Ctrl + U:清除光标到命令提示符的内容
Ctrl + K:清除光标到末尾的内容
Ctrl + A:不是全选,而是移动光标到行首
Ctrl + E:移动光标到行尾
Ctrl + C:取消命令的执行,实际是发送中断信号
SIGINT给进程,例如
ping是不会自动停止的,这个快捷键可以立即停止
Ctrl + R:搜索历史命令
!!:两个感叹号,重复执行上次的命令,
history记录着历史命令,
!2,倒数第二次运行的命令
!CMD:重复执行上次以CMD开头的命令,例如,
!git,执行以git开头的上一个命令
通配符
Linux的通配符特别简单, 只有三个,
*表示所有,
[0-9]表示范围中的一个,
?表示任意一个
表示范围的常用集合:
alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit
[^[:digit:]],表示匹配非数字
命令历史
history,显示命令历史,命令是历史记录,一般保存在
~/.bash_history,可通过
HISTFILE指定
HISTFILESIZE=2000,指定历史记录的条数为2000,默认为500条
HISTCONTROL=ignorespace:ignoredups,可配置忽略重复的和空格开头的命令,Ubuntu默认如此
HISTTIMEFORMAT="%F %T ",记录命令的执行时间
help history,显示帮助信息
history -c,清除所有历史记录
history -d 1,清除第一条
history -s xxx,向history中添加xxx
history -w,保存当前记录到历史记录文件
命令别名
help alias,查看帮助
alias,显示所有命令别名
alias gt ='git status',设置
git status的别名为gt,如果想要永久有效,需要配置到配置文件
~/.bashrc中
unalias gt,取消gt别名
\ls,使用ls命令本身执行
命令缓存
help hash,显示帮助
hash,显示所有命令缓存
hash -p /usr/local/ls ls,设定
ls的缓存路径为
/usr/local/ls
hash -r,清除所有缓存
hash -d ls,删除
ls的缓存
命令帮助
一般使用
xxx --help查看命令的简短帮助信息
type xxx, 显示xxx是内建命令, 还是外部命令
help xxx, 显示内建命令的帮助信息
man xxx, 显示xxx的man手册,
man man查看man命令的man手册
man crontab, 显示
crontab命令的man手册
man 5 crontab, 显示crontab文件的man手册
对于比较复杂的命令, 一般使用网络上的常用参数和参考示例, 见末尾
常用命令
which命令可检查命令是否存在,如果有则返回命令的路径
whereis, 不仅可以搜索命令,还可以搜索man文档和其他文件
文件目录命令
pwd, 打印当前工作目录
cd xxx, 切换到xxx目录,
~表示家目录,
-表示上一次的目录,
.表示当前目录,
..表示上级目录
ls, 列出目录中的文件,
ls -l, 长格式,
ls -a所有文件, 其他参数还有
tArRidh
stat xxx, 查看文件的元数据
chmod 644 xxx, 修改文件的权限, 文件默认权限为644, 表示本人可读写, 其他可读, 目录为755, R表示递归修改权限
chown xxx:xxx yyy, 修改文件的属主为xxx, 属组为xxx, 同样R可递归修改
rmdir xxx, 删除空目录
mkdir -p xxx/yyy/zzz, 递归创建目录
rm xxx, 删除文件, f参数可强制删除, r递归删除
cp -a xxx yyy, 归档复制文件, 即保留文件的时间属主权限等信息
mv xxx yyy, 移动文件, i参数可交互式移动, f可强制覆盖
文本命令
最常用的是less查看文本, vim修改文件
vi, 默认进入的是命令模式, ,
a可以追加并切换到插入模式,
o增加一行, 并进入插入模式,
i直接进入插入模式,
ESC键可退出插入模式,
:进入单行命令模式,
:wq保存退出,
:q!强制退出, 其他的编辑器还有gedit, 图形界面类似记事本, nano命令行的文本编辑器
Ubuntu中默认情况下, 使用兼容模式, 方向键不会移动光标, backspace没有删除的功能,
hjkl分别是左下上右键,
x键可以删除一个字符
加上下面两行配置可正常使用方向键和退格键, 可配置到
.vimrc中
set nocompatible set backspace=2
一般写代码需要缩进, 一般使用4个空格代表一个制表符, 常用phpMyAdmin的配置:
set expandtab set ts=4 set sts=4 set sw=4
但Linux kernel中却是
tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab
less -N xxx查看文本, 可以使用方向键和空格翻页, N可显示行号, q退出, 对于大文件的优化特别好, 帮助信息简单明了, 支持正则搜索, 支持标记和导出
其他命令还有:
cat tac more tail head tailf
tail -f xxx, 跟踪文件的内容
tail -c 200MB xxx > yyy, 导出文件的最后200MB到另一个文件,
+200MB,表示文件的前200MB
find . -name "*.mp4" -exec ls -l {} \;, 查找并列出文件
find . -name "*.mp4" | xargs ls -l, 利用xargs可以自定义参数的传递方式
fgrep xxx /var/log/secure, 文本中搜索指定的字符, 速度非常快, 没有使用正则
grep -E, 扩展的正则, 因为基本正则许多字符都需要转义, 常用扩展的,
grep -P, 使用perl的正则
grep -E '^(r[a-p]{2}t).*?\1.*?\1' /etc/passwd, 匹配root, 并随后出现两次
压缩命令
最常用的是tar,其次是gzip和zip
tar cvf xxx.tar.gz yyy, 创建压缩文件, 需要cd到上一层目录, gz表示使用gzip格式, xz表示使用bzip2格式
tar xf xxx.tar.gz, 解压缩文件
ls -l | gzip > xxx.gz, 表示将命令的输出结果压缩为文件
进程命令
ps aux或
ps -ef, 显示所有进程
pgrep, 搜索进程
kill -s SIGHUP xx, 给进程发送一个指定的信号
pkill xxx, 根据进程名结束进程
yum -y install lrzsz, 安装程序包
rpm -iv xxx.rpm, 安装rpm包
系统管理命令
shutdown -h now, 立即关机,
shutdown -h +5, 5分钟后关机,
shutdown -h 16:48, 指定时间关机,
shutdown -c, 取消关机
reboot, 立即重启
passwd, 设定当前用户密码,
passwd www, 设定www用户的密码, 此命令还有锁定用户等功能
su - www, 切换到www用户, 环境变量一并切换,
su - www -s /bin/bash -c ls使用www用户身份, 以bash执行ls命令
sudo -u www ls, 以www身份执行ls, 如果不指定用户, 则以root用户执行, 使用
visudo可以添加sudo权限
磁盘命令
free -mh, 查看内存容量
df -h, 查看磁盘容量
du -sh, 查看目录所占的磁盘大小
mount, 用于挂载磁盘
上传下载命令
最常用的就是sftp, 通过
get,
put上传下载, 但是多层转发比较麻烦, 还有通过ftp协议的lftp
其次就是
rz上传,
sz下载, 可以穿透多层主机, 比如通过Nginx主机ssh登录MySQL, 可以直接上传下载
rz -y, 覆盖上传
最后就是通过HTTP协议的curl和wget
wget默认自动302转发, 而curl默认不会
配置文件
配置文件分为两类,环境变量及登陆后的程序类profile,函数及别名类bashrc。
配置文件路径:
/etc/bashrc、
/etc/profile、
/etc/profile.d/、
~/.bashrc、
~/.bash_profile
交互式登陆,就是要输入用户名密码的登陆和
su - USERNAME等
依次加载:
/etc/profile.d/*.sh、
/etc/profile、
/etc/bashrc、
~/.bashrc、
~/.bash_profile
Ubuntu系依次加载:
/etc/bash.bashrc /etc/profile.d/test.sh /etc/profile /root/.bashrc /root/.profile
非交互式登陆,桌面中打开终端和
su USERNAME等
依次加载:
/etc/profile.d/*.sh、
/etc/bashrc、
~/.bashrc
Ubuntu系依次加载:
/etc/bash.bashrc /root/.bashrc
相关文章推荐
- Shell编程入门进阶之bash配置文件介绍
- 01 . Linux自动化Shell详细入门介绍及简单应用
- Shell编程入门:Linux解释器原理详细介绍
- Linux bash shell 入门
- Linux Bash Shell快速入门 在线教程
- JTable的入门详细介绍
- Wscript.Shell对象详细介绍
- SD卡中FAT32文件格式快速入门(图文详细介绍)【转】
- 史上最详细freemarker语法介绍及其入门教程实例
- Hibernate快速入门—新手Hibernate详细配置步骤介绍
- SD卡中FAT32文件格式快速入门(图文详细介绍)
- shell 脚本基础知识详细介绍(二)
- Android入门:广播发送者与广播接收者详细介绍
- Wscript.Shell 对象详细介绍
- Shell编程入门进阶之Bash Shell特性
- Linux Bash Shell 快速入门
- SHELL 编程入门与提高(二)bash/pdksh中的表达式比较
- BASH命令和SHELL脚本总结(1)入门篇
- Linux Bash Shell快速入门
- shapley值法初学入门详细介绍