Linux之更好的使用Bash
http://www.awolau.com/linux/start-bash.html#more
接触过Linux的童鞋肯定会知道,在Linux操作系统环境下,命令行操作有时候给我们带来极大的帮助,对于命令行“狂热者”们而言,相信Bash命令已经成为他们日常操作不可或缺的一部分。今天给大家介绍一些Bash相关的知识,让初学者认识bash,也希望能让老手更加高效利用bash命令。
Bash
关于Bash、Shell
Bash是一个为GNU计划编写的Unix shell,也是目前大多数Linux发行版采用的Shell。Shell英文翻译为“贝壳”,顾名思义,Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。 Bash是linux默认的shell,bash 的东西非常的多,包括变数的设定与使用、 bash 操作环境的建置、资料流重导向的功能,掌握一些shell操作技巧,还有那好用的管线命令是很有必要的。
基本Bash命令
pwd命令
pwd
:显示当前工作路径。
ls列表文件命令
ls [-adlsht] [PATH]
:列出当前[PATH]目录下的非隐藏文件-a
显示所有文件-d
显示目录本身-l
以列表形式显示详细信息-s
显示文件大小,单位块-h
带度量单位显示-t
按最新修改时间显示
cd切换目录命令
cd [PATH]
:切换到PATH目录..
表示上一级目录;.
表示当前目录;/
表示根目录,也即Linux下的顶级目录;~
表示当前用户主目录,例如root用户的~
为/root
,achao用户的~
为/home/achao
案例使用如下:
[root@www home]# pwd |
cp复制命令
cp FILENAME1 FILENAME2
:复制FILENAME1到FILENAME2cp -r DIR1 DIR2
:复制DIR1目录到DIR2目录
cp命令后面跟的参数说明:-a
:–archive,与同时指定 DIR1 这三个选项效果一样,用于复制整个目录,包括目录中的子目录等都递归的复制,而且还要保持文件的访问模式,所有者,时间戳等属性与原文件一样。-f
:表示覆盖已经存在的目标文件而不提示-i
:参数i和f相反,表示在覆盖目标文件之前将给出提示要求用户确认,回答y时目标文件将被覆盖,是交互式拷贝.
mv移动重命名命令
mv [opitons] 源文件或目录 目标文件或目录
[options]主要参数-i
:交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件.-f
:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。mv hello ../
将hello目录或者文件移动上一级.
mkdir创建目录命令
mkdir [选项] 目录
参数说明:-m
: —mode=模式,如755,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask-p
: —parents 递归创建目录,可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
rm删除命令
rm [选项] 文件
参数说明:-f
: —force 忽略不存在的文件,从不给出提示。-i
: —interactive 进行交互式删除-r
: -R, —recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
chown更改所有者命令
chown [-cfhvR] user[:group] file...
参数说明:-c
: 若文件拥有者确实已更改,才显示其更改动作-f
: 若无法更改,也不要显示错误信息-h
: 只对link文件进行更改,而非该link真正指向的档案-v
: 显示拥有者变更的详细资料-R
: 对目录下所有文件文件夹递归更改user:[group]
: 指的是更改为group组中的user用户
eg:chown -R fenix:root *
:表示将当前目录下所有文件和文件夹改为root组的使用者fenix
chmod更改权限命令
chmod [-cfvR] mode file...
参数说明:
mode : 权限设定字串,格式如下 : [ugoa…][[+-=][rwxX]…][,…],其中
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
- 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
Bash中常用的快捷键
删除快捷键
Ctrl
+l
:清屏Ctrl
+k
:清除光标后至行尾的内容Ctrl
+u
:清除光标前至行首的内容Ctrl
+h
:删除光标前一个字符Ctrl
+w
:删除光标前一个单词Ctrl
+w
:粘贴或恢复上次的删除Alt
+r
:撤销当前行的所有内容
编辑快捷键
Ctrl
+ a
:移到命令行首Ctrl
+ e
:移到命令行尾Alt
+ f
:按单词前移(右向)Alt
+ b
:按单词后移(左向)Alt
+ c
:从光标处更改为首字母大写的单词Alt
+ u
:从光标处更改为全部大写的单词Alt
+ l
:从光标处更改为全部小写的单词Ctrl
+ t
:交换光标处和之前的字符Alt
+ t
:交换光标处和之前的单词
Bang (!) 命令
history
:查看历史命令!n
:不再需要复制粘贴,直接运行执行历史上面的命令,只需将n替换为这条命里记录前的序号,比如!453
!-n
:表示执行导入第几个命令!!
:执行上一条命令Ctrl
+ r
:然后输入关键字,查找带有关键字的历史命令后回车,即可运行这条历史命令
Linux之更好的使用Bash的更多相关文章
- Linux编程环境介绍(2) -- shell(Bash) 介绍
1. 在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器).它类似于DOS下的command和后来的cmd.exe. 2. bash (Bourne Aga ...
- 微软开放技术发布针对 Mac 和 Linux 的更新版 Azure Node.JS SDK 和命令行工具
发布于 2013-12-04 作者 Eduard Koller 这次为我们使用Linux 的朋友带来了更多关于部署云上虚拟机的消息.今天,微软开放技术有限公司 (MS Open Tech),想与大家分 ...
- linux 服务器更主板后无法识别网卡处理过程
linux 服务器更主板后无法识别网卡处理过程 服务器故障报修,主板坏,更换主板后无法识别网卡,ifconfig 查看只显示:lo loopback 127.0.0.1. 系统加载网卡驱动后会去读 ...
- linux shell 的前世今生和流行BASH SHELL的特点
前言 shell作为用户和操作系统内核交互的接口,也不断的在发展迭代.shell的发展也离不开unix/linux 系统的发展.并且在开源社区对shell的发展也起到了推动作用. 内容思维导图简介 发 ...
- linux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方案
linux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方案 今天在安装程序时,发现有一个插件未安装,我就随手敲了一个命令,看都 ...
- Ubuntu 18.04及Snap体验——让Linux入门更简单(转))
https://www.linuxidc.com/Linux/2018-06/152993.htm 初次听说过Linux的时候,是大一计算机课时候老师介绍说除了Windows还有Linux.Unix操 ...
- linux笔记:shell基础和bash的基本功能
shell的优势:可以直接调用linux系统命令 shell脚本的基本写法:脚本名以.sh结尾程序的第一行为#!/bin/bash,告诉系统这是一个shell脚本以#作为注释shell脚本的执行方式: ...
- linux下一键安装 powershell,的bash脚本
说明 目前,linux下的powershell约等于pash.希望大家专注mono,关注pash. 一键安装脚本包括for centos6,centos7,ubuntu 14.04 ubuntu 1 ...
- linux里source、sh、bash、./有什么区别
在linux里,source.sh.bash../都可以执行shell script文件,那它们有什么不同吗? ----------- 1.source source a.sh 在当前shell内去读 ...
随机推荐
- Android——关于Activity跳转的返回(无返回值和有返回值)——有返回值
说明: 跳转页面,并将第一页的Edittext输入的数据通过按钮Button传到第二页用Edittext显示,点击第二页的 返回按钮Button返回第一页(改变第二页的Edittext的内容会传至第一 ...
- 最简单的PHP socket echo server。
常有人困惑php的socket服务,现在有libevent和多线程了,但是我还是整一个select的 <?php $addr = '0.0.0.0'; $port = 1234; $socket ...
- 神奇的Noip模拟试题一试 2 排队
2 排队 (lineup.pas/.c/.cpp) [问题描述] 小sin所在的班有n名同学,正准备排成一列纵队,但他们不想按身高从矮到高排,那样太单调,太没个性.他们希望恰好有k对同学是高的在前,矮 ...
- C++string的操作
#include <iostream> using namespace std; int main() { //initilization string str("abc.ddd ...
- 【C语言学习】-01 C基础
本文目录: 0.进制转换 1.C数据类型 2.常量变量 3.运算符 4.表达式 5.格式化输入输出 回到顶部 0.进制转换 在计算机中存储的数据,主要是以二进制形式存在,而我们生活中主要使用的有十进制 ...
- java获取页面编码
文章出自:http://babyjoycry.javaeye.com/blog/587527 在此感谢原作者...\(^o^)/~ 最近研究抓取网页内容,发现要获取页面的编码格式,Java没有现成 ...
- 纯手写分页控件CSS+JS+SQL
Asp.net中虽然用DataPager配合ListView可以实现分页显示,但是有时候由于开发环境等问题不能用到DataPager控件,那么自己手工写一个分页控件就很有必要了,当然,最重要的是通用性 ...
- 调整label中text显示的行间距
调整label中text显示的行间距最近再做一个项目时,发现UILabel中text的系统默认行间距不能满足要求,于是在网上找到了调整行间距的代码.跟大家分享一下,希望能对你有所帮助.悦德财富:htt ...
- Android 自带图标库 android.R.drawable
在xml文件中调用. android:title="@string/secure_connect"android:orderInCategory="100"an ...
- ALAssets的两种用法
一: ALAssetsGroupEnumerationResultsBlock resultsBlock = ^(ALAsset *result, NSUInteger index, BOOL *st ...