maoli@ubuntu:~$w08:07:38up2min,1user,loadaverage:0.83,0.64,0.27USERTTYFROMLOGIN@IDLEJCPUPCPUWHATmaolitty7:008:062:382.29s0.31s/sbin/upstart-maoli@ubuntu:~$whomaolitty72020-05-2808:06(:0)maoli@ubuntu:~$lastmaolitty7:0ThuMay2808:06gone-nologoutrebootsystemboot4.15.0-99-generiThuMay2808:04stillrunningmaolitty7:0FriMay115:20-down(01:26)rebootsystemboot4.15.0-99-generiFriMay115:20-16:47(01:26)maolitty7:0FriMay110:12-crash(05:08)wtmpbeginsFriMay110:12:222020maoli@ubuntu:~$sudolastb[sudo]maoli的密码:btmpbeginsFriMay115:20:292020查看自己使用的Shell查看自己使用的Shell – 「ps」。
Shell也被称为“壳”或“壳程序”,它是用户与 *** 作系统内核交流的翻译官,简单的说就是人与计算机交互的界面和接口。
目前很多Linux系统默认的Shell都是bash(Bourne Again SHell),因为它可以使用tab键进行命令和路径补全、可以保存历史命令、可以方便的配置环境变量以及执行批处理 *** 作。
maoli@ubuntu:~$psPIDTTYTIMECMD3621pts/100:00:00bash5082pts/100:00:00ps查看命令的说明和位置查看命令的说明和位置 – 「whatis」 / 「which」 / 「whereis」。
maoli@ubuntu:~$whatispsps(1)-reportasnapshotofthecurrentprocesses.maoli@ubuntu:~$whatispythonpython(1)-aninterpreted,interactive,object-orientedprogrammi...maoli@ubuntu:~$whereispsps:/bin/ps/usr/share/man/man1/ps.1.gzmaoli@ubuntu:~$whereispythonpython:/usr/bin/python3.5m-config/usr/bin/python/usr/bin/python3.5/usr/bin/python3.5m/usr/bin/python2.7/usr/bin/python3.5-config/usr/lib/python3.5/usr/lib/python2.7/etc/python/etc/python3.5/etc/python2.7/usr/local/lib/python3.5/usr/local/lib/python2.7/usr/include/python3.5/usr/include/python3.5m/usr/share/python/usr/share/man/man1/python.1.gzmaoli@ubuntu:~$whichps/bin/psmaoli@ubuntu:~$whichpython/usr/bin/python清除屏幕上显示的内容清除屏幕上显示的内容 – 「clear」。
查看帮助文档查看帮助文档 – 「man」 / 「info」 / 「help」 / 「apropos」。
maoli@ubuntu:~$ps--helpUsage:ps[options]Try'ps--help<simple|list|output|threads|misc|all>'or'ps--help<s|l|o|t|m|a>'foradditionalhelptext.Formoredetailsseeps(1).maoli@ubuntu:~$manpsPS(1)UserCommandsPS(1)NAMEps-reportasnapshotofthecurrentprocesses.SYNOPSISps[options]DESCRIPTION...查看系统和主机名查看系统和主机名 – 「uname」 / 「hostname」。
maoli@ubuntu:~$unameLinuxmaoli@ubuntu:~$hostnameubuntu时间和日期时间和日期 – 「date」 / 「cal」。
maoli@ubuntu:~$date2020年05月28日星期四08:13:25CSTmaoli@ubuntu:~$cal五月2020日一二三四五六12345678910111213141516171819202122232425262728293031maoli@ubuntu:~$cal52020五月2020日一二三四五六12345678910111213141516171819202122232425262728293031重启和关机重启和关机 – 「reboot」 / 「shutdown」。
maoli@ubuntu:~$shutdown-h+5#五分钟关机Shutdownscheduledfor四2020-05-2808:19:24CST,use'shutdown-c'tocancel.[root~]#maoli@ubuntu:~$shutdown-cmaoli@ubuntu:~$shutdown-r12:00Shutdownscheduledfor四2020-05-2812:00:00CST,use'shutdown-c'tocancelmaoli@ubuntu:~$shutdown-c说明:在执行shutdown命令时会向登录系统的用户发出警告,可以在命令后面跟上警告消息来替换默认的警告消息,也可以在-h参数后通过now来表示立刻关机。
退出登录退出登录 – 「exit」 / 「logout」。
查看历史命令查看历史命令 – 「history」。
maoli@ubuntu:~$history...625date626cal627cal52020628shutdown-c629shutdown-r12:00630shutdown-c631historymaoli@ubuntu:~$!631说明:查看到历史命令之后,可以用!历史命令编号来重新执行该命令;通过history -c可以清除历史命令。
实用程序文件和文件夹 *** 作创建/删除空目录创建/删除空目录 – 「mkdir」 / 「rmdir」。
[root~]#mkdirrunsen[root~]#mkdir-pabc/runsen[root~]#rmdirrunsen创建/删除文件创建/删除文件 – 「touch」 / 「rm」。
maoli@ubuntu:~$touchreadme.txtmaoli@ubuntu:~$rmreadme.txtrm:removeregularemptyfile‘readme.txt’?y[root~]#rm-rfxyztouch命令用于创建空白文件或修改文件时间。
在Linux系统中一个文件有三种时间: 更改内容的时间 – mtime。
更改权限的时间 – ctime。
最后访问时间 – atime。
rm的几个重要参数: -i:交互式删除,每个删除项都会进行询问。
-r:删除目录并递归的删除目录中的文件和目录。
-f:强制删除,忽略不存在的文件,没有任何提示。
切换和查看当前工作目录切换和查看当前工作目录 – 「cd」 / 「pwd」。
说明:cd命令后面可以跟相对路径(以当前路径作为参照)或绝对路径(以/开头)来切换到指定的目录,也可以用cd ..来返回上一级目录。
返回到上上一级目录应该给cd ../../命令。
查看目录内容查看目录内容 – 「ls」。
-l:以长格式查看文件和目录。
-a:显示以点开头的文件和目录(隐藏文件)。
-R:遇到目录要进行递归展开(继续列出目录下面的文件和目录)。
-d:只列出目录,不列出其他内容。
-S / -t:按大小/时间排序。
查看文件内容查看文件内容 – 「cat」 / 「tac」 / 「head」 / 「tail」 / 「more」 / 「less」 / 「rev」 / 「od」。
maoli@ubuntu:~$wgethttps://www.csdn.net/--2020-05-2808:25:01--https://www.csdn.net/正在解析主机www.csdn.net(www.csdn.net)...47.95.164.112正在连接www.csdn.net(www.csdn.net)|47.95.164.112|:443...已连接。
已发出HTTP请求,正在等待回应...200OK长度:未指定[text/html]正在保存至:“index.html”index.html[<=>]420.39K1.53MB/sin0.3s2020-05-2808:25:02(1.53MB/s)-“index.html”已保存[430482]maoli@ubuntu:~$catindex.html<!DOCTYPEhtml>...maoli@ubuntu:~$head-10index.html<!DOCTYPEhtml><html><head><metacharset="utf-8"><metahttp-equiv="X-UA-Compatible"content="IE=Edge"><metaname="viewport"content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"><metaname="apple-mobile-web-app-status-bar-style"content="black"><metaname="referrer"content="always"><metaname="msvalidate.01"content="3189512127C34C46BC74BED5852D45E4"/><title>CSDN-专业IT技术社区</title>maoli@ubuntu:~$tail-2index.html<scriptsrc="https://g.csdnimg.cn/side-toolbar/2.0/side-toolbar.js"></script></html>maoli@ubuntu:~$lessindex.html#相当于catmaoli@ubuntu:~$cat-nindex.html|more...说明:上面用到了一个名为wget的命令,它是一个网络下载器程序,可以从指定的URL下载资源。
拷贝/移动文件拷贝/移动文件 – 「cp」 / 「mv」。
maoli@ubuntu:~$mkdirbackupmaoli@ubuntu:~$cpindex.htmlbackup/maoli@ubuntu:~$cdbackup/maoli@ubuntu:~/backup$lsindex.htmlmaoli@ubuntu:~/backup$mvindex.htmlcsdn.htmlmaoli@ubuntu:~/backup$lscsdn.html文件重命名文件重命名 – 「rename」。
查找文件和查找内容查找文件和查找内容 – 「find」 / 「grep」。
maoli@ubuntu:~/backup$ find ./ -name "*.html"./csdn.htmlmaoli@ubuntu:~/backup$ find / -name "*.html"/usr/local/java/jdk-11.0.6/README.html/usr/local/python3/lib/python3.6/idlelib/help.html/usr/local/python3/lib/python3.6/test/sgml_input.html/usr/local/python3/lib/python3.6/test/test_difflib_expect.html...maoli@ubuntu:~/backup$ find . -type f -size +2k./csdn.htmlmaoli@ubuntu:~/backup$ find . -type f -name "*.swp" -deletemaoli@ubuntu:~/backup$ grep "<script>" csdn.html -n3192: <script>maoli@ubuntu:~/backup$ grep -E </?script.*> csdn.html -n12: <script src='//g.csdnimg.cn/tingyun/1.8.3/www.js' type='text/javascript'></script>18: <script src="//csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js" type="text/javascript"></script>19: <script src="//g.csdnimg.cn/??login-box/1.0.7/login-box.js,login-box/1.0.7/login-auto.js" type="text/javascript"></script>...说明:grep在搜索字符串时可以使用正则表达式,如果需要使用正则表达式可以用grep -E或者直接使用egrep。
创建链接和查看链接创建链接和查看链接 – 「ln」 / 「readlink」。
maoli@ubuntu:~/backup$ls-lcsdn.html-rw-rw-r--1maolimaoli4304825月2808:30csdn.htmlmaoli@ubuntu:~/backup$ln/home/maoli/backup/csdn.html/home/maoli/csdnmaoli@ubuntu:~/backup$ls-lcsdn.html-rw-rw-r--2maolimaoli4304825月2808:30csdn.html说明:链接可以分为硬链接和软链接(符号链接)。
硬链接可以认为是一个指向文件数据的指针,就像Python中对象的引用计数,每添加一个硬链接,文件的对应链接数就增加1,只有当文件的链接数为0时,文件所对应的存储空间才有可能被其他文件覆盖。
我们平常删除文件时其实并没有删除硬盘上的数据,我们删除的只是一个指针,或者说是数据的一条使用记录,所以类似于“文件粉碎机”之类的软件在“粉碎”文件时除了删除文件指针,还会在文件对应的存储区域填入数据来保证文件无法再恢复。
软链接类似于Windows系统下的快捷方式,当软链接链接的文件被删除时,软链接也就失效了。
压缩/解压缩和归档/解归档.压缩/解压缩和归档/解归档 – 「gzip」 / 「gunzip」 / 「xz」。
maoli@ubuntu:~$lsredis-4.0.10.tar.tar.gzmaoli@ubuntu:~$gunzipredis-4.0.10.tar.tar.gzmaoli@ubuntu:~$lsredis-4.0.10.tar.tar归档和解归档归档和解归档 – 「tar」。
maoli@ubuntu:~$tar-xvfredis-4.0.10.tarredis-4.0.10/redis-4.0.10/.gitignoreredis-4.0.10/00-RELEASENOTESredis-4.0.10/BUGSredis-4.0.10/CONTRIBUTINGredis-4.0.10/COPYINGredis-4.0.10/INSTALLredis-4.0.10/MANIFESTOredis-4.0.10/Makefileredis-4.0.10/README.mdredis-4.0.10/deps/redis-4.0.10/deps/Makefileredis-4.0.10/deps/README.md...说明:归档(也称为创建归档)和解归档都使用tar命令,通常创建归档需要-cvf三个参数,其中c表示创建(create),v表示显示创建归档详情(verbose),f表示指定归档的文件(file);解归档需要加上-xvf参数,其中x表示抽取(extract),其他两个参数跟创建归档相同。
将标准输入转成命令行参数将标准输入转成命令行参数 – 「xargs」。
下面的命令会将查找当前路径下的html文件,然后通过xargs将这些文件作为参数传给rm命令,实现查找并删除文件的 *** 作。
maoli@ubuntu:~$find.-typef-name"*.html"|xargsrm-f下面的命令将a.txt文件中的多行内容变成一行输出到b.txt文件中,其中<表示从a.txt中读取输入,>表示将命令的执行结果输出到b.txt中。
maoli@ubuntu:~$xargs<a.txt>b.txt显示文件或目录显示文件或目录 – 「basename」 / 「dirname」。
其他相关工具其他相关工具。
「sort」 – 对内容排序「uniq」 – 去掉相邻重复内容「tr」 – 替换指定内容为新内容「cut」 / 「paste」 – 剪切/黏贴内容「split」 – 拆分文件「file」 – 判断文件类型「wc」 – 统计文件行数、单词数、字节数「iconv」 – 编码转换maoli@ubuntu:~$catfoo.txtgrapeapplepitayamaoli@ubuntu:~$catbar.txt100200300400maoli@ubuntu:~$pastefoo.txtbar.txtgrape100apple200pitaya300400maoli@ubuntu:~$pastefoo.txtbar.txt>hello.txtmaoli@ubuntu:~$cut-b4-8hello.txtpe10le20aya30maoli@ubuntu:~$cathello.txt|tr't'','grape,100apple,200pitaya,300,400maoli@ubuntu:~$split-l100sohu.htmlhellomaoli@ubuntu:~$wgethttps://www.baidu.com/img/bd_logo1.pngmaoli@ubuntu:~$filebd_logo1.pngbd_logo1.png:PNGimagedata,540x258,8-bitcolormap,non-interlacedmaoli@ubuntu:~$wcindex.html382018696430482index.htmlmaoli@ubuntuwgethttp://www.qq.com-Oqq.htmlmaoli@ubuntuiconv-fgb2312-tutf-8qq.html管道和重定向管道的使用管道的使用 – 「|」。
例子:查找当前目录下文件个数。
maoli@ubuntu:~$find./|wc-l80801例子:列出当前路径下的文件和文件夹,给每一项加一个编号。
maoli@ubuntu:~$ls|cat-n1abc2backup例子:查找record.log中包含AAA,但不包含BBB的记录的总数maoli@ubuntu:~$catrecord.log|grepAAA|grep-vBBB|wc-l输出重定向输出重定向和错误重定向 – 「>」 / 「>>」 / 「2>」。
maoli@ubuntu:~$catreadme.txtbananaapplegrapeapplegrapewatermelonpearpitayamaoli@ubuntu:~$catreadme.txt|sort|uniq>result.txtmaoli@ubuntu:~$catresult.txtapplebananagrapepearpitayawatermelon输入重定向输入重定向 – 「<」。
maoli@ubuntu:~$echo'hello,world!'>hello.txtmaoli@ubuntu:~$echo'Iwillshowyousomecode.'>>hello.txtmaoli@ubuntu:~$cathello.txthello,world!Iwillshowyousomecode.多重定向多重定向 – 「tee」。
下面的命令除了在终端显示命令ls的结果之外,还会追加输出到ls.txt文件中。
maoli@ubuntu:~$ls|tee-als.txtmaoli@ubuntu:~$catls.txtabcbackup别名「alias」创建别名maoli@ubuntu:~$aliasll='ls-l'maoli@ubuntu:~$aliasfrm='rm-rf'maoli@ubuntu:~$ll量144920drwxrwxr-x3maolimaoli40965月2808:20abcmaoli@ubuntu:~$frmabc「unalias」删除别名maoli@ubuntu:~$funaliasfrmmaoli@ubuntu:~$frmindex.html-bash:frm:commandnotfound文本处理字符流编辑器字符流编辑器 – 「sed」。
sed是 *** 作、过滤和转换文本内容的工具。
假设有一个名为fruit.txt的文件,内容如下所示。
maoli@ubuntu:~$cat-nfruit.txt1banana2grape3apple4watermelon5orange接下来,我们在第2行后面添加一个pitaya。
maoli@ubuntu:~$sed'2apitaya'fruit.txtbananagrapepitayaapplewatermelonorange在第2行前面插入一个waxberry。
maoli@ubuntu:~$sed'2iwaxberry'fruit.txtbananawaxberrygrapeapplewatermelonorange删除第3行。
maoli@ubuntu:~$sed'3d'fruit.txtbananagrapewatermelonorange删除第2行到第4行。
maoli@ubuntu:~$sed'2,4d'fruit.txtbananaorange将文本中的字符a替换为@。
maoli@ubuntu:~$sed's#a#@#'fruit.txtb@nanagr@pe@pplew@termelonor@nge将文本中的字符a替换为@,使用全局模式。
maoli@ubuntu:~$sed's#a#@#g'fruit.txtb@n@n@gr@pe@pplew@termelonor@nge模式匹配和处理语言模式匹配和处理语言 – 「awk」。
awk是一种编程语言,也是Linux系统中处理文本最为强大的工具,它的作者之一和现在的维护者就是之前提到过的Brian Kernighan(ken和dmr最亲密的伙伴)。
通过该命令可以从文本中提取出指定的列、用正则表达式从文本中取出我们想要的内容、显示指定的行以及进行统计和运算,总之它非常强大。
假设有一个名为fruit2.txt的文件,内容如下所示。
maoli@ubuntu:~$catfruit2.txt1banana1202grape5003apple12304watermelon805orange400显示文件的第3行。
maoli@ubuntu:~$awk'NR==3'fruit2.txt3apple1230显示文件的第2列。
maoli@ubuntu:~$awk'{print$2}'fruit2.txtbananagrapeapplewatermelonorange显示文件的最后一列。
maoli@ubuntu:~$awk'{print$NF}'fruit2.txt120500123080400输出末尾数字大于等于300的行。
maoli@ubuntu:~$awk'{if($3>=300){print$0}}'fruit2.txt2grape5003apple12305orange400用户管理创建和删除用户创建和删除用户 – 「useradd」 / 「userdel」。
需要用root账号创建maoli@ubuntu:~$suroot密码:root@ubuntu:/home/maoli#useraddRunsenroot@ubuntu:/home/maoli#userdelRunsen-d – 创建用户时为用户指定用户主目录-g – 创建用户时指定用户所属的用户组创建和删除用户组创建和删除用户组 – 「groupadd」 / 「groupdel」。
用户组主要是为了方便对一个组里面所有用户的管理。
修改密码修改密码 – 「passwd」。
root@ubuntu:/home/maoli#passwdmaoliNewpassword:Retypenewpassword:passwd:allauthenticationtokensupdatedsuccessfully.如果使用passwd命令时没有指定命令作用的对象,则表示要修改当前用户的密码。
如果想批量修改用户密码,可以使用chpasswd命令。
-l / -u – 锁定/解锁用户。
-d – 清除用户密码。
-e – 设置密码立即过期,用户登录时会强制要求修改密码。
-i – 设置密码过期多少天以后禁用该用户。
查看和修改密码有效期查看和修改密码有效期 – 「chage」。
设置maoli用户100天后必须修改密码,过期前15天通知该用户,过期后15天禁用该用户。
root@ubuntu:/home/maoli#chage-M100-W15-I15maoli切换用户 – 「su」。
root@ubuntu:/home/maoli#sumaolimaoli@ubuntu:~$以管理员身份执行命令以管理员身份执行命令 – 「sudo」。
maoli@ubuntu:~$ls/rootls:cannotopendirectory/root:Permissiondeniedmaoli@ubuntu:~$sudols/root[sudo]passwordformaoli:「说明」:如果希望用户能够以管理员身份执行命令,用户必须要出现在sudoers名单中,sudoers文件在 /etc目录下,如果希望直接编辑该文件也可以使用下面的命令。
编辑sudoers文件编辑sudoers文件 – 「visudo」。
这里使用的编辑器是vim,关于vim的知识在前面有讲解。
五十二、ViM的使用 该文件的部分内容如下所示:##AllowroottorunanycommandsanywhererootALL=(ALL)ALL##Allowsmembersofthe'sys'grouptorunnetworking,software,##servicemanagementappsandmore.#%sysALL=NETWORKING,SOFTWARE,SERVICES,STORAGE,DELEGATING,PROCESSES,LOCATE,DRIVERS##Allowspeopleingroupwheeltorunallcommands%wheelALL=(ALL)ALL##Samethingwithoutapassword#%wheelALL=(ALL)NOPASSWD:ALL##Allowsmembersoftheusersgrouptomountandunmountthe##cdromasroot#%usersALL=/sbin/mount/mnt/cdrom,/sbin/umount/mnt/cdrom##Allowsmembersoftheusersgrouptoshutdownthissystem#%userslocalhost=/sbin/shutdown-hnow显示用户与用户组的信息显示用户与用户组的信息 – 「id」。
root@ubuntu:/home/maoli#iduid=0(root)gid=0(root)组=0(root)给其他用户发消息给其他用户发消息 –「write」 / 「wall」。
发送方:root@ubuntu#writemaoliHelloMaoliEOF键入EOF表示信息结束,用Crtl+D组合键发送信息。
输入内容会出现在用户的屏幕上,同时通信中止。
接收方:maoli@ubuntu:~$Messagefromrootonpts/0at9:41...HelloMaoliEOF查看/设置是否接收其他用户发送的消息 – 「mesg」。
maoli@ubuntu:~$mesgisymaoli@ubuntu:~$mesgnmaoli@ubuntu:~$mesgisn如果想要发送一条信息给系统中所有用户,可以使用wall命令,wall表示:write all。
输入wall,然后编辑信息,如果shell支持可以使用中文。
然后使用Crtl+D组合键发送信息。
这样系统所有登录用户的桌面会收到信息。
如 果在网络上,可以使用rwall命令把信息发送到局域网上所有的用户。
文件系统文件和路径命名规则:文件名的最大长度与文件系统类型有关,一般情况下,文件名不应该超过255个字符,虽然绝大多数的字符都可以用于文件名,但是最好使用英文大小写字母、数字、下划线、点这样的符号。
文件名中虽然可以使用空格,但应该尽可能避免使用空格,否则在输入文件名时需要用将文件名放在双引号中或者通过对空格进行转义。
扩展名:在Linux系统下文件的扩展名是可选的,但是使用扩展名有助于对文件内容的理解。
有些应用程序要通过扩展名来识别文件,但是更多的应用程序并不依赖文件的扩展名,就像file命令在识别文件时并不是依据扩展名来判定文件的类型。
隐藏文件:以点开头的文件在Linux系统中是隐藏文件(不可见文件)。
目录结构/bin – 基本命令的二进制文件。
/boot – 引导加载程序的静态文件。
/dev – 设备文件。
「/etc」 – 配置文件。
/home – 普通用户主目录的父目录。
/lib – 共享库文件。
/lib64 – 共享64位库文件。
/lost+found – 存放未链接文件。
/media – 自动识别设备的挂载目录。
/mnt – 临时挂载文件系统的挂载点。
/opt – 可选插件软件包安装位置。
/proc – 内核和进程信息。
「/root」 – 超级管理员用户主目录。
/run – 存放系统运行时需要的东西。
/sbin – 超级用户的二进制文件。
/sys – 设备的伪文件系统。
/tmp – 临时文件夹。
「/usr」 – 用户应用目录。
/var – 变量数据目录。
访问权限改变文件模式「chmod」 – 改变文件模式比特。
maoli@ubuntu:~/backup$ls-l总用量424-rw-rw-r--2maolimaoli4304825月2808:30csdn.htmlmaoli@ubuntu:~/backup$chmodg+w,o+wcsdn.htmlmaoli@ubuntu:~/backup$ls-l总用量424-rw-rw-rw-2maolimaoli4304825月2808:30csdn.htmlmaoli@ubuntu:~/backup$chmod644csdn.htmlmaoli@ubuntu:~/backup$ls-l总用量424-rw-r--r--2maolimaoli4304825月2808:30csdn.html说明:通过上面的例子可以看出,用chmod改变文件模式比特有两种方式:一种是字符设定法,另一种是数字设定法。
除了chmod之外,可以通过umask来设定哪些权限将在新文件的默认权限中被删除。
改变文件所有者「chown」 – 改变文件所有者。
maoli@ubuntu:~/backup$ls-l总用量424-rw-r--r--2maolimaoli4304825月2808:30csdn.htmlmaoli@ubuntu:~/backup$sudochownrootcsdn.html[sudo]maoli的密码:maoli@ubuntu:~/backup$ls-l总用量424-rw-r--r--2rootmaoli4304825月2808:30csdn.html「chgrp」 – 改变用户组。
❝本文已收录 GitHub,传送门~[1] ,里面更有大厂面试完整考点,欢迎 Star。
❞Reference
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)