【Linux技术宝典】深入理解Linux基本指令:命令行新手指南
文章目录
- 一、Linux下基本指令
- 1. ls 指令
- 2. pwd指令
- 3. clear指令
- 4. cd指令
- `什么是家目录?`
- 5. touch指令
- 6. tree指令
- 7. mkdir指令(重要)
- 8. rmdir指令 && rm 指令(重要)
- 9. man指令(重要)
- 10. cp指令(重要)
- 11. mv指令(重要)
- 12. cat指令
- 13. more指令
- `PS:重定向和管道(重要)`
- 14. less指令(重要)
- 15. head指令
- 16. tail指令
- 17. 时间相关的指令
- 18. cal指令
- 19. find指令(非常重要)-name
- 20. grep指令
- 21. zip/unzip指令
- 22. tar指令(重要):打包/解包,不打开它,直接看内容
- 23. bc指令
- 24. uname指令
- 25. 指令重要的几个热键[Tab],[ctrl]-c, [ctrl]-d
- XShell 下的复制粘贴
- 26. 关机
- 27. 以下命令作为扩展:
- 二、重新认识指令
- 1. which指令
- 2. alias指令
- 3. adduser、uesradd 和 userdel指令
- `PS:adduser 和 useradd 的区别`
- 4. stat指令
- 5. whoami指令
- 6. nano指令
- 怎么在Linux下写一个简单的C语言代码?
- Linux理念:Linux下一切皆文件
一、Linux下基本指令
1. ls 指令
语法: ls [选项][目录或文件]
功能: 对于目录,列出目录的内容,即显示当前目录中的文件和子目录列表。对于文件,将列出文件名以及其他信息。
常用选项:
-a 列出目录下的所有文件,包括以 . 开头的隐含文件
。-d 将目录象文件一样显示,而不是显示其下的文件
。 如:ls –d 指定目录- -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
- -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息
。- -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
- -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表 示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
- -r 对目录反向排序。
- -t 以时间排序。
- -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
- -R 列出所有子目录下的文件。(递归)
- -1 一行只输出一个文件。
以上常用选项可以组合使用,从而达到合二为一的效果。
知识点:
- 任何目录下,都会默认具有两个隐藏目录
. 和 ..
.
:用来表示当前路径..
:用来表示上级路径
- 文件 = 文件属性 + 文件内容,未来对文件的任何操作,无外乎是对属性的操作或对内容的操作
2. pwd指令
语法: pwd
功能:显示用户当前所在的目录
以上表明当前用户在 root 目录下。
在Linux下 /
是路径分隔符,两个分隔符之间一定是目录,路径末端一定是普通文件或目录。
3. clear指令
语法:clear
功能:清除终端屏幕上的内容
4. cd指令
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
任何一个文件都只有一个父目录!
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
举例:
cd ..
: 返回上级目录
cd /home/litao/linux/
: 绝对路径
cd ../day02/
: 相对路径
cd ~
:进入用户家目
cd -
:返回最近访问目录
什么是家目录?
在Linux操作系统中,家目录(Home Directory)是每个用户用于存储其个人文件和配置信息的默认位置。家目录通常以用户名命名,并位于根目录下的/home
目录中。例如,如果用户名是"john",那么该用户的家目录路径将是/home/john
。
家目录是用户的宿主目录,通常用来保存用户的文件,如文档、图片、视频、下载内容等。用户可以在家目录中创建自己的文件夹、存储文件、配置应用程序等。家目录是用户登录系统后所处的默认位置,可以使用~
(波浪线)来表示。
需要注意的是,root
用户的家目录通常位于/root
目录下,而不是/home
目录下。这是因为root用户具有系统管理的特殊权限,其家目录需要与其他用户的家目录分开,以保护系统的安全性和稳定性。
在Linux中,家目录是一个重要的概念,它为用户提供了一个私有的、可定制的文件存储空间。通过在家目录中存储和管理个人文件,用户可以方便地访问和管理自己的数据,并保持系统的整洁和有序。
5. touch指令
语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
- -a 或–time=atime或–time=access或–time=use只更改存取时间。
- -c 或–no-create 不建立任何文档。
- -d 使用指定的日期时间,而非现在的时间。
- -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
- -m 或–time=mtime或–time=modify 只更改变动时间。
- -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
- -t 使用指定的日期时间,而非现在的时间。
6. tree指令
Centos 下 tree命令安装
yum install -y tree
语法:tree [选项] [目录]
功能:以树状图的方式显示目录结构
常用选项:
- -L 指定最大深度
- -d 只显示目录
- -f 不显示文件名,只显示目录名
- -i 不显示inode信息
- -p 显示文件的权限信息
- -u 显示文件的所有者和组信息
举例:
要查看当前目录下的文件和子目录结构,可以使用以下命令:
tree
7. mkdir指令(重要)
语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
-p
, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立 好那些尚不存在的目录,即一次可以建立多个目录;
举例:
mkdir –p test/test1
: 递归建立多个目录
8. rmdir指令 && rm 指令(重要)
rmdir
是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除目录。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
-p
当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm
命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:
-f
即使文件属性为只读(即写保护),亦直接删除-i
删除前逐一询问确认-r
删除目录及其下所有文件-v
显示删除的每个文件或目录名称(在删除文件的时候同时使用)在实际使用中,
rm -v
是一个非常实用的命令,尤其是在需要删除多个文件或目录,并且希望看到每个操作步骤的情况下。
需要注意的是,rm
命令删除的文件通常是无法恢复的,因此在使用时要特别小心,确保不会误删重要文件。
9. man指令(重要)
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man
语法: man [选项] 命令
常用选项:
- -k 根据关键字搜索联机帮助
- num 只在第num章节找
- -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按 下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
解释一下,面手册分为8章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread
4 是特殊文件,也就是 /dev 下的各种设备文件
5 是指文件的格式,比如 passwd,就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
10. cp指令(重要)
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,
则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存
在的目录,则会出现错误信息
常用选项:
-f 或 --force
强行复制文件或目录,不论目的文件或目录是否已经存在-i 或 --interactive
覆盖文件之前先询问用户-r
递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链 接,则一律视为普通文件处理-R 或 --recursive
递归处理,将指定目录下的文件及子目录一并处理
1. 复制文件到当前目录
假设你有一个名为 oldname.txt
的文件,你想复制它并重命名为 newname.txt
,同时保留在同一目录下,你可以这样做:
cp oldname.txt newname.txt
这将会在当前目录下创建一个名为 newname.txt
的新文件,其内容与 oldname.txt
相同。
2. 复制文件到不同目录
如果你想要复制文件到不同的目录并重命名,你需要提供目标文件的完整路径和名称,如下所示:
cp oldname.txt /path/to/destination/newname.txt
在这个例子中,oldname.txt
是源文件,/path/to/destination/newname.txt
是目标文件的完整路径和名称。cp
指令将会把 oldname.txt
复制到 /path/to/destination/
目录下,并命名为 newname.txt
。
如果目标目录不存在,cp
命令会报错。如果目标文件已经存在,cp
命令会默认覆盖它,除非你使用了 -i
选项来在覆盖前询问用户。
请注意,在复制文件并重命名时,如果目标文件已经存在并且你不希望它被覆盖,你可以使用 -n
选项来阻止覆盖:
cp -n oldname.txt /path/to/destination/newname.txt
如果 /path/to/destination/newname.txt
已经存在,这个命令将不会执行任何操作,而是保留原文件。
11. mv指令(重要)
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
- 视
mv
命令中第二个参数类型的不同(是目标文件还是目标目录),mv
命令将文件重命名或将其移至一个新的目录中。 - 当第二个参数类型是文件时,
mv
命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。 - 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,
mv
命令将各参数指定的源文件均移至目标目录中。
常用选项:
-f
:force
强制的意思,如果目标文件已经存在,不会询问而直接覆盖-i
:若目标文件 (destination
) 已经存在时,就会询问是否覆盖!
举例:
将rm改造成mv
vim ~/.bashrc #修改这个文件
mkdir -p ~/.trash
alias rm=trash
alias ur=undelfile
undelfile() {mv -i ~/.trash/\$@ ./
}
trash() {mv $@ ~/.trash/
}
12. cat指令
语法:cat [选项][文件]
功能:查看目标文件的内容
常用选项:
-b
对非空输出行编号-n
对输出的所有行编号-s
不输出多行空行
tac指令与此相反,是逆向显示文件信息。
13. more指令
语法:more [选项][文件]
功能:more命令,功能类似 cat
常用选项:
- -n 对输出的所有行编号
- q 退出more
举例:
查看根目录信息
ls -l / | more
PS:重定向和管道(重要)
Linux下的重定向和管道是两种常用的命令行操作,用于控制输入和输出的流向。
-
重定向:重定向是将命令的输入或输出从默认的设备(如键盘或屏幕)更改为文件或其他命令。Linux下有三种重定向:
- 输入重定向:将文件的内容作为命令的输入。使用
<
符号,例如:command < file
。 - 输出重定向:将命令的输出写入文件。使用
>
符号,例如:command > file
。(如果文件不存在,它会被创建;如果文件已存在,它会被覆盖。) - 追加重定向:将命令的输出追加到文件末尾。使用
>>
符号,例如:command >> file
。
- 输入重定向:将文件的内容作为命令的输入。使用
-
管道:管道是将一个命令的输出作为另一个命令的输入。使用
|
符号,例如:command1 | command2
。这样可以将多个命令连接起来,实现复杂的功能。
示例:
# 将文件file1的内容作为grep命令的输入,查找包含"example"的行
grep "example" < file1# 将ls命令的输出写入file2
ls > file2# 将echo命令的输出追加到file3末尾
echo "example" >> file3# 将ls命令的输出作为grep命令的输入,查找包含"example"的行
ls | grep "example"
Echo是一个计算机命令,其基本功能是在命令行界面中输出文本或变量的值。
14. less指令(重要)
- less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
- less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
- 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
- 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法: less [参数] 文件
功能:
less与more类似,但使用 less
可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
选项:
- -i 忽略搜索时的大小写
- -N 显示每行的行号
- /字符串:向下搜索“字符串”的功能
- ?字符串:向上搜索“字符串”的功能
- n:重复前一个搜索(与 / 或 ? 有关)
- N:反向重复前一个搜索(与 / 或 ? 有关)
- q:quit
15. head指令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
语法: head [参数]... [文件]...
功能:
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:
- -n<行数> 显示的行数
创建一个大文件:
创建一个有10000行内容的大文件
i=1; while [ $i -le 10000 ]; do echo "hello Linux $i"; let i++; done > big.txt
16. tail指令
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容.
语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:
- -f 循环读取
- -n<行数> 显示行数
举例:
有一个文件共有100行内容,请取出第50行内容<br>
seq 1 100 > test # 生成1到100的序列装入test
方法1 head -50 test > tmp #将前50行装入临时文件tmp
tail -1 tmp #得到中间行
方法2 head -50 test | tail -1
统计文件行数
wc -l example.txt
17. 时间相关的指令
date显示
date 指定格式显示时间: date +%Y:%m:%d
date 用法:date [OPTION]... [+FORMAT]
1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
- %H : 小时(00…23)
- %M : 分钟(00…59)
- %S : 秒(00…61)
- %X : 相当于 %H:%M:%S
- %d : 日 (01…31)
- %m : 月份 (01…12)
- %Y : 完整年份 (0000…9999)
- %F : 相当于 %Y-%m-%d
2.在设定时间方面
- date -s //设置当前时间,只有root权限才能设置,其他只能查看。
- date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
- date -s 01:01:01 //设置具体时间,不会对日期做更改
- date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
- date -s “01:01:01 20080523″ //这样可以设置全部时间
- date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
- date -s “20080523 01:01:01″ //这样可以设置全部时间
3.时间戳
时间 -> 时间戳:date +%s
时间戳 -> 时间:date -d@1508749502
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
18. cal指令
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:
-3
显示系统前一个月,当前月,下一个月的月历-j
显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)-y
显示当前年份的日历
19. find指令(非常重要)-name
- Linux下find命令在目录结构中搜索文件,并执行指定的操作。
- Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
- 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
- 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项:
-name 按照文件名查找文件
。
20. grep指令
语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来
常用选项:
-i :忽略大小写的不同,所以大小写视为相同
-n
:顺便输出行号-v
:反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
21. zip/unzip指令
语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
常用选项:
-r 递归处理
,将指定目录下的所有文件和子目录一并处理
举例:
将test2目录压缩:zip test2.zip test2/*
解压到tmp目录:unzip test2.zip -d /tmp
22. tar指令(重要):打包/解包,不打开它,直接看内容
tar [-cxtzjvf] 文件与目录 .... 参数
:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
- -t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
- -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,
在 f 之后要立即接档名喔!不要再加参数!
- -C : 解压到指定目录
压缩:-cvzf
解压缩:-xvzf
为什么要打包压缩?
便于文件的网络传输。
- 基于xshell进行 压缩包的 Windows 和 Linux进行互传
scp XXX.tgz 用户名@另一台Linux机器的公网IP:你要拷贝到的路径
实现不同Linux机器的压缩包互传。
23. bc指令
bc
命令可以很方便的进行浮点运算,输入 quit
退出
24. uname指令
语法:uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
常用选项:
-a或 --all
详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称-r 或 --release
显示操作系统的发行编号,即内核版本号。
25. 指令重要的几个热键[Tab],[ctrl]-c, [ctrl]-d
[Tab]
按键—具有『命令补全』
和『档案补齐』
的功能[Ctrl]-c
按键—让当前的程序『停掉』
[Ctrl]-d
按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit
XShell 下的复制粘贴
复制: ctrl + insert
(有些人的 insert 需要配合 fn 来按)
粘贴: shift + insert
ctrl + c / ctrl + v 是不行的.
26. 关机
语法:shutdown [选项]
常见选项:
-h
: 将系统的服务停掉后,立即关机。-r
: 在将系统的服务停掉之后就重新启动-t sec
: -t 后面加秒数,亦即『过几秒后关机』的意思
27. 以下命令作为扩展:
◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
二、重新认识指令
指令本质上就是程序,每条指令都是一个可执行文件。它们一般位于 /usr/bin
目录下
1. which指令
在Linux下,which
是一个常用的命令行指令,它的主要功能是在PATH
环境变量指定的路径中搜索某个系统命令的位置,并且返回第一个搜索结果。使用 which
命令可以得知某个特定命令是否存在,以及系统实际执行的是哪一个位置的命令。
基本语法:
which [命令名称]
通常情况下,如果命令不存在于 PATH
中,which
命令不会有任何输出。
【注意事项】:
which
只能找到外部命令(即可执行文件),它无法找到shell内建命令(如cd
、alias
、echo
等)或shell函数。- 如果存在命令别名,
which
通常显示的是别名指向的原始命令的位置。 - 在某些情况下,可能存在多个版本的同一个命令,但
which
通常只返回第一个找到的可执行文件路径。如果需要查找所有可能的位置,可以考虑使用whereis
或其他搜索工具。 which
的行为可能因不同的shell和系统实现而略有差异。例如,在某些shell中,可能存在一个内置的which
命令,其功能与外部的which
可执行文件类似但可能有所不同。
2. alias指令
在Linux下,alias
是一个用于创建命令别名的内建shell命令。别名允许用户为常用的或复杂的命令定义自己的简写形式,从而简化命令的输入。别名只在当前shell会话中有效,关闭会话后需要重新定义,除非将它们添加到shell的初始化文件中(如 ~/.bashrc
或 ~/.bash_profile
)。
基本语法:
alias [别名]=[命令]
使用示例:
-
创建别名:
alias ll='ls -l'
这将创建一个名为
ll
的别名,它等同于执行ls -l
命令。 -
查看所有已定义的别名:
alias
执行不带任何参数的
alias
命令将列出当前shell会话中定义的所有别名及其对应的命令。 -
删除别名:
unalias ll
这将删除先前定义的
ll
别名。
【注意事项]:
- 别名可以用来覆盖现有的命令,但这通常不推荐,因为它可能导致混淆或意外的行为。
- 别名只在定义它们的shell会话中有效。如果你希望每次启动新的shell会话时都有某些别名可用,你需要将它们添加到shell的初始化文件中。
- 在编写脚本时,过度使用别名可能会使脚本难以阅读和维护。通常建议在脚本中使用完整的命令而不是别名。
- 别名可以包含参数和选项,但它们不能包含位置参数(如
$1
、$2
等)。如果你需要传递位置参数给别名,你可以使用函数而不是别名。 - 你可以使用转义字符
\
来阻止别名扩展。例如,如果ll
是一个别名,你可以通过输入\ll
来直接运行ll
命令而不是它所别名的命令。
通过在 ~/.bashrc
或 ~/.bash_profile
文件中添加别名定义,你可以使别名在每次登录时自动可用。例如:
echo "alias ll='ls -l'" >> ~/.bashrc
source ~/.bashrc
这将把 alias ll='ls -l'
添加到你的 ~/.bashrc
文件中,并使更改立即生效。
3. adduser、uesradd 和 userdel指令
在Linux系统中,adduser
、useradd
和userdel
是三个用于用户管理的常用命令。
1. adduser命令
adduser
命令用于创建新的用户账号。与useradd
不同,adduser
会自动为新用户指定主目录、系统shell版本,并在创建时要求输入用户密码。此外,adduser
还提供了更多的选项和功能,如设置用户备注、指定用户所属的组等。
2. useradd命令
useradd
命令也用于创建新的用户账号,但它需要使用参数选项来指定一些基本设置,如主目录、shell版本等。如果不使用任何参数,则创建的用户将没有密码、没有主目录,并且没有指定shell版本。
3. userdel命令
userdel
命令用于删除已存在的用户账号。默认情况下,userdel
只会删除用户账号,而不会删除用户的主目录。如果要同时删除用户账号及其主目录,需要使用-r
选项。
使用示例
- 使用
adduser
命令创建新用户:
adduser 新用户名
在创建过程中,系统会提示你输入新用户的密码和其他相关信息。
- 使用
useradd
命令创建新用户(需要指定一些参数选项):
useradd -m -s /bin/bash 新用户名
这个命令会为新用户创建一个主目录,并指定使用/bin/bash
作为shell。
- 使用
userdel
命令删除用户:
userdel 用户名
这只会删除用户账号,不会删除主目录。
- 使用
userdel
命令删除用户及其主目录:
userdel -r 用户名
这个命令会删除用户账号及其主目录。
总之,adduser
、useradd
和userdel
是Linux系统中用于管理用户账号的三个重要命令。它们各自具有不同的功能和选项,可以根据具体需求选择使用。
PS:adduser 和 useradd 的区别
在CentOs
下 useradd
与 adduser
是没有区别的都是在创建用户,在 /home
目录下自动创建目录,没有设置密码,需要使用 passwd
命令修改密码。
而在Ubuntu
下useradd
与adduser
有所不同
1、useradd
在使用该命令创建用户是不会在/home
下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,那么这个用户是不能登录的,需要使用 passwd
命令修改密码。
2、adduser
在使用该命令创建用户是会在 /home
下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码,更加友好。
4. stat指令
在Linux系统中,stat
命令用于显示指定文件或文件系统的状态信息。它可以提供关于文件的详细信息,如文件类型、权限、大小、所属用户和组、访问时间、修改时间、创建时间等。
stat
命令的语法格式如下:
stat [选项] 文件名
其中,选项是用来指定输出格式或显示特定信息的。一些常用的选项包括:
-c
:指定输出格式。可以使用格式字符串来显示特定的信息,如访问时间、修改时间、文件大小等。-f
:显示文件所在文件系统的状态信息,而不是文件本身的信息。-t
:使用简洁格式输出文件信息,只显示摘要信息。
除了上述选项,stat
命令还有其他一些选项和参数,可以根据具体需求进行选择和使用。
使用stat
命令可以查看文件的详细状态信息,这对于了解文件的属性、检查文件状态以及进行系统管理和调试非常有用。例如,可以使用stat
命令查看文件的最后访问时间、修改时间以及文件大小等信息,这些信息可以帮助你确定文件的使用情况以及是否需要备份或更新文件。
需要注意的是,stat
命令显示的信息可能比ls
命令更详细,因为它提供了文件的I节点信息和其他元数据。这些信息对于系统管理员和开发人员来说可能是非常有用的。
总结来说,stat
命令是Linux系统下用于显示文件或文件系统状态信息的重要工具,它提供了丰富的选项和参数,可以根据需求选择使用,以获取关于文件的详细信息。
文件的ACM时间
ACM时间是Linux系统下分别代表Access,Modify和Change三个时间。输入stat+文件名
即可输出。
- Access:文件最近被访问的时间(访问)
- Modify : 文件内容最近被修改的时间(修改)
- Change : 文件属性最近被修改的时间(改变)
5. whoami指令
查看当前正在使用Linux系统的人是谁?
6. nano指令
nano
是一个在 Linux 和其他 Unix-like 系统中广泛使用的命令行文本编辑器,尤其适合初学者使用。它比一些更复杂的编辑器(如 vi
或 emacs
)更容易上手,因为它有一个直观的界面和简单的快捷键。
语法:
nano [选项] [文件名]
其中,[选项]
是可选的,可以用来定制编辑器的行为,而 [文件名]
是想要编辑的文件的名称。
常用选项:
-w
或--nowrap
:禁用自动换行,这对于编辑配置文件特别有用,因为自动换行可能会破坏配置的正确性。-h
或--help
:显示帮助信息。-V
或--version
:显示版本信息。
示例:
- 打开一个名为
example.txt
的文件进行编辑:
nano example.txt
- 使用
-w
选项打开一个配置文件(如/etc/fstab
)以禁用自动换行:
nano -w /etc/fstab
怎么在Linux下写一个简单的C语言代码?
使用nano指令打开一个文件,写入代码,Ctrl + X退出并保存 --> y确定 --> 回车退出编译。
这里执行可执行文件一定要找到当前的可执行文件的路径。
Linux理念:Linux下一切皆文件
也就是说Linux可以以统一的方式访问进行文件/设备的访问。
向显示器上打印信息就像是向文件中打印信息一般。
相关文章:

【Linux技术宝典】深入理解Linux基本指令:命令行新手指南
📷 江池俊: 个人主页 🔥个人专栏: ✅数据结构冒险记 ✅Linux技术宝典 🌅 有航道的人,再渺小也不会迷途。 文章目录 一、Linux下基本指令1. ls 指令2. pwd指令3. clear指令4. cd指令什么是家目录…...

C++:Level1阶段测试
总结。 只要你看过我的文章,哪怕只是一半,一定能够过关! 准备好开始测试氻吗? 选择题,每题4分,共40分 1、 DevC的项目创建按钮是_____ A、文件[F]” → “新建[N]” → “项目[P]... B、工具[T]” → …...
autojs自动化刷视频脚本
视频展示 视频 //悬浮窗 // var window floaty.rawWindow( // <frame gravity"center" bg"#ff00ff"> // <button id"action" w"300dp" h"300dp"> // 按钮 // </button> // </fram…...

鲁南制药“健康幸福中国年”主题航班,开启探寻健康与幸福的旅程
“小年,小年,过了今天就是年。”提到过年,北方人的“过年”是从腊月二十三的“小年”开始的,而南方地区是在明天。虽然时间不同,但是浓浓的年味是一样的,红彤彤是主色调,喜洋洋是主乐曲…...

CISA知识点
审计流程21%;运营和业务恢复23%;保护资产27%;IT治理17%;开发12%。 领域1-信息系统审计流程 规划-现场工作-报告 (1)审计规划 了解业务使命、目标、目的和流程 找到相关规定 实施风险分析(…...

C语言求解猴子分桃子
问题:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 一个,它同样把多的…...

本地部署 Stable Cascade
本地部署 Stable Cascade 0. 引言1. 事前准备2. 本地部署 Stable Cascade3. 使用 Stable Cascade 生成图片4. Stable Cascade Github 地址 0. 引言 Stable Cascade 模型建立在 Wrstchen 架构之上,它与 Stable Diffusion 等其他模型的主要区别在于它的工作潜在空间要…...
LeetCode 二叉树/n叉树的解题思路
二叉树 二叉树特点是每个节点最多只能有两棵子树,且有左右之分二叉树的数据结构如下: public class TreeNode {//节点的值int val;//左子树TreeNode left;//右子树TreeNode right;TreeNode(int x) { val x; } }树节点的初始化: int val1;T…...

opencv mat用法赋值克隆的操作和一些基本属性
//Mat基本结构 (头部 数据部分) //赋值的话 就是修改了指针位置 但还是指向了原来数据 并没创建数据 本质上并没有变 //只有克隆或者拷贝时 它才会真正复制一份数据 //代码实现 //创建方法 - 克隆 //Mat m1 src.clone(); //复制 //Mat m2; //src.copyTo(m2); //赋值法 …...

【使用IDEA总结】01——新增作者信息、方法参数返回值
[TOC](目录) 1.类新增作者信息 打开IDEA的Settings,Editor->Code Style->File and Code Templates->Includes->File Header,输入以下作者信息,作者名更换为自己的即可,操作如下图所示 /*** Author Linhaipeng* Date…...

ElasticSearch分词器和相关性详解
目录 ES分词器详解 基本概念 分词发生时期 分词器的组成 切词器:Tokenizer 词项过滤器:Token Filter 停用词 同义词 字符过滤器:Character Filter HTML 标签过滤器:HTML Strip Character Filter 字符映射过滤器&#x…...

DolphinScheduler安装与配置
DolphinScheduler概述 Apache DolphinScheduler是一个分布式、易扩展的可视化DAG工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。 DolphinScheduler的主要角色如下: MasterServer采用分布式无…...

Qt之条件变量QWaitCondition详解
QWaitCondition内部实现结构图: 相关系列文章 C之Pimpl惯用法 目录 1.简介 2.示例 2.1.全局配置 2.2.生产者Producer 2.3.消费者Consumer 2.4.测试例子 3.原理分析 3.1.辅助函数CreateEvent 3.2.辅助函数WaitForSingleObject 3.3.QWaitConditionEvent …...

作为国产大模型之光的智谱AI,究竟推出了多少模型?一篇文章带你详细了解!
虽然OpenAI发布了一系列基于GPT模型的产品,在不同领域取得了很高的成就。但是作为LLM领域绝对的领头羊,OpenAI没有按照其最初的Open初衷行事。无论是ChatGPT早期采用的GPT3,还是后来推出的GPT3.5和GPT4模型,OpenAI都因为担心被滥用…...
学习转置矩阵
转置矩阵 将矩阵的行列互换得到的新矩阵称为转置矩阵 输入描述: 第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10) 从2到n1行,每行输入m个整数(范围-231~231-1)&#x…...

AJAX——常用请求方法
1 请求方法 请求方法:对服务器资源,要执行的操作 2 数据提交 场景:当数据需要在服务器上保存 3 axios请求配置 url:请求的URL网址 method:请求的方法,GET可以省略(不区分大小写) …...
sqlserver2012 解决日志大的问题
当SQL Server 2012的事务日志变得过大时,这通常意味着日志备份没有被定期执行,或者日志文件的自动增长设置被设置得太高,导致它不断增长以容纳所有未备份的事务。解决日志大的问题通常涉及以下几个步骤: 备份事务日志:…...

Vue3快速上手(三)Composition组合式API及setup用法
一、Vue2的API风格 Vue2的API风格是Options API,也叫配置式API。一个功能的数据,交互,计算,监听等都是分别配置在data, methods,computed, watch等模块里的。如下: <template><div class"person"…...

【C++】内存五大区详解
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...

Django学习笔记教程全解析:初步学习Django模型,初识API,以及Django的后台管理系统(Django全解析,保姆级教程)
把时间用在思考上是最能节省时间的事情。——[美]卡曾斯 导言 写在前面 本文部分内容引用的是Django官方文档,对官方文档进行了解读和理解,对官方文档的部分注释内容进行了翻译,以方便大家的阅读和理解。 概述 在上一篇文章里࿰…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...