40个常用的基本Linux命令,字节跳动+阿里+华为+小米等10家大厂面试真题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

$ id root

uid=0(root) gid=0(root) groups=0(root)

8) clear


该命令清空当前屏幕。

9) help 选项


对于几乎所有命令,“-help”选项都会显示该命令的使用摘要。

$ date --help

Usage: date [OPTION]… [+FORMAT] or: date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]] Display the current time in the given FORMAT, or set the system date.

10) whatis


此命令提供有关某个命令的一行描述。 它可以用作任何命令的快速参考。

$ whatis date

date (1) - print or set the system date and time

$ whatis whatis

whatis (1) - display manual page descriptions

11) man


“ --help”选项和“ whatis”命令未提供有关命令的详尽信息。 有关更多详细信息,Linux提供了手册页和信息页。 要查看命令的手册页,可以使用man命令。

$ man date

手册比较充分地对命令做出了说明。 它们包括以下部分:

  • NAME:命令的名称和一行描述。

  • SYNOPSIS::命令语法。

  • DESCRIPTION:有关命令功能的详细描述。

  • OPTIONS:所有命令选项的列表和说明。

  • EXAMPLES:命令用法示例。

  • FILES:与命令关联的任何文件。

  • AUTHOR:手册页的作者

  • REPORTING BUGS:您可以报告任何错误的网站或邮件ID的链接。

  • SEE ALSO:与该命令有关的任何命令,以供进一步参考。

使用-k选项,可以搜索手册页。

$ man -k gzip

gzip (1) - compress or expand files

lz (1) - gunzips and shows a listing of a gzip’d tar’d archive

tgz (1) - makes a gzip’d tar archive

uz (1) - gunzips and extracts a gzip’d tar’d archive

zforce (1) - force a ‘.gz’ extension on all gzip files

12) Info


信息文档有时比手册页更为详尽。 但是对于某些命令,信息页与手册页相同。 这些就像网页一样。 内部链接位于信息页面内。 这些链接称为节点。 可以通过这些节点将信息页面从一页导航到另一页。

$ info date

Linux文件系统命令

=============================================================================

13) cd


该命令用于切换目录。

$ cd [path-to-directory]

将当前工作目录更改为作为参数提供的目录。 如果没有为“ cd”提供参数,它将目录更改为用户的主目录。 目录路径可以是绝对路径,也可以是相对于当前目录的路径。 绝对路径始终以 / 开头。 可以使用“ pwd”命令检查当前目录:

$ pwd

/home/raghu

$ cd /usr/share/

$ pwd

/usr/share

$ cd doc

$ pwd

/usr/share/doc

在第一个“ cd”命令中,使用绝对路径(/ usr / share),在第二个命令中,使用相对路径(doc)。

14) ls


该命令用于列出文件和目录。

$ ls [files-or-directories]

列出文件和/或目录。 如果未提供任何参数,则显示当前目录的内容。

$ ls

example file1.txt file2.txt file3.txt

如果将目录作为参数,则显示该目录中的文件和目录。

$ ls /usr

bin games include lib lib64 local sbin share src

“ ls -l”显示文件的详细信息。

$ ls -l

total 4

drwxr-xr-x 2 raghu raghu 4096 2012-07-06 12:52 example

-rw-r–r-- 1 raghu raghu 0 2012-07-06 12:52 file1.txt

-rw-r–r-- 1 raghu raghu 0 2012-07-06 12:52 file2.txt

-rw-r–r-- 1 raghu raghu 0 2012-07-06 12:52 file3.txt

第一个字符为’d’或’-’。 它区分文件类型。 带“-”(破折号)的条目是常规文件,带“ d”的条目是目录。 接下来的9个字符是权限(在第一个列表中为“ rwxr-xr-x”)。 权限后面的数字是链接数。 链接计数跟随用户和组所有者。 在上面的示例中,文件所有者是“ raghu”,组所有者也是“ raghu”。 接下来是文件的大小。 然后在文件(或目录)名称之前添加时间戳。

