(一).命令别名

alias用于获取当前用户可用的别名定义

[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'

定义别名:~]# alias  NAME='COMMAND'(生命周期:当前shell进程)

撤消别名:~]# unalias NAME

注意:如果别名和命令名相同时,直接调用原命令,非别名:可使用"\COMMAND"

[root@localhost ~]# alias cls='clear'
[root@localhost ~]# unalias cls
[root@localhost ~]# \ls
$             anaconda-ks.cfg       m_q    rootfs    textfile2
2016-03-04-10-27-51  initial-setup-ks.cfg  n_p    text1
2016-03-05-14-09-21  m_p

(二).命令历史

查看所有有记录的历史命令
[root@localhost ~]
# history

查看10条最近记录的历史命令
[root@localhost ~]
# history 10

执行history列表中第10号命令
[root@localhost ~]
# !10

执行history列表中最近一条以echo开头的命令
[root@localhost ~]
# !echo

删除history列表中第10号命令
[root@localhost ~]
# history -d 10

将当前缓冲的历史行追加到历史文件中
[root@localhost ~]
# history -a

清空history列表
[root@localhost ~]
# history -c

从历史文件中读取所有未被读取的行
[root@localhost ~]
# history -n

读取历史文件并将内容追加到历史列表中
[root@localhost ~]
# history -r

命令历史相关的环境变量

[root@localhost ~]# echo $HISTSIZE
1000
[root@localhost ~]# echo $HISTFILESIZE
1000
[root@localhost ~]# echo $HISTFILE
/root/.bash_history
[root@localhost ~]# echo $HISTCMD
733
[root@localhost ~]# echo $HISTCONTROL
ignoredups

控制命令历史的记录方式:HISTCONTROL有三种取值表示

ignoredups:忽略重复的命令;重复是指连续且相同的命令;
ignorespace:以空白字符开头的命令不记入历史;
ignoreboth:上述两者同时生效;

(三).快捷键

Ctrl+a:跳至命令行首;
Ctrl+e:跳至命令行尾;
Ctrl+k:删除光标所在处至尾部的内容;
Ctrl+u:删除行首至光标所在处的内容;
Ctrl+w:删除行尾一个单词(非英语单词,而是以空格分隔开的一段连续字符串);

(四).命令补全和路径补全

shell中可以通过tab键补全,不能惟一标识,再次点击tab可给列表

[root@localhost ~]# whi
which     while     whiptail
[root@localhost ~]# /etc/gr
groff/  grub.d/

(五).命令行展开

~: 自动替换为用户家目录;

~USERNAME:自动替换为指定用户的家目录;

例:[root@localhost ~]# mkdir -pv /etc/rootfs/{bin,sbin,lib,lib64,tmp,usr}
mkdir: 已创建目录 "/etc/rootfs"
mkdir: 已创建目录 "/etc/rootfs/bin"
mkdir: 已创建目录 "/etc/rootfs/sbin"
mkdir: 已创建目录 "/etc/rootfs/lib"
mkdir: 已创建目录 "/etc/rootfs/lib64"
mkdir: 已创建目录 "/etc/rootfs/tmp"
mkdir: 已创建目录 "/etc/rootfs/usr"

目录管理类命令:

mkdir(建议目录):

[root@localhost ~]# mkdir -pv  /tmp/abcd
mkdir: 已创建目录 "/tmp/abcd"

-m, --mode=MODE:直接给定目录权限;

rmdir(删除目录):

[root@localhost ~]# rmdir -pv /tmp/abcd
rmdir: 正在删除目录 "/tmp/abcd"
rmdir: 正在删除目录 "/tmp"
rmdir: 删除目录 "/tmp" 失败: 目录非空

(六).命令的执行状态结果

[root@localhost ~]# echo $(date +%H:%M:%S)
22:13:06
[root@localhost ~]# echo `date +%H:%M:%S`
22:13:24
[root@localhost ~]# echo $?
0

(七).bash中的引用

[root@localhost ~]# echo '$SHELL'                    (''强引用)
$SHELL
[root@localhost ~]# echo "$SHELL"                    (""弱引用)
/bin/bash
[root@localhost ~]# echo `echo '$SHELL'`                 (`` 命令引用)
$SHELL

①文件查看命令:

more:more 命令类似 cat ,以一页一页的形式显示翻页,按space就往下一页显示,按 b 往回翻页

从第 20 行开始显示 testfile 之文档内容。
more +20 testfile

less:less 与 more 类似,但使用 less 可以随意浏览文件, more 仅能向前移动,却不能向后移 动,而且 less 在查看之前不会加载整个文件。

查看命令历史使用记录并通过less分页显示
[root@localhost test]# history | less1  ls2  mount /dev/cdrom /mnt3  ls4  cd /nt5  cd /mnt6  ls7  cd Packages/8  ls

head:默认查看文件的前10行;-n 5:查看前5行;

[root@localhost ~]# history |head -n 51  ls2  mount /dev/cdrom /mnt3  ls4  cd /nt5  cd /mnt

