首页 > 编程知识 正文

linux命令分类总结(shell基础知识)

时间:2023-05-04 15:47:10 阅读:69075 作者:3423

在Linux/UNIX系统编程的空闲时间,请阅读Linux命令行大全一书,回忆毕业同学给我时的场景。 书很新。 新到的是什么程度? 这本书昨天刚买的,说没问题。

本博客只记录了不太令人印象深刻的内容,比较简单,或者对我来说很熟练,所以不再记录了。

shell是一个程序,它接收从键盘输入的命令,并将其传递给操作系统以执行。 bash是Bourne Again Shell的首字母缩写,Bourne Again Shell基于这样一个事实: bash是Steve Bourne编写的第一个UNIX shell程序,sh是sh的扩展版。

要退出终端会话,请直接关闭终端窗口,或在shell提示符下输入exit命令。

第一次登录系统时,当前工作目录被设置为主目录。 每个用户帐户都有一个主目录,如果以普通用户身份操作,则这是唯一允许用户写文件的位置。

光盘快捷方式:

cd将工作目录更改为主目录

cd -将工作目录切换为以前的工作目录

cd ~切换到当前登录的用户的主目录

cd ~username切换到用户username的主目录

ls ls可以指定多个目录显示。 此示例显示用户的主目录和/usr目录的内容

root@ubuntu:~# ls ~ /usr

/root:

display.cfunmainmain.ostrtoltlpi-book workspace

display.ofun.cmain.cplaygroundstrtol.CTL pi-dist

/usr:

担心的兔子games include lib local locale s担心的兔子share src

大多数命令都使用在单个字符前面加连字符的选项,如-l。 但是,许多命令(包括GNU项目命令)还支持在单词前添加两个连字符的长选项。 此外,许多命令可以一起使用长选项。 以下示例: ls命令-l生成长格式的输出,t选项按文件修改时间的优先级对结果进行排序,并按与长选项-reverse相反的顺序输出结果。

cp命令cp命令复制文件和目录。 有两种不同的使用方法。

cp item1 item2

将文件或目录item1复制到文件或目录item2中。

CP item……目录

将多个项目(文件或目录)复制到一个目录中

最常见的命令选项

- rrecursive递归复制目录及其内容。 复制整个目录时需要此选项。

-u -update将文件从一个目录复制到另一个目录时,只会复制目标目录中不存在的文件,或者与目标目录对应的文件更改时间为新的文件。

删除rm文件和目录将rm命令与tips:通配符一起使用时,必须仔细检查输入的命令。 如果使用ls预先测试通配符,则会显示要删除的文件。

硬链接软链接Linux软链接和硬链接

man man命令显示的文档分为多个部分,不仅包括用户命令,还包括系统管理命令、程序接口和文件格式等。手册文档的组织结构:

1 .用户命令2 .内核系统调用3. C库函数程序接口4 .设备节点和驱动程序5 .文件格式6 .屏幕保护程序7 .其他项目8 .系统管理命令检索到的文件文件

例如:

man 5 passwd和man passwd

man 5 passwd显示文件/etc/passwd的文件格式描述手册

在man passwd中显示用户命令passwd

这个可以在whatis上验证。

root@Ubuntu:~#whatislsls(1)-listdirectorycontentsroot @ Ubuntu : ) # whatispasswdpasswd )5)-thepasswordfisword-changeuserpasswordpasswd (1SSL )- compute password hashes whatis程序是特定的关键字

阿里亚斯

这个设定有问题。 shell会话结束后,这些别名将消失。

重定向这本书直到现在第六章,才有点重要的内容,也是我重点学习的部分——重定向。

输入标准输出标准错误默认情况下,标准输出和标准错误都链接到屏幕。

标准输入链接到键盘。 I/O重定向的功能可以更改输出内容的发送地址,也可以更改输入内容的

来源。通常情况下,输入来自于键盘,输出内容显示在屏幕上,重定向可以改变这一惯例。

标准输出重定向