缺省情况下,不显示隐藏文件或目录,也可以使用-a选项查看隐藏文件。 Linux中的隐藏文件以点号(。)开头。 任何以句点开头的文件都是隐藏的。 因此,要隐藏文件,你只需要重命名它(并在文件名前加上句点)。

$ ls -la odesk

total 16

drwxr-xr-x 4 raghu raghu 4096 2012-07-06 13:46 .

drwxr-xr-x 11 raghu raghu 4096 2012-07-06 13:15 …

drwxr-xr-x 2 raghu raghu 4096 2012-07-06 12:52 example

-rw-r–r-- 1 raghu raghu 0 2012-07-06 12:52 file1.txt

-rw-r–r-- 1 raghu raghu 0 2012-07-06 12:52 file2.txt

-rw-r–r-- 1 raghu raghu 0 2012-07-06 12:52 file3.txt

drwxr-xr-x 2 raghu raghu 4096 2012-07-06 13:46 .hiddendir

-rw-r–r-- 1 raghu raghu 0 2012-07-06 13:46 .hiddenfile1.txt

-rw-r–r-- 1 raghu raghu 0 2012-07-06 13:46 .hiddenfile2.txt

如果要查看目录的属性而不是包含目录中的文件,使用-d(带有-l)选项:

$ ls -ld odesk/

drwxr-xr-x 4 raghu raghu 4096 2012-07-06 13:46 odesk/

创建文件和目录

=========================================================================

15) mkdir


该命令用于创建目录。

$ mkdir example

$ ls -l

total 4

drwxr-xr-x 2 raghu raghu 4096 2012-07-06 14:09 example

16) touch


该命令用于创建一个空的文件。

$ touch file1 file2 file3

$ ls -l

total 4

drwxr-xr-x 2 raghu raghu 4096 2012-07-06 14:09 example

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file1

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file2

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file3

如果文件已经存在,touch命令将更新其时间戳。 还有许多其他方法可以创建新文件,例如 使用vi或gedit之类的文本编辑器,或使用重定向。

这是使用重定向创建文件的示例:

$ ls -l /usr > usrlisting

$ ls -l

total 8

drwxr-xr-x 2 raghu raghu 4096 2012-07-06 14:09 example

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file1

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file2

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file3

-rw-r–r-- 1 raghu raghu 491 2012-07-06 14:23 usrlisting

在本示例中,创建了一个名为usrlisting的文件。

复制、移动和删除

==========================================================================

17) cp


该命令用于复制文件和目录。

$cp source destination

复制的是文件,

$ cp usrlisting listing_copy.txt

$ ls -l

total 12

drwxr-xr-x 2 raghu raghu 4096 2012-07-06 14:09 example

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file1

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file2

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file3

-rw-r–r-- 1 raghu raghu 491 2012-07-06 16:02 listing_copy.txt

-rw-r–r-- 1 raghu raghu 491 2012-07-06 14:23 usrlisting

如果目标是目录,则将文件以其原始名称复制到该目录中。

$ cp listing_copy.txt example/

$ ls -l example/

total 4

-rw-r–r-- 1 raghu raghu 491 2012-07-06 16:07 listing_copy.txt

也可以复制多个文件,但是在这种情况下,最后一个参数应该是要复制所有文件的目录。 其余参数将被视为文件名。

$ cp file1 file2 example/

$ ls -l example/

total 4

-rw-r–r-- 1 raghu raghu 0 2012-07-06 16:10 file1

-rw-r–r-- 1 raghu raghu 0 2012-07-06 16:10 file2

-rw-r–r-- 1 raghu raghu 491 2012-07-06 16:07 listing_copy.txt

如果要复制目录,则必须使用其中包含的文件递归复制它。 要递归复制目录,需要在“ cp”命令中使用-r选项:

$ cp -r example /tmp/expertslogin/

$ ls -l /tmp/expertslogin

total 4

drwxr-xr-x 2 raghu raghu 4096 2012-07-06 16:12 example

18) mv


该命令用于移动文件或目录。

$ mv source destination

移动文件或目录。 “ mv”命令的工作方式类似于“ cp”命令,不同之处在于移动时原始文件已删除。 而且,可以使用mv命令重命名文件(或目录)。

