Linux基础——bash基础应用及文件系统基础命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础——bash基础应用及文件系统基础命令相关的知识,希望对你有一定的参考价值。
(一).命令别名
alias用于获取当前用户可用的别名定义
[[email protected] ~]# 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"
[[email protected] ~]# alias cls=‘clear‘ [[email protected] ~]# unalias cls [[email protected] ~]# \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
(二).命令历史
[[email protected] ~] # history
[[email protected] ~] # history 10
[[email protected] ~] # !10
[[email protected] ~] # !echo
[[email protected] ~] # history -d 10
[[email protected] ~] # history -a
[[email protected] ~] # history -c
[[email protected] ~] # history -n
[[email protected] ~] # history -r
命令历史相关的环境变量
[[email protected] ~]# echo $HISTSIZE 1000 [[email protected] ~]# echo $HISTFILESIZE 1000 [[email protected] ~]# echo $HISTFILE /root/.bash_history [[email protected] ~]# echo $HISTCMD 733 [[email protected] ~]# echo $HISTCONTROL ignoredups
控制命令历史的记录方式:HISTCONTROL有三种取值表示
ignoredups:忽略重复的命令;重复是指连续且相同的命令; ignorespace:以空白字符开头的命令不记入历史; ignoreboth:上述两者同时生效;
(三).快捷键
Ctrl+a:跳至命令行首; Ctrl+e:跳至命令行尾; Ctrl+k:删除光标所在处至尾部的内容; Ctrl+u:删除行首至光标所在处的内容; Ctrl+w:删除行尾一个单词(非英语单词,而是以空格分隔开的一段连续字符串);
(四).命令补全和路径补全
shell中可以通过tab键补全,不能惟一标识,再次点击tab可给列表
[[email protected] ~]# whi which while whiptail [[email protected] ~]# /etc/gr groff/ grub.d/
(五).命令行展开
~: 自动替换为用户家目录;
~USERNAME:自动替换为指定用户的家目录;
例:[[email protected] ~]# 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(建议目录):
[[email protected] ~]# mkdir -pv /tmp/abcd mkdir: 已创建目录 "/tmp/abcd"
-m, --mode=MODE:直接给定目录权限;
rmdir(删除目录):
[[email protected] ~]# rmdir -pv /tmp/abcd rmdir: 正在删除目录 "/tmp/abcd" rmdir: 正在删除目录 "/tmp" rmdir: 删除目录 "/tmp" 失败: 目录非空
(六).命令的执行状态结果
[[email protected] ~]# echo $(date +%H:%M:%S) 22:13:06 [[email protected] ~]# echo `date +%H:%M:%S` 22:13:24 [[email protected] ~]# echo $? 0
(七).bash中的引用
[[email protected] ~]# echo ‘$SHELL‘ (‘‘强引用) $SHELL [[email protected] ~]# echo "$SHELL" (""弱引用) /bin/bash [[email protected] ~]# echo `echo ‘$SHELL‘` (`` 命令引用) $SHELL
①文件查看命令:
more:more 命令类似 cat ,以一页一页的形式显示翻页,按space就往下一页显示,按 b 往回翻页
从第 20 行开始显示 testfile 之文档内容。 more +20 testfile
less:less 与 more 类似,但使用 less 可以随意浏览文件, more 仅能向前移动,却不能向后移 动,而且 less 在查看之前不会加载整个文件。
查看命令历史使用记录并通过less分页显示 [[email protected] test]# history | less 1 ls 2 mount /dev/cdrom /mnt 3 ls 4 cd /nt 5 cd /mnt 6 ls 7 cd Packages/ 8 ls
head:默认查看文件的前10行;-n 5:查看前5行;
[[email protected] ~]# history |head -n 5 1 ls 2 mount /dev/cdrom /mnt 3 ls 4 cd /nt 5 cd /mnt
tail:默认查看文件的后10行;-n 5:查看后5行;
查看倒数第5行:
[[email protected] ~]# history |tail -5 680 man tail | tail -5 681 man tail | tail -5 |tail 1 682 man tail | tail -5 |tail -1 683 man tail | tail -5 |head -1 684 history |tail -5 [[email protected] ~]# history |tail -5 | head -1 681 man tail | tail -5 |tail 1
start:显示inode内容
查看 text2 文件的inode内容内容 [[email protected] ~]# 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:改变文件或目录时间,如果没有文件则创建文件;
[[email protected] ~]# touch testfile | ls -l testfile -rw-r--r--. 1 root root 0 3月 6 17:04 testfile
②文件管理工具:
cp:复制文件,如果目标文件不存在,则事先创建文件,而后复制内容导入;
[[email protected] ~]# ll /etc/text2 -rw-r--r--. 1 root root 66 3月 5 22:12 /etc/text2 [[email protected] ~]# 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结尾的文件详细信息: [[email protected] ~]# 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进程及其子进程;
局部变量:作用域为定义此变量的函数;
位置参数变量
特殊变量
本地变量声明及引用:
[[email protected] ~]# name=wangqiang [[email protected] ~]# echo $name wangqian
撤销变量:unset name;(PS:所有的本地变量在shell进程终止时,会被自动撤销;)
环境变量声明及引用:
[[email protected] ~]# name=wangqiang [[email protected] ~]# echo $namewangqiang [[email protected] ~]# export 查看环境变量命令:export,declare -x,env,printenv declare -x name="wangqiang" [[email protected] ~]# unset name
只读变量:常量 (shell终止,变量终止);不支持重新赋值,也不支持撤销操作;
[[email protected] ~]# declare -r myvar="how are you?" [[email protected] ~]# readonly myvar="how are you?" [[email protected] ~]# readonly declare -r myvar="how are you?
(十).I/O重定向和管道
输入数据流: <--,标准输入(stdin) 文件描述符为0 输出数据流:-->,标准输出(stdout) 文件描述符为1 错误数据流:-->,标准错误输出(stderr) 文件描述符为2
标准输出重定向:
[[email protected] tmp]# echo "how are you?" > demo #覆盖 [[email protected] tmp]# echo "how old are you?" >> demo #追加
标准错误输出重定向:
[[email protected] tmp]# echoooo "how are you?" 2> demo #覆盖 [[email protected] tmp]# echoooo "how old are you?" 2>> demo #追加
合并标准输出与标准错误输出:
[[email protected] tmp]# echo "how are you?" &> demo #覆盖 [[email protected] tmp]# echo "how old are you?" &>> demo #追加 或者 [[email protected] tmp]# echo "how are you?" > demo 2>&1 #覆盖 [[email protected] tmp]# echo "how old are you?" &>> demo 2>&1 #追加
标准输入重定向:
[[email protected] ~]# 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
管道:
[[email protected] ~] # cat /etc/issue | tee /tmp/$(date +%Y%m%d%H%M%S)
以上是关于Linux基础——bash基础应用及文件系统基础命令的主要内容,如果未能解决你的问题,请参考以下文章