致力于为用户提供真实的
主机测评数据及优惠信息

Linux基础命令,用户管理和文件系统总结

 Linux基础命令,用户管理和文件系统总结主机评测网,最优惠主机信息推荐,便宜VPS分享,香港CN2

 基础命令

Linux系统的命令通常都是如下所示的格式:

  1. 命令名称 [命名参数] [命令对象] 

获取登录信息

获取登录信息 – 「w」 / 「who」 / 「last」/ 「lastb」。

  1. maoli@ubuntu:~$ w 
  2. 08:07:38 up 2 min,  1 user,  load average: 0.83, 0.64, 0.27 
  3. USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT 
  4. maoli    tty7     :0               08:06    2:38   2.29s  0.31s /sbin/upstart – 
  5. maoli@ubuntu:~$ who 
  6. maoli    tty7         2020-05-28 08:06 (:0) 
  7. maoli@ubuntu:~$ last 
  8. maoli    tty7         :0               Thu May 28 08:06    gone – no logout 
  9. reboot   system boot  4.15.0-99-generi Thu May 28 08:04   still running 
  10. maoli    tty7         :0               Fri May  1 15:20 – down   (01:26) 
  11. reboot   system boot  4.15.0-99-generi Fri May  1 15:20 – 16:47  (01:26) 
  12. maoli    tty7         :0               Fri May  1 10:12 – crash  (05:08) 
  13. wtmp begins Fri May  1 10:12:22 2020 
  14. maoli@ubuntu:~$ sudo lastb 
  15. [sudo] maoli 的密码:  
  16.  
  17. btmp begins Fri May  1 15:20:29 2020 

查看自己使用的Shell

查看自己使用的Shell – 「ps」。

Shell也被称为“壳”或“壳程序”,它是用户与操作系统内核交流的翻译官,简单的说就是人与计算机交互的界面和接口。目前很多Linux系统默认的Shell都是bash(Bourne Again SHell),因为它可以使用tab键进行命令和路径补全、可以保存历史命令、可以方便的配置环境变量以及执行批处理操作。

  1. maoli@ubuntu:~$ ps 
  2.   PID TTY          TIME CMD 
  3.  3621 pts/1    00:00:00 bash 
  4.  5082 pts/1    00:00:00 ps 

查看命令的说明和位置

查看命令的说明和位置 – 「whatis」 / 「which」 / 「whereis」。

  1. maoli@ubuntu:~$ whatis ps 
  2. ps (1)               – report a snapshot of the current processes. 
  3. maoli@ubuntu:~$ whatis python 
  4. python (1)           – an interpreted, interactive, object-oriented programmi… 
  5. maoli@ubuntu:~$ whereis ps 
  6. ps: /bin/ps /usr/share/man/man1/ps.1.gz 
  7. maoli@ubuntu:~$ whereis python 
  8. python: /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.gz 
  9. maoli@ubuntu:~$ which ps 
  10. /bin/ps 
  11. maoli@ubuntu:~$ which python 
  12. /usr/bin/python 

清除屏幕上显示的内容

清除屏幕上显示的内容 – 「clear」。

查看帮助文档查看帮助文档 – 「man」 / 「info」 / 「help」 / 「apropos」。

  1. maoli@ubuntu:~$ ps –help 
  2.  
  3. Usage: 
  4. ps [options] 
  5.  
  6. Try 'ps –help <simple|list|output|threads|misc|all>' 
  7.  or 'ps –help <s|l|o|t|m|a>' 
  8. for additional help text. 
  9.  
  10. For more details see ps(1). 
  11. maoli@ubuntu:~$ man ps 
  12.  
  13. PS(1)                                User Commands                                PS(1) 
  14. NAME 
  15.        ps – report a snapshot of the current processes. 
  16. SYNOPSIS 
  17.        ps [options] 
  18. DESCRIPTION 
  19. … 

查看系统和主机名

查看系统和主机名 – 「uname」 / 「hostname」。

  1. maoli@ubuntu:~$ uname 
  2. Linux 
  3. maoli@ubuntu:~$ hostname 
  4. ubuntu 

时间和日期