$ mv listing_copy.txt usrcopy

$ ls -l

total 12

drwxr-xr-x 2 raghu raghu 4096 2012-07-06 16:10 example

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file1

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file2

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file3

-rw-r–r-- 1 raghu raghu 491 2012-07-06 16:02 usrcopy

-rw-r–r-- 1 raghu raghu 491 2012-07-06 14:23 usrlisting

在这里,“ listing_copy.txt”以名称“ usrcopy”移动到同一目录中(或者可以说它已被重命名)。

19) rmdir、rm


  • ‘rmdir’ 命令删除所有空目录

$ rmdir

但是如果其中存在文件,则无法删除该目录。 要使用“ rmdir”命令,必须首先删除要删除的目录(可能还有目录,如果有)中的所有文件。

  • ‘rm’ 命令用于删除文件和目录

$ rm files|directories

必须使用-r选项以递归方式删除目录。

$ rm file2

$ rm -r example/

$ ls -l

total 8

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file1

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file3

-rw-r–r-- 1 raghu raghu 491 2012-07-06 16:02 usrcopy

-rw-r–r-- 1 raghu raghu 491 2012-07-06 14:23 usrlisting

在这里,首先删除名为“ file2”的文件,然后递归删除目录“ example”。 可以在“ ls -l”命令的输出中看到,这两个不再存在。

其它的文件命令

=========================================================================

20) file


file命令确定给定文件的文件类型。

$ file /etc/passwd

/etc/passwd: ASCII text

可以提供一个或多个文件作为file命令的参数。

$ file td.c td.out ARP.java Screenshot.png StringTokenizing.class

idl.rar List.pdf

td.c: ASCII C program text, with CRLF line terminators

td.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped

ARP.java: ASCII Java program text, with CRLF line terminators

Screenshot.png: PNG image data, 1366 x 768, 8-bit/color RGB, non-interlaced

StringTokenizing.class: compiled Java class data, version 50.0 (Java 1.6)

idl.rar: RAR archive data, v1d, os: Win32

List.pdf: PDF document, version 1.4

21) stat


该命令用于检查文件的状态。

这比“ ls -l”输出提供了有关文件的更多详细信息。

$ stat usrcopy

