10

Linux shell (ch3) 基本的bash shell命令

 2 years ago
source link: https://yuxinli1.github.io/Linux-shell-ch3-%E5%9F%BA%E6%9C%AC%E7%9A%84bash-shell%E5%91%BD%E4%BB%A4/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

\etc\passwd包含了所有系统用户账户列表以及每个用户的基本配置信息,如root:x:0:0:root:/root:/bin/bash,最后一个字段/bin/bash指定了用户使用的shell程序。

Bash手册

使用man topic查看工具的手册页。第一段或是DISCRIPTION前两段,会有许多技术行话。

Linux%E6%89%8B%E5%86%8C%E9%A1%B5%E6%83%AF%E7%94%A8%E7%9A%84%E8%8A%82%E5%90%8D.png

除了按照节,还有按照内容区域,使用man section# topic,如man 1 hostnameman 7 hostname

Linux%E6%89%8B%E5%86%8C%E9%A1%B5%E7%9A%84%E5%86%85%E5%AE%B9%E5%8C%BA%E5%9F%9F.png

man manhelp help

man、help、--help、info的区别

浏览文件系统

Linux%E6%96%87%E4%BB%B6%E7%BB%93%E6%9E%84.png

通常系统文件会存储在根驱动器中,用户文件存储在另一驱动器中。

怎样将\home挂载到另一驱动器?安装系统时不新建不同用户,只存在根用户的时候将\home挂载到另一驱动器然后再新建用户吗?

%E5%B8%B8%E8%A7%81Linux%E7%9B%AE%E5%BD%95%E5%90%8D%E7%A7%B0.png

常见目录名均基于文件系统层级标准FHS。

cd, change directory.

pwd, print name of current/working directory.

使用不带任何参数的cd命令切回用户主目录。

cd - 切回上次目录。

cd / 切到根目录。

文件和目录列表

ls, list directory contents.

ls 输出列表是按字母排序(按列排序而非按行)。

ls 命令可用不同颜色来区分不同类型文件。LS_COLORS 环境变量控制该功能(Ch 6)。

-F --- 如果没有安装彩色终端仿真器,使用 -F 参数区分文件、目录等。

-a --- 显示隐藏文件和普通文件。

-R --- 递归选项,会列出包括子目录在内的所有内容。

-l --- 显示长列表,包含文件类型(目录d、文件-、字符型文件c、块设备b)、权限、硬链接总数、属主用户名、属组组名、字节数、修改日期等信息。

单列输出该目录下的文件列表:

ll | awk '{print $9}'

llls -l 的别名

过滤输出列表

  • ls -l my_script
  • ls -l my_scr?pt
  • ls -l my*
  • ls -l my_s*t
  • ls -l my_scr[ai]pt
  • ls -l my_scr[a-i]pt
  • ls -l my_scr[!a]pt

在过滤器中使用通配符称为文件扩展匹配 file globbing,通配符正式名称为元字符通配符 metacharacter wildcards。

  • ? 匹配单个字符
  • * 匹配多个字符
  • [ai] 选择通配符,示例可以是ai
  • [a-i] 范围通配,示例可以是ai的所有字符
  • [!a] 排除通配,示例将a排除在外

在使用过滤器时,会遍历子目录,如果子目录中存在符合通配符的文件也会输出,此时可以使用 -d 选项 list directories themselves, not their contents 仅列出目录本身的信息,不列出其中的内容。

ls-d.png

touch

touch filename,如果该文件不存在,则创建该文件;如果该文件存在,则仅修改该文件的最后修改时间,而不改变文件内容

-a 选项,仅改变最后访问时间。

ls -l 命令不会显示访问时间,需要添加 --time=atime 则会显示最后访问时间。

cp source destination

新文件有新的修改时间。

-i 选项,如果目标文件已存在,会直接覆盖而不提醒,加入 -i 选项强制shell询问。

复制单个文件时,最好在目录末尾都加上/,否则当目录不存在时会有问题。

-R 选项,递归复制。

cp-R.png

也可以在 cp 命令中使用通配符

ln - make links between files.

  • 符号链接(软链接)
    • ln -s file link
  • 硬链接
    • ln file link

符号链接是一个独立的文件,与原文件有着不同的i-node编号,而硬链接创建独立的虚拟文件,包含了原始文件的信息和位置,与原文件有着相同的i-node编号,引用硬链接等同于引用源文件。

只能对处于同一存储媒体的文件创建硬链接,若要在不同媒体间创建连接只能使用符号链接。

mv - move (rename) files.

对于重命名文件 mv file_sour file_dest ,不会更改文件的i-node编号和时间戳,只会对文件名产生影响。

-i --- 移动文件时可以使用 -i 选项,若存在可能会被覆盖的文件,会强制shell通知。

rm - remove files or directorys.

-i --- 也可以使用通配符批量删除,注意添加 -i 选项进行删除确认。

-f --- 强制删除,不受到提示符打扰。慎用!

mkdir

-p --- 根据需要创建缺失的父目录。

rmdir

默认情况下,rmdir 只删除空目录。

rm -r --- 向下进入目录删除其中的文件再删除目录本身(-r-R

终极大法❗rm -rf

查看文件内容

file - determine file type.

file 探测文件内部并决定文件是什么类型。

cat - concatenate files and print on the standard output.

-n --- 给输出添加行号。

-b --- --number-nobalnk 只给有文本的行加行号。

-T --- 如果不想让制表符出现,使用 -T 选项,制表符会用^I替换。

more - file perusal filter for crt viewing.

分页显示工具。

less - opposite of more.

less is more.

tail - output the last part of files.

-n --- 默认后10行,使用-n参数指定行数。tail -n 5 file or tail -5 file.

-f --- 允许在其他进程使用该文件时查看文件的内容,tail 命令会保持活动状态,是实时监测系统日志的绝妙方式。

head - output the first part of files.

-n --- 默认前10行,使用-n参数指定行数。head -n 5 file or head -5 file.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK