Linux基础——bash基础应用及文件系统基础命令
(一).命令别名
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
[root@localhost ~] # history 10
[root@localhost ~] # !10
[root@localhost ~] # !echo
[root@localhost ~] # history -d 10
[root@localhost ~] # history -a
[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基础应用及文件系统基础命令相关推荐
- Linux操作系统文件系统基础知识详解
标签:基础知识操作系统根目录Linux程序 一 .Linux文件结构 文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上. 目录提供了管理文件的一个方便而有效的途径. Li ...
- Linux文件系统基础
Linux文件系统基础 文件系统概述 Linux文件系统的特点 Linux文件系统的组成 Linux文件系统类型 EXT文件系统 其他文件系统 文件和目录的基本概念 文件 目录 路径 文件系统概述 操 ...
- Linux bash shell 编程笔记(基础篇)
文章目录 Part.I Introduction Chap.I 传送门 Chap.II 基础知识 Chap.III 实操笔记 Part.II 程序设计控制结构 Chap.I if 分支程序 Chap. ...
- 沈超+shell课件_[Linux教程 李明 沈超 兄弟连]10.4.4 Shell基础-Bash变量-预定义变量.ppt...
[Linux教程 李明 沈超 兄弟连]10.4.4 Shell基础-Bash变量-预定义变量 第十讲 Shell基础 主讲人:沈超(/lampsc) 交流论坛: 课程大纲 10.1 Shell概述 1 ...
- 文件系统调用和Linux文件系统基础
文件系统调用和Linux文件系统基础 keywords fdisk.LBA.CHS.MBR.super struct.directory.file.inode.inode table.block.fi ...
- Linux基础bash命令
1.基础bash命令 查看历史命令记录 history 查看时间 date 目录进入 cd 路径 查看目录结构 ls ls -a --全部文件 ls -l --详细信息 ls -la --全部文件详细 ...
- Linux文件系统基础(1)
本文首发于http://oliveryang.net,转载时请包含原文或者作者网站链接. 1. 什么是文件系统 直接引用来自维基百科文件系统的定义, A file system is a set of ...
- linux bash gt,linux之bash的基础特性(一)--gt;命令历史(history命令),命令补全,路径补全...
关于命令历史-->history 1.与之相关的环境变量:HISTSIZE,HISTFILE-->~/.bash_history,HISTFILESIZE,HISTCONTROL,HIST ...
- Linux基础管理——磁盘管理及文件系统(全)
1.设备文件 I/O Ports: I/O设备地址. 设备文件的使用: 通过将文件关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信.一切皆文件,所以磁盘的也是也是基于设备文件与之通信的:op ...
最新文章
- train_test_split()用法
- 大数据时代的技术hive:hive介绍
- Arduino总结一
- mysql约束条件整型_MySQL 表的操作
- js获取验证码倒计时60s(超简单)
- 心算技巧 —— 大数的三次方根
- 软件测试Homework03
- 根据经纬度算距离 | SQL
- 如何把html网页共享文件夹,如何将文件夹共享 设置共享文件夹教程【详细介绍】...
- python bottle框架使用beaker支持session
- 企业项目管理八大经典法宝
- 【Rust日报】2020-01-27 QIP:Rust中的量子计算模拟
- Bandizip去除广告,注册图标,状态栏文本
- 分享一个android手机开不了机的问题
- 北京理工大学 计算机学院 李侃,李侃(北京理工大学教授李侃)_百度百科
- 查询mysql的版本
- 5G多卡聚合路由器在高速公路收费中的应用
- java ?: 三目运算符
- JUST技术:JUST高效时空索引揭秘及使用指南
- php tinyme_各个版本的Linux系统介绍
热门文章
- python基础知识整理-Python 重点知识整理(基于Python学习手册第四版)
- python excel 自动化-python操作excel让工作自动化
- 报错:ModuleNotFoundError: No module named ‘cv_bridge‘,以及在ROS是如何安装cv_bridge库包
- 用PIL读取保存图片错误 :OSError: cannot write mode RGBA as JPEG
- lua学习笔记之元表和元方法
- 微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量
- UVa11770 - Lighting Away(排序+DFS)
- Python 之Re模块(正则表达式)
- 问题.beego路由设置及请求参数传递
- 利用yarn capacity scheduler在EMR集群上实现大集群的多租户的集群资源隔离和quota限制...