基本的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会话的当前目录。

  1. 单点符(.) 表示当前目录;
  2. 双点符(..) 表示当前目录的父目录

基本列表功能

 ls命令

ls命令最基本的形式会显示当前目录下的文件和目录

$ ls
  1. -F  参数的ls命令轻松区分文件和目录
  2. -a  参数会把隐藏文件和普通文件及目录一起显示出来
  3. -d  显示目录自身属性,不显示内容。
  4. -R  递归选项。列出了当前目录下包含的子目录中的文件。
  5. -l    会产生长列表的输出,包含了目录中每个文件的更多相关信息。
  6. -l --time=atime  显示出文件的访问时间。(-l显示的是修改时间)  
  7. -i    查看文件或目录的inode编号(inode编号是一个用于标识的唯一数字,由内核分配给文件系统中的每一个对象)

每部分所显示的信息如下:

 

ls -F -R 可以合并为 ls -FR。

  • 问号(?)代表一个字符;
  • 星号(*)代表零个或多个字符。

ls -l 可以列出单个特定文件的信息。

创建文件

touch命令

$ touch test_one

创建一个空文件,文件大小为零,并将自己的用户名作为属主。

touch命令可以用来改变文件的修改时间(同时改变访问时间)。

  • -a  只改变访问时间

复制文件

cp命令

$ cp source destination
  1. 都是文件名时,cp命令将源文件复制成一个新文件,并且以destination命名。有新的修改时间;
  2. cp -i 强制询问是否需要覆盖已有文件;
  3. 可以将文件赋值到现有目录中(目标目录名尾部加上一个正斜线(/),否则会创建尾目录同名的文件);
  4. 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 作业控制错误?

ubuntu是用啥shell的?

bash与sh的问题

shell里一个let命令,用sh跑不了,但bash可以,发现bin里面sh是dash的链接,那么sh和bash功能上啥区别

Shell编程Shell中Bash基本功能

Shell编程Shell中Bash基本功能