ls -l /usr/忧心的小兔子 > ls-ouput.txt
这里我们将创建/usr/忧心的小兔子目录的一个长列表信息,并把这个显示结果输出到文件ls-output.txt.我们可以使用ls -l ls-output.txt查看文件情况。
接着可以把目录名换成一个不存在的目录名,例如:
ls -l /忧心的小兔子/usr > ls-ouput.txt
我们会收到错误提示:No such file or directory,由于我们没有重定向标准错误,所以错误信息还是直接打印在屏幕上。
这个时候我们通过ls -l命令查看ls-output.txt,吃惊的发现文件被清空了!
原因是我们使用>来重定向标准输出时,目的文件通常会从文件头部重新写。由于ls命令执行后没有任何标准输出,所以重定向操作开始重新改写这个文件,并在出现错误的情况下停止操作,最终导致了该文件内容被删除。
这就为我们提供了一种快速清空文件内容的方法:

> ls-output.txt

如果要在文件后面追加内容,而不是每次都从头开始写入的话可以使用>>来实现,下面的操作执行了两次,文件ls-output的大小翻倍.

标准错误重定向

标准输入 输出 错误对应的文件描述符分别是0 1 2,那么我们重定向标准错误可以采用如下方法:
ls -l /忧心的小兔子/usr 2> ls-error.txt
如果ls信息显示有误,会将相应的错误信息写入文件ls-error.txt,如果ls信息显示无误则列出相应目录的内容。
文件描述符2紧放在重定向符之前,将标准错误重定向到ls-error.txt文件中。

将标准错误和标准输出重定向到同一个文件

第一种传统方法:
ls -l /忧心的小兔子/usr > ls-output.txt 2>&1
使用这个方法将执行两个重定向操作。首先重定向标准输出到ls-output.txt文件中,然后使用标记符2>&1把文件描述符2(标准错误)重定向到文件描述符1(标准输出)中.
第二种方法:
ls -l /忧心的小兔子/usr &> ls-output.txt
在这个例子中只使用了一个标记符“&>”就把标准输出和标准错误都重定向到了ls-output.txt.
操作示例:

上面的例子我们演示了使用第一种方法可以重定向标准错误和标准输出,由于标准输出内容较多,所以我们只显示了10行来验证。

处理不想要的输出

可以通过输出重定向到/dev/null的特殊文件中来实现。例:
ls -l /忧心的小兔子/usr 2> /dev/null
可以抑制一个命令的错误信息。

标准输入重定向

cat 命令
读取一个或多个文件,并把他们复制到标准输出文件。
合并多个文件:
假如有文件被拆分成如下文件:
movie.mpeg.001 movie.mpeg.002 movie.mpeg.003 movie.mpeg.004 …… movie.mpeg.099
可以使用如下命令将它们重新连接在一起:
cat movie.mpeg.0* > movie.mpeg
由于通配符按顺序扩展,因此这些参数将按照正确的顺序来排列。
假如文件ls-output.txt里面有abcdefgh内容,我用如下命令:
cat < ls-output.txt
使用重定向符号”<”,我们将把标准输入的源从键盘变为文件ls-output.txt.

管道

管道操作符 | 可以把一个命令的标准输出传送到另一个命令的标准输入中。
ls -l /usr/忧心的小兔子 | less
使用less命令可以分页显示任意命令的输入,该命令将它的结果发送到标准输出。
ls /忧心的小兔子 /usr/忧心的小兔子 | sort | less
把/忧心的小兔子和/usr/忧心的小兔子目录下所有可执行程序合并成一个列表,并且按照顺序排序。
ls /忧心的小兔子 /usr/忧心的小兔子 | sort | uniq | less
uniq命令会剔除掉/忧心的小兔子 和/usr/忧心的小兔子目录下都有得文件名,只显示一次。
ls /忧心的小兔子 /usr/忧心的小兔子 | sort | uniq | wc -l
可以查看已排好序的列表中条目数。

tee

在执行Linux命令时,我们可以把输出重定向到文件中,比如 ls >a.txt,这时我们就不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令了。要注意的是:在使用管道线时,前一个命令的标准错误输出不会被tee读取。

echo



这本书看到这又一个惊喜,就是出现了这个花括号扩展,按照年份 月份甚至日期创建文件夹都变得如此轻松。
查看可用的变量列表可以使用如下命令:
printenv | less

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。