时间和日期 – 「date」 / 「cal」。

  1. maoli@ubuntu:~$ date 
  2. 2020年 05月 28日 星期四 08:13:25 CST 
  3. maoli@ubuntu:~$ cal 
  4.      五月 2020          
  5. 日 一 二 三 四 五 六   
  6.                1  2   
  7. 3  4  5  6  7  8  9   
  8. 10 11 12 13 14 15 16   
  9. 17 18 19 20 21 22 23   
  10. 24 25 26 27 28 29 30   
  11. 31                     
  12. maoli@ubuntu:~$ cal 5 2020 
  13.      五月 2020          
  14. 日 一 二 三 四 五 六   
  15.                1  2   
  16. 3  4  5  6  7  8  9   
  17. 10 11 12 13 14 15 16   
  18. 17 18 19 20 21 22 23   
  19. 24 25 26 27 28 29 30   
  20. 31         

重启和关机

重启和关机 – 「reboot」 / 「shutdown」。

  1. maoli@ubuntu:~$  shutdown -h +5   #五分钟关机 
  2. Shutdown scheduled for 四 2020-05-28 08:19:24 CST, use 'shutdown -c' to cancel. [root ~]#  
  3. maoli@ubuntu:~$ shutdown -c 
  4. maoli@ubuntu:~$ shutdown -r 12:00 
  5. Shutdown scheduled for 四 2020-05-28 12:00:00 CST, use 'shutdown -c' to cancel 
  6. maoli@ubuntu:~$ shutdown -c 

说明:在执行shutdown命令时会向登录系统的用户发出警告,可以在命令后面跟上警告消息来替换默认的警告消息,也可以在-h参数后通过now来表示立刻关机。

退出登录

退出登录 – 「exit」 / 「logout」。

查看历史命令

查看历史命令 – 「history」。

  1. maoli@ubuntu:~$ history 
  2. … 
  3.   625  date 
  4.   626  cal 
  5.   627  cal 5 2020 
  6.   628  shutdown -c 
  7.   629  shutdown -r 12:00 
  8.   630  shutdown -c 
  9.   631  history 
  10.  
  11. maoli@ubuntu:~$ !631   

说明:查看到历史命令之后,可以用!历史命令编号来重新执行该命令;通过history -c可以清除历史命令。

实用程序

文件和文件夹操作

创建/删除空目录

创建/删除空目录 – 「mkdir」 / 「rmdir」。

  1. [root ~]# mkdir runsen 
  2. [root ~]# mkdir -p&nbsp;abc/runsen 
  3. [root ~]# rmdir runsen 

创建/删除文件

创建/删除文件 – 「touch」 / 「rm」。

  1. maoli@ubuntu:~$ touch readme.txt 
  2. maoli@ubuntu:~$  rm readme.txt  
  3. rm: remove regular empty file ‘readme.txt ’? y 
  4. [root ~]# rm -rf ;xyz&amp;amp;nbsp;

