1.4 获取文件信息
Problem
你需要获得更多的文件信息,比如它是什么?拥有者是谁,是否可以执行,有多少个链接指向这个文件,最后的修改时间是什么时候.
Solution
使用ls,stat,file,find,touch命令.
delbert@delbert-desktop:~$ ll myinitlog
rw-rw-rw 1 delbert delbert 3896 2009-07-09 09:46 myinitlog
delbert@delbert-desktop:~$ touch myinitlog
delbert@delbert-desktop:~$ ll myinitlog
rw-rw-rw 1 delbert delbert 3896 2009-07-09 17:33 myinitlog
$ ls /tmp/sample_file
/tmp/sample_file
$ ls -l /tmp/sample_file
rw-rr- 1 jp jp 0 Dec 18 15:03 /tmp/sample_file
$ stat /tmp/sample_file
File: "/tmp/sample_file"
Size: 0 Blocks: 0 IO Block: 4096 Regular File
Device: 303h/771d Inode: 2310201 Links: 1
Access: (0644/rw-rr-) Uid: ( 501/ jp) Gid: ( 501/ jp)
Access: Sun Dec 18 15:03:35 2005
Modify: Sun Dec 18 15:03:35 2005
Change: Sun Dec 18 15:03:42 2005
$ file /tmp/sample_file
/tmp/sample_file: empty
$ file -b /tmp/sample_file
empty
$ echo '#!/bin/bash -' > /tmp/sample_file
$ file /tmp/sample_file
/tmp/sample_file: Bourne-Again shell script text executable
$ file -b /tmp/sample_file
Bourne-Again shell script text executable
Discusstion
1.5 在当前目录显示所有隐藏文件
Problem
有一个创建了很久的文件,当我们需要再次编辑或者删除它时,可能我们会忘记这个文件的具体名称,通过ls -a我们可以查看当前
目录下的所有文件包括隐藏文件,但是通常显示的结果让我们眼花缭乱,而使用ls -a .*并不能得到我们想要的结果(试试看).
Solution
使用ls -d(pattern) ,可以添加过滤条件.比如:
ls -d .*
ls -d .b*
ls -d .!.*
另外的方式:
$ grep -l 'PATH' ~/.!.*
/home/jp/.bash_history
/home/jp/.bash_profile
1.6 在shell中使用引号
Problem
你需要一本在shell中使用引号的经验手册。
Solution
使用单引号包含一段字符串,除非字符串里有需要shell解析的元素。
Discusstion
未被引号包含或者使用双引号包含的字符串需要依赖shell的扩展和替换。看看:
$ echo A coffee is $5?!
A coffee is ?!
$ echo "A coffee is $5?!"
-bash: !": event not found
$ echo 'A coffee is $5?!'
A coffee is $5?!
第一个例子,$5被shell作为变量展开,但是这个变量不存在,所以显示为空
第二个例子也是一样的,只是我们得不到正确结果,因为!"被理解为执行某个
历史命令的表达式,但是这个表达式在历史命令中找不到。
第三个我们得到了希望的结果。
如果需要混合shell扩展表达式和仅按字面意义表达的字符串你可以使用转义字符\
或者替换引号类型,感叹号是一个特殊的例子因为在显示时\ 并不会被移除。你可以
用单引号包含感叹号或者不转义但是在感叹号后使用空格来正确显示。
$ echo 'A coffee is $5 for' "$USER" '?!'
A coffee is $5 for jp ?!
$ echo "A coffee is \$5 for $USER?!"
A coffee is $5 for jp?!
$ echo "A coffee is \$5 for $USER?! "
A coffee is $5 for jp?!
类似的,你不能嵌入一个单引号到一对单引号中,即使你使用了转义字符,因为使用
单引号包含时,没有任何东西会被扩展或替换,但是你可以使用双引号加转义字符,或者
在成对单引号的外部使用转义字符来显示单引号。
1. We'll get a continuation prompt since we now have unbalanced quotes
$ echo '$USER won't pay $5 for coffee.'
> ^C
2. WRONG
$ echo "$USER won't pay $5 for coffee."
jp won't pay for coffee.
3. Works
$ echo "$USER won't pay \$5 for coffee."
jp won't pay $5 for coffee.
4. Also works
$ echo 'I won'\''t pay $5 for coffee.'
I won't pay $5 for coffee.
分享到:
相关推荐
每个相应版本对应bash rpm两个一个64位一个32位 官网下载 可以对照MD5 软件列表: bash-3.0-27.el4.i386.rpm bash-3.0-27.el4.x86_64.rpm bash-3.2-33.el5_11.4.i386.rpm bash-3.2-33.el5_11.4.x86_64.rpm bash-...
Jenkins脚本..bash_aliases
.git-completion.bash
redhat bash漏洞补丁包含文件:bash-4.1.2-15.el6_5.2.i686.rpmbash-4.1.2-15.el6_5.2.x86_64.rpmbash-3.0-27.el4.i386.rpmbash-3.0-27.el4.x86_64.rpmbash-3.2-33.el5_11.4.i386.r... redhat bash漏洞补丁 包含文件...
2、rhel 4.x 64位 bash-3.0-27.el4.x86_64.rpm bash-debuginfo-3.0-27.el4.4.x86_64.rpm 3、centos5.x_32 bash-3.2-33.el5.1.i386.rpm bash-3.2-33.el5_11.4.i386.rpm 4、centos5.x_64 bash-3.2-33.el5.1.x86_64.rpm...
2. TMP和TMPDIR变量:这两个环境变量用于设置临时文件的存储目录。通常建议将它们设置为/tmp目录。 3. ORACLE_BASE变量:ORACLE_BASE变量定义了Oracle安装的基础目录。该目录通常是/opt/oracle,或者根据实际情况...
2、rhel 4.x 64位 bash-3.0-27.el4.x86_64.rpm bash-debuginfo-3.0-27.el4.4.x86_64.rpm 3、centos5.x_32 bash-3.2-33.el5.1.i386.rpm bash-3.2-33.el5_11.4.i386.rpm 4、centos5.x_64 bash-3.2-33.el5.1.x86_64.rpm...
2. **下载补丁**:从提供的链接或附件中下载相应的RPM补丁包。 3. **安装补丁**:使用`rpm`命令安装补丁,例如:`sudo rpm -Uvh bash-<version>-<release>.rpm`,其中`<version>`和`<release>`应替换为实际的补丁...
Bash参考手册.pdf是Bash shell的官方参考手册,涵盖了Bash shell的所有方面,包括基本语法、变量、命令、函数、文件处理、流程控制、输入输出、错误处理等。 1. Bash简介 Bash是GNU项目的一部分,是自由软件基金会...
在这个场景中,我们关注的是与Bash shell相关的配置文件——"bash.acp"和"bash.stx",这些文件是专门为EditPlus定制的,目的是增强在编辑Bash脚本时的用户体验。 `bash.acp` 文件是EditPlus的语法规则配置文件,...
.cbash 具有vim和纯净别名的bash配置 别名是指可以使用不同名称访问相同存储位置的情况。 例如: 之前: cd /home/user 创建别名: alias home='cd /home/user' 之后: home 平台类 macOS和Linux 安装 运行curl...
".bash_profile和.bashrc的区别" .bash_profile和.bashrc是两个非常重要的配置文件,在Linux系统中扮演着非常关键的角色。这两个文件都是 Bash shell 的配置文件,但是它们之间存在着很大的区别。 首先,让我们...
RedHat5 X86:bash-3.2-33.el5_11.4.i386.rpm RedHat5 X86_64:bash-3.2-33.el5_11.4.x86_64.rpm bash-debuginfo-3.2-33.el5_11.4.x86_64.rpm RedHat6 X86:bash-4.1.2-15.el6_5.2.i686.rpm RedHat6 X86_64:bash-4.1.2...
Beginning Bash Chapter 2. Standard Output Chapter 3. Standard Input Chapter 4. Executing Commands Chapter 5. Basic Scripting: Shell Variables Chapter 6. Shell Logic And Arithmetic Chapter 7. ...
标题中的“PyPI 官网下载 | lztools.bash-1.0.9-py2.py3-none-any.whl”表明这是一个从Python Package Index (PyPI)官方源下载的软件包,名为`lztools.bash`,版本为1.0.9。这个包是为Python 2和Python 3设计的,...
下载本附件,放到你的用户主目录,在你的.bash_profile或者.bashrc,或者.profile里加入: if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi 然后source一下或者重新登录,你的git就支持自动...
git是一种版本管理,强大之处毋庸置疑,但mac用户在配置好git环境后,发现我们无法使用table按键来进行补全,我猜你们是缺少这个文件