File: `usrcopy’

Size: 491 Blocks: 8 IO Block: 4096 regular file

Device: 808h/2056d Inode: 149452 Links: 1

Access: (0644/-rw-r–r–) Uid: ( 1000/ raghu) Gid: ( 1000/ raghu)

Access: 2012-07-06 16:07:06.413522009 +0530

Modify: 2012-07-06 16:02:30.204152386 +0530

Change: 2012-07-06 16:17:18.992559654 +0530

22) cat


“ cat”命令实际上是连接器,但可用于查看文件的内容。

$ cat /etc/passwd

root❌0:0:root:/root:/bin/bash

daemon❌1:1:daemon:/usr/sbin:/bin/sh

bin❌2:2:bin:/bin:/bin/sh

sys❌3:3:sys:/dev:/bin/sh

sync❌4:65534:sync:/bin:/bin/sync

games❌5:60:games:/usr/games:/bin/sh

23) pagers


cat命令将文件整体列出。 但是,如果文件足够大以适合一个屏幕,那么我们将只能看到文件的最后一页。 命令’less’ 和’more’ 一次显示一个文件。 因此,它们也称为pagers。 可以使用箭头键浏览文件。 要退出pagers,按“ q”。

24) head


显示文件的前几行。 默认情况下,“ head”命令显示文件的前10行。 但是,使用-n选项,可以指定要查看的行数。

$ head /etc/passwd

root❌0:0:root:/root:/bin/bash

daemon❌1:1:daemon:/usr/sbin:/bin/sh

bin❌2:2:bin:/bin:/bin/sh

sys❌3:3:sys:/dev:/bin/sh

sync❌4:65534:sync:/bin:/bin/sync

games❌5:60:games:/usr/games:/bin/sh

man❌6:12👨/var/cache/man:/bin/sh

lp❌7:7:lp:/var/spool/lpd:/bin/sh

mail❌8:8:mail:/var/mail:/bin/sh

news❌9:9:news:/var/spool/news:/bin/sh

25) tail


类似于“头”; 默认情况下,“ tail”命令显示最后10行,并且-n选项也可用。

$ tail -n 4 /etc/passwd

raghu❌1000:1000:Raghu Sharma,:/home/raghu:/bin/bash

sshd❌113:65534::/var/run/sshd:/usr/sbin/nologin

dictd❌114:123:Dictd Server,:/var/lib/dictd:/bin/false

mysql❌115:124:MySQL Server,:/nonexistent:/bin/false

26) wc


此命令对输入的行,单词和字母进行计数。

$ wc /etc/passwd

35 57 1698 /etc/passwd

/ etc / passwd文件中包含35行,57个单词和1698个字母。

27) grep


“ grep”命令可在文件(或标准输入)中搜索模式。 它支持正则表达式。 如果与该行中的模式匹配,则返回该行。 因此,如果我们希望找到包含“ nologin”一词的行,可以使用“ grep”,如下所示:

$ grep nologin /etc/passwd

sshd❌113:65534::/var/run/sshd:/usr/sbin/nologin

28) ln


ln命令在Linux中用于创建链接。 链接是指向其他文件的一种快捷方式。

$ ln TARGET LINK_NAME

链接有两种类型,软链接和硬链接。 默认情况下,将创建硬链接。 如果要创建软链接,请使用-s选项。 在此示例中,为文件usrlisting创建了两种类型的链接。

$ ln usrlisting hard_link

$ ln -s usrlisting soft_link

$ ls -l

total 12

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file1

-rw-r–r-- 1 raghu raghu 0 2012-07-06 14:20 file3

-rw-r–r-- 2 raghu raghu 491 2012-07-06 14:23 hard_link

lrwxrwxrwx 1 raghu raghu 10 2012-07-09 14:00 soft_link -> usrlisting

-rw-r–r-- 1 raghu raghu 491 2012-07-06 16:02 usrcopy

-rw-r–r-- 2 raghu raghu 491 2012-07-06 14:23 usrlisting

文本编辑

======================================================================

29) Pico & Nano


“ Pico”是Linux中的文本编辑器。 “ Nano”编辑器的灵感来自“ pico”。 它们的工作原理几乎相同。 如果存在作为文件名给出的参数,则将在pico / nano中打开该文件进行编辑。 否则,将创建一个具有该名称的新文件。 让我们创建一个名为hello.txt的新文件:

$ pico hello.txt

GNU nano 2.2.6 File: hello.txt Modified

This file is edited with pico editor.

^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos

^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text^T To Spell

对文件进行所有更改后,按“ ctrl + o”将更改写入文件,然后按“ ctrl + x”退出编辑器。 该编辑器有很多功能可用。 可以使用“ ctrl + g”键来访问帮助菜单。

30) VI editor


VI代表可视化编辑器; Linux中的另一个文本编辑器。 这是许多Linux / Unix环境中的标准编辑器。 这是许多Linux发行版附带的默认编辑器。 它可能是发行版中唯一可用的文本编辑器。

可以使用vi打开文件进行编辑,方法如下:

$ vi hello.txt

vi编辑器有3种模式可以执行其功能。

默认为COMMAND模式,可以执行复制,粘贴,撤消等任务。 只能从命令模式更改模式(然后返回到该模式)。

第二种模式是INSERT模式,在该模式下,输入的任何键都将被视为字符,并将被加载到文件缓冲区中。 要进入此模式,在命令模式下按“ i”。

最后模式是EX模式或底线命令模式。 在命令模式下按 “:”进入底线命令模式。 在此模式下,可以保存或放弃在缓冲区中所做的更改。

Hello world.

This file is edited using vi editor.

~

~

~

~

~

“hello.txt” 2 lines, 50 characters

其余常用命令

========================================================================

31) alias


“别名”是命令的另一个名称。 如果未提供任何参数,则显示当前别名。 别名可用于命令的简称。 例如,你可能经常使用clear命令。 你可以为其创建别名:

$ alias c=“clear”

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-8BzbN6Ee-1713295668884)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值