tail:默认查看文件的后10行;-n 5:查看后5行;

查看倒数第5行:

[root@localhost ~]# history |tail -5680  man tail | tail -5681  man tail | tail -5 |tail 1682  man tail | tail -5 |tail -1683  man tail | tail -5 |head -1684  history |tail -5
[root@localhost ~]# history |tail -5 | head -1681  man tail | tail -5 |tail 1

start:显示inode内容

查看 text2 文件的inode内容内容
[root@localhost ~]# stat text2文件:"text2"大小:0             块:0          IO 块:4096   普通空文件
设备:fd00h/64768d    Inode:206363417   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2016-03-05 14:18:26.985156998 +0800
最近更改:2016-03-05 14:16:59.502151869 +0800
最近改动:2016-03-05 14:16:59.502151869 +0800
创建时间:-

touch:改变文件或目录时间,如果没有文件则创建文件;

[root@localhost ~]# touch testfile | ls -l testfile
-rw-r--r--. 1 root root 0 3月   6 17:04 testfile

②文件管理工具:

cp:复制文件,如果目标文件不存在,则事先创建文件,而后复制内容导入;

[root@localhost ~]# ll /etc/text2
-rw-r--r--. 1 root root 66 3月   5 22:12 /etc/text2
[root@localhost ~]# cp /etc/text2 -if /tmp/text2 |ll /tmp/text2
cp:是否覆盖"/tmp/text2"? -rw-r--r--. 1 root root 66 3月   6 17:12 /tmp/text2
y
其他用法:man cp

mv:移动现有的文件或目录,或是更改文件或目录的名称,

