最流行的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 auxps -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
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值