touch命令用于创建空白文件或修改文件时间。在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」。

  1. maoli@ubuntu:~$  wget https://www.csdn.net/ 
  2. –2020-05-28 08:25:01–  https://www.csdn.net/ 
  3. 正在解析主机 www.csdn.net (www.csdn.net)… 47.95.164.112 
  4. 正在连接 www.csdn.net (www.csdn.net)|47.95.164.112|:443… 已连接。 
  5. 已发出 HTTP 请求,正在等待回应… 200 OK 
  6. 长度: 未指定 [text/html
  7. 正在保存至: “index.html” 
  8.  
  9. index.html              [  <=>               ] 420.39K  1.53MB/s    in 0.3s     
  10.  
  11. 2020-05-28 08:25:02 (1.53 MB/s) – “index.html” 已保存 [430482] 
  12. maoli@ubuntu:~$ cat index.html 
  13. <!DOCTYPE html> 
  14. … 
  15. maoli@ubuntu:~$ head -10 index.html 
  16. <!DOCTYPE html> 
  17. <html> 
  18. <head> 
  19.    <meta charset="utf-8"
  20.    <meta http-equiv="X-UA-Compatible" content="IE=Edge"
  21.    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
  22.    <meta name="apple-mobile-web-app-status-bar-style" content="black"
  23.    <meta name="referrer"content="always"
  24.    <meta name="msvalidate.01" content="3189512127C34C46BC74BED5852D45E4" /> 
  25.    <title>CSDN-专业IT技术社区</title> 
  26. maoli@ubuntu:~$ tail -2 index.html  
  27. <script src="https://g.csdnimg.cn/side-toolbar/2.0/side-toolbar.js"></script> 
  28. </html> 
  29. maoli@ubuntu:~$ less index.html  #相当于cat 
  30. maoli@ubuntu:~$ cat -n index.html |more 
  31. … 

说明:上面用到了一个名为wget的命令,它是一个网络下载器程序,可以从指定的URL下载资源。

拷贝/移动文件

拷贝/移动文件 – 「cp」 / 「mv」。

  1. maoli@ubuntu:~$ mkdir backup 
  2. maoli@ubuntu:~$ cp index.html backup/ 
  3. maoli@ubuntu:~$ cd backup/ 
  4. maoli@ubuntu:~/backup$ ls 
  5. index.html 
  6. maoli@ubuntu:~/backup$ mv index.html csdn.html 
  7. maoli@ubuntu:~/backup$ ls 
  8. csdn.html 

文件重命名

文件重命名 – 「rename」。

查找文件和查找内容

查找文件和查找内容 – 「find」 / 「grep」。

  1. maoli@ubuntu:~/backup$ find ./ –name "*.html" 
  2. ./csdn.html 
  3. maoli@ubuntu:~/backup$ find / –name "*.html" 
  4. /usr/local/java/jdk-11.0.6/README.html 
  5. /usr/local/python3/lib/python3.6/idlelib/help.html 
  6. /usr/local/python3/lib/python3.6/test/sgml_input.html 
  7. /usr/local/python3/lib/python3.6/test/test_difflib_expect.html 
  8. … 
  9. maoli@ubuntu:~/backup$  find . -type f –size +2k 
  10. ./csdn.html 
  11. maoli@ubuntu:~/backup$ find . -type f –name "*.swp" –delete 
  12. maoli@ubuntu:~/backup$ grep "<script>" csdn.html -n 
  13. 3192:        <script> 
  14. maoli@ubuntu:~/backup$ grep -E </?script.*> csdn.html -n 
  15. 12:    <script src='//g.csdnimg.cn/tingyun/1.8.3/www.js' type='text/javascript'></script> 
  16. 18:    <script src="//csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js" type="text/javascript"></script> 
  17. 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> 
  18. … 

说明:grep在搜索字符串时可以使用正则表达式,如果需要使用正则表达式可以用grep -E或者直接使用egrep。

创建链接和查看链接

创建链接和查看链接 – 「ln」 / 「readlink」。

  1. maoli@ubuntu:~/backup$ ls -l csdn.html 
  2. -rw-rw-r— 1 maoli maoli 430482 5月  28 08:30 csdn.html 
  3. maoli@ubuntu:~/backup$ ln /home/maoli/backup/csdn.html /home/maoli/csdn 
  4. maoli@ubuntu:~/backup$ ls -l csdn.html 
  5. -rw-rw-r— 2 maoli maoli 430482 5月  28 08:30 csdn.html 

说明:链接可以分为硬链接和软链接(符号链接)。硬链接可以认为是一个指向文件数据的指针,就像Python中对象的引用计数,每添加一个硬链接,文件的对应链接数就增加1,只有当文件的链接数为0时,文件所对应的存储空间才有可能被其他文件覆盖。我们平常删除文件时其实并没有删除硬盘上的数据,我们删除的只是一个指针,或者说是数据的一条使用记录,所以类似于“文件粉碎机”之类的软件在“粉碎”文件时除了删除文件指针,还会在文件对应的存储区域填入数据来保证文件无法再恢复。软链接类似于Windows系统下的快捷方式,当软链接链接的文件被删除时,软链接也就失效了。

压缩/解压缩和归档/解归档

.压缩/解压缩和归档/解归档 – 「gzip」 / 「gunzip」 / 「xz」。

  1. maoli@ubuntu:~$ ls 
  2.  redis-4.0.10.tar.tar.gz 
  3. maoli@ubuntu:~$ gunzip  redis-4.0.10.tar.tar.gz 
  4. maoli@ubuntu:~$ ls 
  5.  redis-4.0.10.tar.tar 

归档和解归档

归档和解归档 – 「tar」。

  1. maoli@ubuntu:~$  tar -xvf redis-4.0.10.tar 
  2. redis-4.0.10/ 
  3. redis-4.0.10/.gitignore 
  4. redis-4.0.10/00-RELEASENOTES 
  5. redis-4.0.10/BUGS 
  6. redis-4.0.10/CONTRIBUTING 
  7. redis-4.0.10/COPYING 
  8. redis-4.0.10/INSTALL 
  9. redis-4.0.10/MANIFESTO 
  10. redis-4.0.10/Makefile 
  11. redis-4.0.10/README.md 
  12. redis-4.0.10/deps/ 
  13. redis-4.0.10/deps/Makefile 
  14. redis-4.0.10/deps/README.md 
  15. … 

说明:归档(也称为创建归档)和解归档都使用tar命令,通常创建归档需要-cvf三个参数,其中c表示创建(create),v表示显示创建归档详情(verbose),f表示指定归档的文件(file);解归档需要加上-xvf参数,其中x表示抽取(extract),其他两个参数跟创建归档相同。

将标准输入转成命令行参数

将标准输入转成命令行参数 – 「xargs」。

下面的命令会将查找当前路径下的html文件,然后通过xargs将这些文件作为参数传给rm命令,实现查找并删除文件的操作。

  1. maoli@ubuntu:~$   find . -type f –name "*.html" | xargs rm -f 

下面的命令将a.txt文件中的多行内容变成一行输出到b.txt文件中,其中<表示从a.txt中读取输入,>表示将命令的执行结果输出到b.txt中。

  1. maoli@ubuntu:~$ xargs < a.txt > b.txt 

显示文件或目录

显示文件或目录 – 「basename」 / 「dirname」。

其他相关工具

其他相关工具。

  • sort」 – 对内容排序
  • uniq」 – 去掉相邻重复内容
  • tr」 – 替换指定内容为新内容
  • cut」 / 「paste」 – 剪切/黏贴内容
  • split」 – 拆分文件
  • file」 – 判断文件类型
  • wc」 – 统计文件行数、单词数、字节数
  • iconv」 – 编码转换
  1. maoli@ubuntu:~$ cat foo.txt 
  2. grape 
  3. apple 
  4. pitaya 
  5. maoli@ubuntu:~$ cat bar.txt 
  6. 100 
  7. 200 
  8. 300 
  9. 400 
  10. maoli@ubuntu:~$ paste foo.txt bar.txt 
  11. grape   100 
  12. apple   200 
  13. pitaya  300 
  14.         400 
  15. maoli@ubuntu:~$ paste foo.txt bar.txt > hello.txt 
  16. maoli@ubuntu:~$ cut -b 4-8 hello.txt 
  17. pe      10 
  18. le      20 
  19. aya     3 
  20. maoli@ubuntu:~$ cat hello.txt | tr 't' ',' 
  21. grape,100 
  22. apple,200 
  23. pitaya,300 
  24. ,400 
  25. maoli@ubuntu:~$ split -l 100 sohu.html hello 
  26. maoli@ubuntu:~$ wget https://www.baidu.com/img/bd_logo1.png 
  27. maoli@ubuntu:~$ file bd_logo1.png 
  28. bd_logo1.png: PNG image data, 540 x 258, 8-bit colormap, non-interlaced 
  29. maoli@ubuntu:~$ wc index.html  
  30.  3820  18696 430482 index.html 
  31. maoli@ubuntu wget http://www.qq.com -O qq.html 
  32. maoli@ubuntu iconv -f gb2312 -t utf-8 qq.html 

管道和重定向管道的使用

管道的使用 – 「|」。

例子:查找当前目录下文件个数。

  1. maoli@ubuntu:~$ find ./ | wc -l 
  2. 80801 

例子:列出当前路径下的文件和文件夹,给每一项加一个编号。

  1. maoli@ubuntu:~$ ls | cat -n 1 abc 2 backup 

例子:查找record.log中包含AAA,但不包含BBB的记录的总数

  1. maoli@ubuntu:~$ cat record.log | grep AAA | grep -v BBB | wc -l 

输出重定向

输出重定向和错误重定向 – 「>」 / 「>>」 / 「2>」。

  1. maoli@ubuntu:~$ cat readme.txt 
  2. banana 
  3. apple 
  4. grape 
  5. apple 
  6. grape 
  7. watermelon 
  8. pear 
  9. pitaya 
  10. maoli@ubuntu:~$ cat readme.txt | sort | uniq > result.txt 
  11. maoli@ubuntu:~$ cat result.txt 
  12. apple 
  13. banana 
  14. grape 
  15. pear 
  16. pitaya 
  17. watermelon 

输入重定向

输入重定向 – 「<」。

  1. maoli@ubuntu:~$ echo 'hello, world!' > hello.txt 
  2. maoli@ubuntu:~$ echo 'I will show you some code.' >> hello.txt 
  3. maoli@ubuntu:~$ cat hello.txt 
  4. hello, world! 
  5. I will show you some code. 

多重定向

多重定向 – 「tee」。

下面的命令除了在终端显示命令ls的结果之外,还会追加输出到ls.txt文件中。

  1. maoli@ubuntu:~$  ls | tee -a ls.txt 
  2. maoli@ubuntu:~$ cat ls.txt  
  3. abc 
  4. backup 

别名

alias」创建别名

  1. maoli@ubuntu:~$ alias ll='ls -l' 
  2. maoli@ubuntu:~$ alias frm='rm -rf' 
  3. maoli@ubuntu:~$ ll 
  4. 量 144920 
  5. drwxrwxr-x  3 maoli maoli      4096 5月  28 08:20 abc 
  6. maoli@ubuntu:~$frm abc 

unalias」删除别名

  1. maoli@ubuntu:~$ funalias frm 
  2. maoli@ubuntu:~$ frm index.html 
  3. -bash: frm: command not found 

文本处理字符流编辑器

字符流编辑器 – 「sed」。

sed是操作、过滤和转换文本内容的工具。假设有一个名为fruit.txt的文件,内容如下所示。

  1. maoli@ubuntu:~$ cat -n fruit.txt  
  2.      1  banana 
  3.      2  grape 
  4.      3  apple 
  5.      4  watermelon 
  6.      5  orange 

接下来,我们在第2行后面添加一个pitaya。

  1. maoli@ubuntu:~$  sed '2a pitaya' fruit.txt  
  2. banana 
  3. grape 
  4. pitaya 
  5. apple 
  6. watermelon 
  7. orange 

在第2行前面插入一个waxberry。

  1. maoli@ubuntu:~$ sed '2i waxberry' fruit.txt 
  2. banana 
  3. waxberry 
  4. grape 
  5. apple 
  6. watermelon 
  7. orange 

删除第3行。

  1. maoli@ubuntu:~$ sed '3d' fruit.txt 
  2. banana 
  3. grape 
  4. watermelon 
  5. orange 

删除第2行到第4行。

  1. maoli@ubuntu:~$ sed '2,4d' fruit.txt 
  2. banana 
  3. orange 

将文本中的字符a替换为@。

  1. maoli@ubuntu:~$ sed 's#a#@#' fruit.txt  
  2. b@nana 
  3. gr@pe 
  4. @pple 
  5. w@termelon 
  6. or@nge 

将文本中的字符a替换为@,使用全局模式。

  1. maoli@ubuntu:~$ sed 's#a#@#g' fruit.txt  
  2. b@n@n@ 
  3. gr@pe 
  4. @pple 
  5. w@termelon 
  6. or@nge 

模式匹配和处理语言

模式匹配和处理语言 – 「awk」。

awk是一种编程语言,也是Linux系统中处理文本最为强大的工具,它的作者之一和现在的维护者就是之前提到过的Brian Kernighan(ken和dmr最亲密的伙伴)。通过该命令可以从文本中提取出指定的列、用正则表达式从文本中取出我们想要的内容、显示指定的行以及进行统计和运算,总之它非常强大。

假设有一个名为fruit2.txt的文件,内容如下所示。

  1. maoli@ubuntu:~$ cat fruit2.txt  
  2. 1       banana      120 
  3. 2       grape       500 
  4. 3       apple       1230 
  5. 4       watermelon  80 
  6. 5       orange      400 

显示文件的第3行。

  1. maoli@ubuntu:~$ awk 'NR==3' fruit2.txt  
  2. 3       apple       1230 

显示文件的第2列。

  1. maoli@ubuntu:~$awk '{print $2}' fruit2.txt  
  2. banana 
  3. grape 
  4. apple 
  5. watermelon 
  6. orange 

显示文件的最后一列。

  1. maoli@ubuntu:~$ awk '{print $NF}' fruit2.txt  
  2. 120 
  3. 500 
  4. 1230 
  5. 80 
  6. 400 

输出末尾数字大于等于300的行。

  1. maoli@ubuntu:~$ awk '{if($3 >= 300) {print $0}}' fruit2.txt  
  2. 2       grape       500 
  3. 3       apple       1230 
  4. 5       orange      400 

用户管理

创建和删除用户

创建和删除用户 – 「useradd」 / 「userdel」。需要用root账号创建

  1. maoli@ubuntu:~$ su root 
  2. 密码:  
  3. root@ubuntu:/home/maoli# useradd Runsen 
  4. root@ubuntu:/home/maoli#  userdel Runsen 
  • -d – 创建用户时为用户指定用户主目录
  • -g – 创建用户时指定用户所属的用户组

创建和删除用户组

创建和删除用户组 – 「groupadd」 / 「groupdel」。

用户组主要是为了方便对一个组里面所有用户的管理。

修改密码

修改密码 – 「passwd」。

  1. root@ubuntu:/home/maoli# passwd maoli 
  2. New password:  
  3. Retype new password:  
  4. passwd: all authentication tokens updated successfully. 

如果使用passwd命令时没有指定命令作用的对象,则表示要修改当前用户的密码。如果想批量修改用户密码,可以使用chpasswd命令。

  • -l / -u – 锁定/解锁用户。
  • -d – 清除用户密码。
  • -e – 设置密码立即过期,用户登录时会强制要求修改密码。
  • -i – 设置密码过期多少天以后禁用该用户。

查看和修改密码有效期查看和修改密码有效期 – 「chage」。

设置maoli用户100天后必须修改密码,过期前15天通知该用户,过期后15天禁用该用户。

  1. root@ubuntu:/home/maoli# chage -M 100 -W 15 -I 15 maoli 

切换用户 – 「su」。

  1. root@ubuntu:/home/maoli#  su maoli 
  2. maoli@ubuntu:~$  

以管理员身份执行命令

以管理员身份执行命令 – 「sudo」。

  1. maoli@ubuntu:~$  ls /root 
  2. ls: cannot open directory /root: Permission denied 
  3. maoli@ubuntu:~$  
  4. sudo ls /root 
  5. [sudo] password for maoli: 

「说明」:如果希望用户能够以管理员身份执行命令,用户必须要出现在sudoers名单中,sudoers文件在 /etc目录下,如果希望直接编辑该文件也可以使用下面的命令。

编辑sudoers文件

编辑sudoers文件 – 「visudo」。

这里使用的编辑器是vim,关于vim的知识在前面有讲解。

五十二、ViM的使用该文件的部分内容如下所示:

  1. ## Allow root to run any commands anywhere  
  2. root    ALL=(ALL)   ALL 
  3.  
  4. ## Allows members of the 'sys' group to run networking, software,  
  5. ## service management apps and more. 
  6. # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS 
  7. ## Allows people in group wheel to run all commands 
  8. %wheel  ALL=(ALL)   ALL 
  9.  
  10. ## Same thing without a password 
  11. # %wheel    ALL=(ALL)   NOPASSWD: ALL 
  12.  
  13. ## Allows members of the users group to mount and unmount the 
  14. ## cdrom as root 
  15. # %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom 
  16.  
  17. ## Allows members of the users group to shutdown this system 
  18. # %users  localhost=/sbin/shutdown -h now 

显示用户与用户组的信息

显示用户与用户组的信息 – 「id」。

  1. root@ubuntu:/home/maoli# id 
  2. uid=0(root) gid=0(root) 组=0(root) 

给其他用户发消息

给其他用户发消息 -「write」 / 「wall」。

发送方:

  1. root@ubuntu# write maoli 
  2. Hello Maoli 
  3. EOF 

键入EOF表示信息结束,用Crtl+D组合键发送信息。输入内容会出现在用户的屏幕上,同时通信中止。接收方:

  1. maoli@ubuntu:~$   
  2. Message from root on pts/0 at 9:41 … 
  3. Hello Maoli 
  4. EOF 

查看/设置是否接收其他用户发送的消息 – 「mesg」。

  1. maoli@ubuntu:~$   mesg 
  2. is y  
  3. maoli@ubuntu:~$   mesg n 
  4. maoli@ubuntu:~$ mesg 
  5. is n 

如果想要发送一条信息给系统中所有用户,可以使用wall命令,wall表示:write all。输入wall,然后编辑信息,如果shell支持可以使用中文。然后使用Crtl+D组合键发送信息。这样系统所有登录用户的桌面会收到信息。如 果在网络上,可以使用rwall命令把信息发送到局域网上所有的用户。

文件系统

  1. 文件和路径命名规则:文件名的最大长度与文件系统类型有关,一般情况下,文件名不应该超过255个字符,虽然绝大多数的字符都可以用于文件名,但是最好使用英文大小写字母、数字、下划线、点这样的符号。文件名中虽然可以使用空格,但应该尽可能避免使用空格,否则在输入文件名时需要用将文件名放在双引号中或者通过对空格进行转义。
  2. 扩展名:在Linux系统下文件的扩展名是可选的,但是使用扩展名有助于对文件内容的理解。有些应用程序要通过扩展名来识别文件,但是更多的应用程序并不依赖文件的扩展名,就像file命令在识别文件时并不是依据扩展名来判定文件的类型。
  3. 隐藏文件:以点开头的文件在Linux系统中是隐藏文件(不可见文件)。

目录结构

  1. /bin – 基本命令的二进制文件。
  2. /boot – 引导加载程序的静态文件。
  3. /dev – 设备文件。
  4. 「/etc」 – 配置文件。
  5. /home – 普通用户主目录的父目录。
  6. /lib – 共享库文件。
  7. /lib64 – 共享64位库文件。
  8. /lost+found – 存放未链接文件。
  9. /media – 自动识别设备的挂载目录。
  10. /mnt – 临时挂载文件系统的挂载点。
  11. /opt – 可选插件软件包安装位置。
  12. /proc – 内核和进程信息。
  13. 「/root」 – 超级管理员用户主目录。
  14. /run – 存放系统运行时需要的东西。
  15. /sbin – 超级用户的二进制文件。
  16. /sys – 设备的伪文件系统。
  17. /tmp – 临时文件夹。
  18. 「/usr」 – 用户应用目录。
  19. /var – 变量数据目录。

访问权限

改变文件模式

1.「chmod」 – 改变文件模式比特。

  1. maoli@ubuntu:~/backup$ ls -l 
  2. 总用量 424 
  3. -rw-rw-r— 2 maoli maoli 430482 5月  28 08:30 csdn.html 
  4. maoli@ubuntu:~/backup$ chmod g+w,o+w csdn.html 
  5. maoli@ubuntu:~/backup$ ls -l 
  6. 总用量 424 
  7. -rw-rw-rw- 2 maoli maoli 430482 5月  28 08:30 csdn.html 
  8. maoli@ubuntu:~/backup$ chmod 644 csdn.html  
  9. maoli@ubuntu:~/backup$ ls -l 
  10. 总用量 424 
  11. -rw-r–r– 2 maoli maoli 430482 5月  28 08:30 csdn.html 

说明:通过上面的例子可以看出,用chmod改变文件模式比特有两种方式:一种是字符设定法,另一种是数字设定法。除了chmod之外,可以通过umask来设定哪些权限将在新文件的默认权限中被删除。

Linux基础命令,用户管理和文件系统总结

改变文件所有者

2.「chown」 – 改变文件所有者。

  1. maoli@ubuntu:~/backup$ ls -l 
  2. 总用量 424 
  3. -rw-r–r– 2 maoli maoli 430482 5月  28 08:30 csdn.html 
  4. maoli@ubuntu:~/backup$ sudo chown root csdn.html 
  5. [sudo] maoli 的密码:  
  6. maoli@ubuntu:~/backup$ ls -l 
  7. 总用量 424 
  8. -rw-r–r– 2 root maoli 430482 5月  28 08:30 csdn.html 

3.「chgrp」 – 改变用户组。

本文已收录 GitHub,传送门~[1] ,里面更有大厂面试完整考点,欢迎 Star。

Reference

[1]传送门~https://github.com/MaoliRUNsen/runsenlearnpy100

赞(0) 打赏
未经允许不得转载:爱主机 » Linux基础命令,用户管理和文件系统总结
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址