基本的bash shell命令(基于Ubuntu实现)
Posted 今夕是何夕
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本的bash shell命令(基于Ubuntu实现)相关的知识,希望对你有一定的参考价值。
一、基本的bash shell命令(基于Ubuntu实现)
/etc/passwd文件包含了所有系统用户账户列表以及每个用户的基本配置信息。
man命令
在想要查找的工具的名称前输入man命令,就可以找到那个工具对应的手册条目。
- 空格 向下翻页
- 回车 向下逐行
- b 向上翻页
- q 退出
Linux顶层虚拟目录名及其内容
遍历目录
cd命令
$ cd destination
- 绝对文件路径:绝对文件路径总是以正斜线(/)作为起始,指明虚拟文件的根目录。可以清晰表明用户想切换到的确切位置。
- 相对文件路径:允许用户指定一个基于当前位置的目标文件路径。相对文件路径不以代表根目录的正斜线(/)开头,而是以目录名或是一个特殊字符开始。
$ pwd
pwd命令可以显示出shell会话的当前目录。
- 单点符(.) 表示当前目录;
- 双点符(..) 表示当前目录的父目录
基本列表功能
ls命令
ls命令最基本的形式会显示当前目录下的文件和目录
$ ls
- -F 参数的ls命令轻松区分文件和目录
- -a 参数会把隐藏文件和普通文件及目录一起显示出来
- -d 显示目录自身属性,不显示内容。
- -R 递归选项。列出了当前目录下包含的子目录中的文件。
- -l 会产生长列表的输出,包含了目录中每个文件的更多相关信息。
- -l --time=atime 显示出文件的访问时间。(-l显示的是修改时间)
- -i 查看文件或目录的inode编号(inode编号是一个用于标识的唯一数字,由内核分配给文件系统中的每一个对象)
每部分所显示的信息如下:
ls -F -R 可以合并为 ls -FR。
- 问号(?)代表一个字符;
- 星号(*)代表零个或多个字符。
ls -l 可以列出单个特定文件的信息。
创建文件
touch命令
$ touch test_one
创建一个空文件,文件大小为零,并将自己的用户名作为属主。
touch命令可以用来改变文件的修改时间(同时改变访问时间)。
- -a 只改变访问时间
复制文件
cp命令
$ cp source destination
- 都是文件名时,cp命令将源文件复制成一个新文件,并且以destination命名。有新的修改时间;
- cp -i 强制询问是否需要覆盖已有文件;
- 可以将文件赋值到现有目录中(目标目录名尾部加上一个正斜线(/),否则会创建尾目录同名的文件);
- cp -R 递归地复制整个目录内容。
tree命令
树形显示文件结构
链接文件
ln命令
- 符号链接
- 硬链接
符号链接示例
ln -n 原始文件 符号链接名字
li@li:~/myUbuntu$ ls -l mn -rw-rw-r-- 1 li li 0 10月 11 22:49 mn li@li:~/myUbuntu$ ln -s mn sl_mn li@li:~/myUbuntu$ ls -l *mn -rw-rw-r-- 1 li li 0 10月 11 22:49 mn lrwxrwxrwx 1 li li 2 10月 11 22:49 sl_mn -> mn
硬链接示例
ln 原始文件 硬链接名字
li@li:~/myUbuntu$ ls -l *mn -rw-rw-r-- 1 li li 0 10月 11 22:49 mn lrwxrwxrwx 1 li li 2 10月 11 22:49 sl_mn -> mn li@li:~/myUbuntu$ ls -l mn -rw-rw-r-- 1 li li 0 10月 11 22:49 mn li@li:~/myUbuntu$ ln mn h_mn li@li:~/myUbuntu$ ls -l *mn -rw-rw-r-- 2 li li 0 10月 11 22:49 h_mn -rw-rw-r-- 2 li li 0 10月 11 22:49 mn lrwxrwxrwx 1 li li 2 10月 11 22:49 sl_mn -> m
li@li:~/myUbuntu$ ls -il *mn 1578569 -rw-rw-r-- 2 li li 0 10月 11 22:49 h_mn 1578569 -rw-rw-r-- 2 li li 0 10月 11 22:49 mn 1582500 lrwxrwxrwx 1 li li 2 10月 11 22:49 sl_mn -> mn
重命名文件
mv命令
mv命令可以将文件和目录移动到另一个位置或重新命名。
- -i 在命令试图覆盖已有文件时,询问是否覆盖。
删除文件
rm命令
- -i 提示你是不是要真的删除改文件。
- -f 如果要删除很多文件且不受提示符的打扰,-f参数强制删除。
创建目录
mkdir命令
- -p 同时创建多个目录和子目录
删除目录
rmdir命令
默认情况下,rmdir命令只删除空目录。
rm命令
- -r 使得命令可以向下进入目录,删除其中的文件,然后再删除目录本身。
- -i 提示是否真的删除
- -ir 进入目录后,将会提示是否删除每一个文件
查看文件内容
查看文件类型:
file命令
$ file my_file
查看整个文件:
1.cat命令
$ cat my_file
- -n 会给所有的行加上行号
- -b 只给有文本的行加上行号
- -T 不让制表符出现(呈现出^T)
2.more命令
more命令会显示文本文件的内容,但会在显示每页数据之后停下来。向下翻页空格,向上翻页b键(阅读到结尾及退出,所以到结尾无法向上翻页),回车向下逐行。
$ more my_file
3.less命令
更高级的功能。可以上下键以及上下翻页(阅读到结尾可向上翻页,q退出)
查看部分文件:
1.tail命令
$ tail my_file
tail命令会显示文件最后几行的内容(文件的“尾部”)。默认最后十行。
- -n 数字:只显示最后数字行
- -数字:只显示最后数字行
- -f :允许你在其他进程使用改文件时查看文件的内容。保持活动状态(检测系统日志)
2.head命令
$ head my_file
head命令会显示文件开头几行的内容(文件的“头部”)。默认开头十行。
- -n 数字:只显示开头数字行
- -数字:只显示开头数字行
没有-f参数。
以上是关于基本的bash shell命令(基于Ubuntu实现)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ubuntu 上的 emacs 中运行 shell 命令,同时避免 bash 作业控制错误?
shell里一个let命令,用sh跑不了,但bash可以,发现bin里面sh是dash的链接,那么sh和bash功能上啥区别