做ppt的动图下载哪些网站,如何做收费影视资源网站,中国容桂品牌网站建设,实用又有创意的设计第一列返回的是行数#xff0c;第二列是字数#xff0c;第三列则是比特数。
我们可以让它只计算行数#xff1a;
wc -l test.txt
或者只计算字数#xff1a;
wc -w test.txt
或者只计算比特数#xff1a;
wc -c test.txt
在 ASCII 字符集中#xff0c;比特数等于字…第一列返回的是行数第二列是字数第三列则是比特数。
我们可以让它只计算行数
wc -l test.txt
或者只计算字数
wc -w test.txt
或者只计算比特数
wc -c test.txt
在 ASCII 字符集中比特数等于字符数。但对于非 ASCII 字符集由于一些字符可能占用多个比特字符的数目可能会不同这在 Unicode 里有发生过。
这种情况下使用 -m 参数可以得到正确的数目
wc -m test.txt
Linux 中的 grep 命令 grep 命令是一个非常有用的工具。假若掌握了它对日常的编码工作会有很大的帮助。 如果你比较好奇 grep 的全写是 global regular expression print 全局正则表达式打印。 你可以使用 grep 在文件中进行搜索或者与管道符配合使用将输出结果传递到其他命令。
例如可以用以下命令在 index.md 文件里搜寻 document.getElementById 这一行出现的次数
grep -n document.getElementById index.md 使用 -n 参数可以显示行号
grep -n document.getElementById index.md 一个非常有用的方法是告诉 grep 在相应行的前后各输出 2 行以提供更多的上下文。这可以用参数 -C 来完成它可以受取其后的若干行数
grep -nC 2 document.getElementById index.md 搜索默认是区分大小写的。使用参数 -i 可以使其不再区分。
如上所述你可以使用 grep 来过滤其他命令的输出。我们可以使用以下方法重现前述的功能
less index.md | grep -n document.getElementById 搜索字符串中可以使用正则表达式这让 grep 变得非常强大。
另一个你可能发现很有用的方法是——使用参数 -v 反转结果排除与特定字符串匹配的行 Linux 中的 sort 命令 假定你有一份文本文件里面包含一些狗狗的名字 这串名字并没有进行排序。
而 sort 命令会帮你按照名称顺序排列它们 使用 r 参数倒转排序结果 默认情况下排序区分大小写并且遵循英文字母顺序。使用 --ignore-case 参数进行不区分大小写的排序使用 -n 参数可按数值大小顺序进行排序。
如果文件包含重复的行 你可以使用 -u 参数移除它们 sort 命令不像多数 UNIX 命令那样只是用于操作文件它还可以与管道符配合使用。因此你可以将它用在其他命令的输出上。例如你可以用它排序 ls 命令传回的文件列表
ls | sort
sort 的功能非常强大它还支持更多的参数你可以输入 man sort 来探索 Linux 中的 uniq 命令 uniq 命令可以帮助你排序文本文件中的行。
这些行可以通过文件获取或用管道符从另一个命令的输出中得到
uniq dogs.txt
ls | uniq
此处需要考虑一个关键点 uniq 只会检测相邻的重复行。
这意味着你可能会将它与 sort 配合使用
sort dogs.txt | uniq
sort 命令拥有自己的参数—— -u (unique) 来移除重复的行。但 uniq 更为强大。
默认情况下它会删除重复的行 你可以告诉它只是显示重复的行例如使用 -d 参数
sort dogs.txt | uniq -d 还可以使用 -u 参数那样就只会显示不重复的行 使用 -c 参数计算每一行的出现次数 使用以下的特殊命令组合
sort dogs.txt | uniq -c | sort -nr
即可将文件内的行按最常见的频率排序 Linux 中的 diff 命令 diff 是一个非常方便的命令。假定有两个文件它们包含几乎相同的信息你没有办法找出区别。
diff 会处理文件然后告诉你有差异的地方。
假定有两个文件 dogs.txt 和 moredogs.txt。它们的区别是 moredogs.txt 比前者多了一条狗狗的名字 diff dogs.txt moredogs.txt 会告诉你后者多了一行在第 3 行有 Vanille 这一行 如果你改变两个文件的顺序它会告诉你后者的第三行丢失了也就是 Vanille 那一行 使用 -y 参数会逐行对比两个文件 你可能更熟悉 -u 参数因为在 Git 版本管理系统中它一样是用来显示不同版本文件差异的 对于目录比较的方式是一样的。你必须使用 -r 选项来进行递归比较进入子目录 如果你只对哪个文件存在差异感兴趣而非关注文件的内容可以使用 r 和 q 参数 它还支持更多参数你可以用 man 页面来探索只需键入 man diff Linux 中的 echo 命令 echo 命令会做一件简单的事情它将传递给自身的参数打印输出。
以下示例
echo “hello”
会将 hello 输出到终端。
我们可以将输出追加到文件中
echo “hello” output.txt
我们可以对环境变量进行插值
echo “The path variable is $PATH” 注意特殊字符需要用反斜杠进行转义。以 $ 为例 这只是个开始。当与 Shell 功能交互时我们可以用它来做一些很棒的事情。
我们可以输出当前文件夹中的文件
echo *
我们还可以输出当前文件夹中所有以字母 o 开头的文件
echo o*
任何有效的 Bash或者是你使用的其他 Shell命令和功能可以在此使用。
你可以输出你的主文件夹home的路径
echo ~ 你还可以执行命令并且将执行结果打印到标准输出或者是文件正如你看到的
echo $(ls -al) 注意输出在默认情况下不保留空白。如需留白必须用双引号来包裹命令 你可以用它生成字符串列表例如指定一个范围
echo {1…5} Linux 中的 chown 命令 在 Linux 或 macOS 操作系统或是任一 UNIX 系统中每个文件或目录都有所有者。
所有者可以对文件做任何事情。它可以决定文件的命运。
使用 chown 命令所有者以及 root 用户也可以将文件所有权转移给另一个用户
chown 所有者 文件
像这样
chown flavio test.txt
例如假设有一个为 root 所拥有的文件作为其他用户你无法对它进行写入 你可以使用 chown 将文件所有权转移到你 一种需求十分常见改变目录的所有权同时遍历修改其中包含的文件、子目录以及子目录中的文件的所有权。
你可以使用 -R 参数来完成
chown -R 所有者 文件
文件和目录不仅属于所有者同时还属于用户组。使用以下命令你可以在变更所有者的同时更改其所属用户组
chown 所有者:用户组 文件
举例
chown flavio:users test.txt
你还可以使用 chgrp 命令只更改文件的所属用户组
chgrp 用户组 文件名
Linux 中的 chmod 命令 在 Linux 或 macOS 操作系统或是任一 UNIX 系统中每个文件都有三种权限读取、写入和执行。
进入一个文件夹并运行 ls -al 命令。 你在文件列表每一行见到的像是 drwxr-xr-x 这样的奇怪字符串定义了文件或文件夹的权限。
让我们来剖析一下。
第一个字母表示文件的类型 - 表示这是一个常规的文件 d 表示这是一个目录 l 表示这是一个链接
之后你就有了三组值 第一组代表文件所有者拥有的权限 第二组代表文件所关联的用户组成员拥有的权限 第三组代表其他人拥有的权限
这些组由三个值组成。rwx 代表特定 角色 拥有读取、写入和执行访问权限。任何被移除的权限会被替换为 - 因此你可以将不同的值及其代表的相关权限进行组合例如 rw-、r--、r-x 等等。
你可以使用 chmod 命令来改变一个文件的权限。
chmod 有两种用法。其一是使用符号参数其二是使用数字参数。首先来试试更为直观的符号参数。
终端输入 chmod 空格之后加上一个字母 a 表示 all即全体 u 表示 user即用户 g 表示 group即用户组 o 表示 others即其他人
然后输入 或 - 并加上一个或多个权限符号r、w、x来添加或删除任意权限。
键入以上所有命令和参数之后都要加上文件或文件夹名称。
以下是一些例子
chmod ar filename #每个人都可以读取
chmod arw filename #每个人都可以读取和写入
chmod o-rwx filename #其他人非文件所有者也不在文件所属用户组中的用户无法读取、写入或执行文件
只需要在 /- 前添加多个字母即可将相同的权限批量应用到不同的身份
chmod og-r filename #其他人和用户组无法读取文件。
如果你正在编辑一个文件夹你可以使用 -r递归参数将权限应用到该文件夹中的每个文件。
使用数字参数速度更快但我认为当你不是每天都使用的话是很难记住它们的。数字在此代表任一角色的权限。这个数字值最大可以是7它是这样计算的 拥有执行权限记为 1 拥有写入权限记为 2 拥有读取权限记为 4
这又给我们带来四种组合 0 代表无权限 1 代表可以执行 2 代表可以写入 3 代表可以写入和执行 4 代表可以读取 5 代表可以读取和执行 6 代表可以读取和写入 7 代表可以读取、执行和写入
我们使用三组数字来同时设置所有 3 个用户身份的全部权限
chmod 777 filename
chmod 755 filename
chmod 644 filename
Linux 中的 umask 命令 创建一个文件时不需要事先决定权限。权限有默认值。
这些默认值可以使用 umask 命令来控制和修改。
不带参数输入 umask 它会显示当前的 umask 值本例中为 0022 0022 是什么意思 这是一个代表权限的八进制数值。
另一个常见的数值是 0002.
使用 umask -S 查看更具可读性的注释 在这里用户u也就是文件的所有者拥有对文件的读取、写入和执行的权限。
和所有者位于同一用户组的用户g拥有对文件的读取和执行权限除此之外的其他用户o也一样。
在数字符号中我们通常会改变最后3位数字。
以下列表给出了这些数字的含义 0 代表读取、写入与执行 1 代表读取与写入 2 代表读取与执行 3 代表只读 4 代表写入与执行 5 代表仅写入 6 代表仅执行 7 代表没有权限
注意这里的数字含义与前述 chmod 命令中用到的并不同。
可以用数值格式为权限掩码设置一个新的值
umask 002
也可以更改特定角色的权限
umask gr
Linux 中的 du 命令 du 命令会计算整个目录的大小
du 这里的 32 是一个单位为字节Byte的值。
运行 du * 会单独计算每个文件的大小 你也可以执行 du -m 或 du -g以兆字节MB或千兆字节GB为单位显示文件大小。
使用 -h 选项会显示更为可读的适应大小的数值 添加 -a 选项同样会输出文件夹中每一个文件的大小 一个方便的做法是按大小对目录进行排序
du -h | sort -nr
然后通过管道输出到 head 从而仅获取前 10 个结果 Linux 中的 df 命令 df 命令用来获取磁盘的使用情况信息。
它的基础形式会输出当前挂载的磁盘卷信息 使用 -h 参数 df -h会将值以更为可读的方式显示 你也可以指定任一文件或目录名以获取其所在的特定卷的信息 Linux 中的 basename 命令 假设有一个文件路径比如 /Users/flavio/test.txt。
执行
basename /Users/flavio/test.txt
会返回 text.txt 字符串 如果你在任一指向目录的路径字符串上执行 basename 你会得到路径的最后一节。在以下例子中/Users/flavio 是一个目录 Linux 中的 dirname 命令 假设有一个文件路径比如 /Users/flavio/test.txt。
执行
dirname /Users/flavio/test.txt
会返回 /Users/flavio 字符串 Linux 中的 ps 命令 电脑每时每刻都在运行大量不同的进程。
你可以用 ps 命令检查它们 这是当前会话中运行的由用户发起的进程列表。
此处我打开了一些 fish Shell 实例大多数是在 VS Code 编辑器内部启动的还运行了一个 Hugo 实例用来生成网站的开发预览。
这些只是分配给当前用户的命令。要列出所有进程我们需要给 ps 传递一些参数。
我最常使用的命令是 ps ax a 参数用来同时列出其他用户的进程。x 显示那些未与终端相连的进程不是由用户通过终端发起的。 如你所见较长的命令被截断了。使用 ps axww 继续在新的行上列出命令而非截断。 我们需要输入 w 两次来应用这个设置这不是笔误。 你可以配合使用 grep 和管道符来搜索特定的进程比如像这样
ps axww | grep “Visual Studio Code” ps 返回的列表达了一些重要信息。
第一个信息是 PID也就是进程 ID。当你想在另一个命令中引用这个进程时比如说要杀死它这是关键的。
然后是 TT它告诉我们进程所使用的终端 ID。
接下来 STAT 告诉我们进程的状态
I 代表闲置的进程睡眠时间超过约 20 秒
R 代表可运行的进程
S 代表睡眠时间少于 20 秒的进程
T 代表已停止的进程
U 代表处于不间断等待中的进程
Z 代表已死亡的进程zombie即僵尸进程
如果出现一个以上的字母那么第二个字母代表进一步的、可能非常有技术性的信息。
常见的是 它代表相应进程在终端中处于前台。而 s 代表相应进程是一个 会话领头进程session leader.
TIME 则告诉我们进程已经运行了多长时间。
Linux 中的 top 命令 top 命令用来显示系统中正在运行的进程的动态实时信息。
如果要了解系统发生了什么这条命令真的很方便。
它的用法很简单。你只需要输入 top 终端会完全沉浸到新的视图中 这个进程是持续运行的。要退出你可以输入字母 q 或按下 ctrl-C。
它给出了很多信息进程数量、有多少进程在运行或休眠、系统负载、CPU 使用率还有更多信息。
在下方占用 CPU 和内存资源最多的进程列表不断刷新。
默认情况下进程按 CPU 使用率排列正如你在高亮标记的 %CPU 列中看到的那样。
你可以添加一个参数要求进程列表按内存利用率排列
top -o mem
Linux 中的 kill 命令 Linux 进程可以接收信号并做出反应。
这是我们与运行中进程打交道的一种方式。
kill 程序可以向任一程序发送多种信号。
虽然这个命令的名字暗示了它的主要功能但它不只是用来终止程序的。
它的用法是
kill
默认情况下它会向指定的进程 ID 发送 TERM 信号。
我们可以使用参数来发送其它信号包括以下这些
kill -HUP
kill -INT
kill -KILL
kill -TERM
kill -CONT
kill -STOP
HUP 代表 hang up挂起。 如果在终止进程之前先关闭了启动它的终端窗口这一信号将被自动发送。
INT 代表 interrupt干扰这个信号和在终端中按下 ctrl-C 组合键的作用一样常常用来终结进程。
KILL 信号并不直接发送给进程而是发送到操作系统内核内核会让指定进程立刻停止并终结。
TERM 代表 terminate终结。这是本命令的默认信号进程收到它会自主终结。
CONT 代表 continue继续。它可以用来恢复一个被停止的进程。
STOP 信号并不直接发送给进程而是发送到操作系统内核内核会让指定进程立刻停止但不终结。
有时你也会见到用数字表示状态的情况例如 kill -1 PID。在这种情况下
1 对应 HUP
2 对应 INT
9 对应 KILL
15 对应 TERM
18 对应 CONT
15 对应 STOP
Linux 中的 killall 命令 与 kill 命令类似 killall 也向进程发送状态信号但区别是后者可以同时向多个进程发送信号而非前者只能向单个进程 ID 发送信号。
这是它的命令语法
killall
name 也就是进程的名字。例如假设有多个 top 程序的实例在运行 killall top 命令将完全终结它们。
你可以指定某一个信号就像使用 kill 命令那样请向上翻阅 kill 命令的指南以了解更多具体可以发送的信号例如
killall -HUP top
Linux 中的 jobs 命令 当我们在 Linux / macOS 中运行命令时我们可以在末尾加入 符号使其在后台运行。
例如让 top 命令在后台运行
top
这对于需要长时间运行的程序来说很方便。
要返回切入后台的程序可以使用 fg 命令。如果后台只有一个作业进程那么直接使用就好否则要在后面加上作业进程的号码如 fg 1、fg 2 以此类推。
要获取作业进程号我们可以使用 jobs 命令。
假设我们运行了 top 之后再运行 top -o mem 因而我们有两个 top 实例在运行。此时 jobs 命令会这样告诉我们 现在我们可以利用 fg 作业号 切回任意一个实例。要再次终止程序可以按下 cmd-Z 。
运行 jobs -l 也会列出每一个作业的进程 ID。
Linux 中的 bg 命令 当命令执行时你可以按下 ctrl-Z 暂停它。
按下后命令会即刻停止并将你带回到 Shell 终端。
你可以恢复命令在后台的执行这样既可以使命令保持运行同时又不会妨碍你在终端中做其他工作。
在这一例子中有 2 个命令停止了 运行 bg 1 即可在后台恢复作业 #1 的执行。
我也可以不带任何参数执行 bg 命令它会默认选取作业列表中的 #1 项。
Linux 中的 fg 命令 当命令在后台运行时由于此前你已经在命令末尾加上了 例如 top 或是使用了 bg 命令将命令放到后台此时你可以用 fg 命令将其切换回前台。
执行
fg
它将在前台恢复最后被暂停的作业。
你也可以加上作业号即可指定任一你想在前台恢复的作业作业号可以使用 jobs 命令获得。 执行 fg 2 将恢复作业 #2 Linux 中的 type 命令 命令可分为以下四种类型 可执行程序 Shell 内置程序 Shell 功能 命令别名
如果你很想知道或只是很好奇type 命令可以帮你分清这些。它会告诉你某一命令如何被解析。
输出根据 Shell 的类型而有所不同这是在 Bash 中的样子 这是在 Zsh 中的样子 这是在 Fish 中的样子 其中一个有趣的现象是对于别名它会告诉你某个别名将被解析到何处。例如在 Bash 和 Zsh 中 ll 显示为一个别名而在 Fish 中由于 ll 是默认提供的所以它会告诉你这是内置的 Shell 功能。
Linux 中的 which 命令 假定你有一个可直接执行的命令因为它处在 Shell 路径中但你想知道它的具体位置。
你可以用 which 来做这件事。这个命令会返回指定命令的路径。 which 只对存储在磁盘上的可执行文件起作用对别名或内置 Shell 功能无效。
Linux 中的 nohup 命令 有时你必须在远程机器上运行一个长时间活跃的进程但之后你需要断开连接。
或者你只是想防止当本地和服务器之间有任何网络问题时命令被停止执行。
要让任一命令在登出或关闭服务器会话后继续运行可以使用 nohup 命令。
执行 nohup 命令 可以让某个进程在你登出后继续工作。
Linux 中的 xargs 命令 在 UNIX Shell 中xargs 命令用来将标准输入的数据转换成命令的参数。
换句话说使用 xargs 可以将一条命令的输出用作另一条命令的输入。
下面是你将会用到的语法
command1 | xargs command2
我们使用管道符|将输出传递给 xargs。它将负责运行 command2 命令使用 command1 的输出作为参数。
我们来做个简单的例子。假设你要删除某个目录下的一些特定文件。这些文件列在一个文本文件中。
我们有三个文件 file1、 file2、 file3。
在 todelete.txt 中我们有一份想要删除的文件列表在这一例子中是 file1 和 file3 我们将通过 xargs 把 cat todelete.txt 的输出引向 rm 命令。
就像这样
cat todelete.txt | xargs rm
以下是执行结果我们列出的文件现在已经被删除 它的工作方式是xargs 会运行 rm 2次为 cat 返回的每一行运行一次。
这是 xargs 最简单的用法。我们还可以使用以下的一些参数。
在我看来其中最有用的是 -p特别是刚开始学习 xargs 时。使用这个选项将使 xargs 打印出一个确认提示说明它要采取的行动 -n 选项令 xargs 每次执行若干个迭代因此你可以用 -p 单独确认它们。这里我们用 -n1 告诉 xargs 一次执行一个迭代: 另一个广泛应用的参数是 -I。它可以将输出内容放入占位符之后你可以用来做各种事。
其中一件事是同时运行多个命令例如
command1 | xargs -I % /bin/bash -c ‘command2 %; command3 %’ 你可以将上方的 % 符号换成其他任何东西——它只是个变量。 Linux 中的 vim 编辑器命令 vim 是一个非常流行的文件编辑器特别是在程序员中。 它被积极开发且经常更新且有巨大的社区力量围绕着。甚至还有一个 Vim 会议
在现代系统中vi 只是 vim 的一个别名意思是“改进的 vi”即 “vi improved”。
你可以在命令行运行 vi 启动它。 调用时指定一个文件名你就可以编辑对应的文件
vi test.txt 你需要了解的是Vim 有两个主要的模式 命令command 模式也称为 普通normal 模式 插入insert 模式
当你启动编辑器时默认处于命令模式。这时你无法像期望的那样在基于图形界面的编辑器中输入文本。你需要进入插入模式。
可以按下 i 键进入插入模式。当你这样做之后 在编辑器下方会出现 -- 插入 -- 或 INSERT字样 现在你可以开始输入了用文件内容来填充终端屏幕 你可以用方向键在文件中移动光标或者使用 h - j - k - l 四个键。 h-l 代表左和右j-k 代表上和下。
当完成编辑时按下 esc 键即可退出插入模式回到命令模式。 此时你可以浏览文件但无法向其添加内容要注意按下了哪个键某些键可能是编辑器的命令。
现在你可能想知道如何保存文件。可以按下 : 冒号然后输入 w即 :w
要保存并退出可以按下 : 然后输入 w 和 q即 :wq
要退出但不保存文件可以按下 : 然后输入 q 和 !即 :q!
自我介绍一下小编13年上海交大毕业曾经在小公司待过也去过华为、OPPO等大厂18年进入阿里一直到现在。
深知大多数Linux运维工程师想要提升技能往往是自己摸索成长或者是报班学习但对于培训机构动则几千的学费着实压力不小。自己不成体系的自学效果低效又漫长而且极易碰到天花板技术停滞不前
因此收集整理了一份《2024年Linux运维全套学习资料》初衷也很简单就是希望能够帮助到想自学提升又不知道该从何学起的朋友同时减轻大家的负担。
既有适合小白学习的零基础资料也有适合3年以上经验的小伙伴深入学习提升的进阶课程基本涵盖了95%以上Linux运维知识点真正体系化
由于文件比较大这里只是将部分目录大纲截图出来每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频并且后续会持续更新
如果你觉得这些内容对你有帮助可以添加VXvip1024b 备注Linux运维获取
i 启动它。 调用时指定一个文件名你就可以编辑对应的文件
vi test.txt 你需要了解的是Vim 有两个主要的模式 命令command 模式也称为 普通normal 模式 插入insert 模式
当你启动编辑器时默认处于命令模式。这时你无法像期望的那样在基于图形界面的编辑器中输入文本。你需要进入插入模式。
可以按下 i 键进入插入模式。当你这样做之后 在编辑器下方会出现 -- 插入 -- 或 INSERT字样 现在你可以开始输入了用文件内容来填充终端屏幕 你可以用方向键在文件中移动光标或者使用 h - j - k - l 四个键。 h-l 代表左和右j-k 代表上和下。
当完成编辑时按下 esc 键即可退出插入模式回到命令模式。 此时你可以浏览文件但无法向其添加内容要注意按下了哪个键某些键可能是编辑器的命令。
现在你可能想知道如何保存文件。可以按下 : 冒号然后输入 w即 :w
要保存并退出可以按下 : 然后输入 w 和 q即 :wq
要退出但不保存文件可以按下 : 然后输入 q 和 !即 :q!
自我介绍一下小编13年上海交大毕业曾经在小公司待过也去过华为、OPPO等大厂18年进入阿里一直到现在。
深知大多数Linux运维工程师想要提升技能往往是自己摸索成长或者是报班学习但对于培训机构动则几千的学费着实压力不小。自己不成体系的自学效果低效又漫长而且极易碰到天花板技术停滞不前
因此收集整理了一份《2024年Linux运维全套学习资料》初衷也很简单就是希望能够帮助到想自学提升又不知道该从何学起的朋友同时减轻大家的负担。 [外链图片转存中…(img-0CjxVPqF-1712508047644)] [外链图片转存中…(img-6FV6oiIZ-1712508047644)] [外链图片转存中…(img-Q5sJHIVR-1712508047645)] [外链图片转存中…(img-HJgvCvMj-1712508047645)] [外链图片转存中…(img-HP7ivV5s-1712508047645)]
既有适合小白学习的零基础资料也有适合3年以上经验的小伙伴深入学习提升的进阶课程基本涵盖了95%以上Linux运维知识点真正体系化
由于文件比较大这里只是将部分目录大纲截图出来每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频并且后续会持续更新
如果你觉得这些内容对你有帮助可以添加VXvip1024b 备注Linux运维获取 [外链图片转存中…(img-Ra9prdqt-1712508047646)]