mv  文件名   文件名 将源文件名改为目标文件名
mv  文件名   目录名 将文件移动到目标目录
mv  目录名   目录名 目标目录已存在,将源目录
移动到目标目录;目标
目录不存在则改名
mv  目录名   文件名 出错
 再如将/usr/student下的所有文件和目录移到当前目录下,命令行为:$ mv /usr/student/*  .

rm:删除一个文件或者目录。

  • -i 删除前逐一询问确认。

  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。

  • -r 将目录及以下之档案亦逐一删除。

【注意:请不要执行“rm -rf  /”或“rm -rf  /*”】

(八).文件名通配

显示/etc中以e、k、m开头所有的数字,最后以.conf结尾的文件详细信息:
[root@localhost ~]# ls -l /etc/[ekm]*[[:digit:]]*.conf
-rw-r--r--. 1 root root 112 Mar  6  2015 /etc/e2fsck.conf
-rw-r--r--. 1 root root 495 Mar  6  2015 /etc/krb5.conf
-rw-r--r--. 1 root root 936 Mar  6  2015 /etc/mke2fs.conf

常用的通配符:*:匹配任意长度的任意字符;
?:匹配任意单个字符;
[ ]:匹配指定集合内的任意单个字符;
[^ ]:匹配指定集合外的任意单个字符;
其他用法:man 7 glob

(九).变量

bash是弱类型编程语言,bash中变量统统默认为字符型数据,无需事先声明可以直接使用。

bash变量种类:
            本地变量:作用域为当前shell进程;不包括其子进程;
            环境变量:使用域为当前shell进程及其子进程;
            局部变量:作用域为定义此变量的函数;         
            位置参数变量
            特殊变量

本地变量声明及引用:

[root@localhost ~]# name=wangqiang
[root@localhost ~]# echo $name
wangqian

撤销变量:unset name;(PS:所有的本地变量在shell进程终止时,会被自动撤销;)

环境变量声明及引用:

[root@localhost ~]# name=wangqiang
[root@localhost ~]# echo $namewangqiang
[root@localhost ~]# export        查看环境变量命令:export,declare -x,env,printenv
declare -x name="wangqiang"
[root@localhost ~]# unset name

只读变量:常量  (shell终止,变量终止);不支持重新赋值,也不支持撤销操作;

[root@localhost ~]# declare -r myvar="how are you?"
[root@localhost ~]# readonly myvar="how are you?"
[root@localhost ~]# readonly
declare -r myvar="how are you?

(十).I/O重定向和管道

输入数据流: <--,标准输入(stdin)        文件描述符为0
输出数据流:-->,标准输出(stdout)       文件描述符为1
错误数据流:-->,标准错误输出(stderr)     文件描述符为2

标准输出重定向:

[root@localhost tmp]# echo "how are you?" > demo    #覆盖
[root@localhost tmp]# echo "how old are you?" >> demo    #追加

标准错误输出重定向:

[root@localhost tmp]# echoooo "how are you?" 2> demo    #覆盖
[root@localhost tmp]# echoooo "how old are you?" 2>> demo    #追加

合并标准输出与标准错误输出:

[root@localhost tmp]# echo "how are you?" &> demo    #覆盖
[root@localhost tmp]# echo "how old are you?" &>> demo    #追加
或者
[root@localhost tmp]# echo "how are you?" > demo 2>&1   #覆盖
[root@localhost tmp]# echo "how old are you?" &>> demo 2>&1    #追加

标准输入重定向:

[root@localhost ~]# tr [a-z] [A-Z] < /etc/issue
\S
KERNEL \R ON AN \M
MAGE EDUCATION LEARNING SERVICES
HTTP://WWW.MAGEDU.COM

Here Document:

cat << EOF > /tmp/issue.doc
\S
Kernel \r on an \m
Mage Education Learning Services
http://www.magedu.com
EOF

管道:把前一个命令的输出作为后一个命令的输入;

tee:从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

-a或--append  附加到既有文件的后面,而非覆盖它.

[root@localhost ~]
# cat /etc/issue | tee /tmp/$(date +%Y%m%d%H%M%S)

转载于:https://blog.51cto.com/wqiang/1748137

Linux基础——bash基础应用及文件系统基础命令相关推荐

  1. Linux操作系统文件系统基础知识详解

    标签:基础知识操作系统根目录Linux程序 一 .Linux文件结构 文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上. 目录提供了管理文件的一个方便而有效的途径. Li ...

  2. Linux文件系统基础

    Linux文件系统基础 文件系统概述 Linux文件系统的特点 Linux文件系统的组成 Linux文件系统类型 EXT文件系统 其他文件系统 文件和目录的基本概念 文件 目录 路径 文件系统概述 操 ...

  3. Linux bash shell 编程笔记(基础篇)

    文章目录 Part.I Introduction Chap.I 传送门 Chap.II 基础知识 Chap.III 实操笔记 Part.II 程序设计控制结构 Chap.I if 分支程序 Chap. ...

  4. 沈超+shell课件_[Linux教程 李明 沈超 兄弟连]10.4.4 Shell基础-Bash变量-预定义变量.ppt...

    [Linux教程 李明 沈超 兄弟连]10.4.4 Shell基础-Bash变量-预定义变量 第十讲 Shell基础 主讲人:沈超(/lampsc) 交流论坛: 课程大纲 10.1 Shell概述 1 ...

  5. 文件系统调用和Linux文件系统基础

    文件系统调用和Linux文件系统基础 keywords fdisk.LBA.CHS.MBR.super struct.directory.file.inode.inode table.block.fi ...

  6. Linux基础bash命令

    1.基础bash命令 查看历史命令记录 history 查看时间 date 目录进入 cd 路径 查看目录结构 ls ls -a --全部文件 ls -l --详细信息 ls -la --全部文件详细 ...

  7. Linux文件系统基础(1)

    本文首发于http://oliveryang.net,转载时请包含原文或者作者网站链接. 1. 什么是文件系统 直接引用来自维基百科文件系统的定义, A file system is a set of ...

  8. linux bash gt,linux之bash的基础特性(一)--gt;命令历史(history命令),命令补全,路径补全...

    关于命令历史-->history 1.与之相关的环境变量:HISTSIZE,HISTFILE-->~/.bash_history,HISTFILESIZE,HISTCONTROL,HIST ...

  9. Linux基础管理——磁盘管理及文件系统(全)

    1.设备文件 I/O Ports: I/O设备地址. 设备文件的使用: 通过将文件关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信.一切皆文件,所以磁盘的也是也是基于设备文件与之通信的:op ...

最新文章

  1. train_test_split()用法
  2. 大数据时代的技术hive:hive介绍
  3. Arduino总结一
  4. mysql约束条件整型_MySQL 表的操作
  5. js获取验证码倒计时60s(超简单)
  6. 心算技巧 —— 大数的三次方根
  7. 软件测试Homework03
  8. 根据经纬度算距离 | SQL
  9. 如何把html网页共享文件夹,如何将文件夹共享 设置共享文件夹教程【详细介绍】...
  10. python bottle框架使用beaker支持session
  11. 企业项目管理八大经典法宝
  12. 【Rust日报】2020-01-27 QIP:Rust中的量子计算模拟
  13. Bandizip去除广告,注册图标,状态栏文本
  14. 分享一个android手机开不了机的问题
  15. 北京理工大学 计算机学院 李侃,李侃(北京理工大学教授李侃)_百度百科
  16. 查询mysql的版本
  17. 5G多卡聚合路由器在高速公路收费中的应用
  18. java ?: 三目运算符
  19. JUST技术:JUST高效时空索引揭秘及使用指南
  20. php tinyme_各个版本的Linux系统介绍

热门文章

  1. python基础知识整理-Python 重点知识整理(基于Python学习手册第四版)
  2. python excel 自动化-python操作excel让工作自动化
  3. 报错:ModuleNotFoundError: No module named ‘cv_bridge‘,以及在ROS是如何安装cv_bridge库包
  4. 用PIL读取保存图片错误 :OSError: cannot write mode RGBA as JPEG
  5. lua学习笔记之元表和元方法
  6. 微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量
  7. UVa11770 - Lighting Away(排序+DFS)
  8. Python 之Re模块(正则表达式)
  9. 问题.beego路由设置及请求参数传递
  10. 利用yarn capacity scheduler在EMR集群上实现大集群的多租户的集群资源隔离和quota限制...