Linux常用重要命令

目录

windows与linux的区别

Linux的命令

用户配置

切换用户

退出当前用户

添加用户

删除用户

 文件相关命令

当前工作目录

查看当前工作目录下的所有文件

改变当前工作目录

创建目录

删除目录

拷贝文件或者目录

移动文件或者目录

删除文件

树状目录结构显示

权限相关

修改权限

1. 文字设定法

2. 数字设定法

掩码

文件查找

索引

常见的查找条件

应用通配符

查找的权限

文件查看和处理

查看文件内容

文件类型

标准的输入输出与重定向

创建文件

文件内容查找

其他命令相关

查看命令的别名

输入命令的历史记录

查看命令的帮助


windows与linux的区别

windows下面有盘符的概念,C盘,D盘,E盘等等。但是在Linux没有盘符的概念。
Linux的目录结构:所有的目录都是从根目录“/”开始,是我们的根目录。

Linux的命令

查看命令的方式,可以使用man + 命令

Linux的下面,输出命令之后,没有反应就是最好的反应。
tab键具有联想补全功能

用户配置

用户是Linux的使用者:

1.Linux是多用户的系统,一个用户可以多次(同时)登录一个Linux系统,多个用户也可以(同时)登录一个Linux系统。(与Windows桌面版本不一样)
2.使用Linux系统就像是入住一间豪宅。豪宅有它的主人,家人和客人;类似地,Linux系统的用户也分为普通用户和特权用户
3.普通用户有很多个,它们只能使用系统的部分功能,而超级用户只有一个,它的名字是root,它可以使用系统的所有功能--包括删除另外一个用户
4.对于部分普通用户,它们可以使用sudo命令来临时提高自己的权限,从而可以执行一些(而不是所有)特权命令,比如想要使用apt install命令在系统上安装软件,使用shutdown命令关机等等
5.普通用户的shell命令提示符是$,root的shell命令提示符是#
6.每个用户都在一个组当中。组被用于将若干用户集合到项目或部门当中去。组机制允许同组的各个成员可以共享资源
7.为了节约空间,操作在保存用户和组信息的时候,只保存两个整型数字,称为用户ID和组ID。用户ID和组ID和用户名和组名是一一对应的

切换用户

切换到根用户,执行su命令

切换到其他用户,在su命令后面添加用户名即可。从root用户进入其他用户的时候不需要密
码.

退出当前用户

使用exit指令可以退出当前用户。

用户使用su指令会进入其他用户,使用exit指令会回到当前的用户
当嵌套使用su指令来依次进入多个用户时候,多个用户是使用 栈结构 来管理的。执行su指令相当于将新用户压入栈顶,执行exit指令相当于弹出栈顶
当用户在上述的 栈结构 中存在的时候,那个用户是不能够被删除的

添加用户

使用useradd命令来添加用户有root用户或者拥有sudo权限的用户使用sudo命令后才能添加用户

什么是拥有sudo权限的用户?
如果把root看成是宫中的皇帝,root作为皇帝自然是拥有至高无上的权力,但是这种权力往往
也会带来大量的风险(比如下了一个错误的指令,例如删除所有的内容),另一方面,root也不希望事必躬亲。这个情况下,root可以将部分权力委托给一些普通用户(类似宫中的太
监),这些普通用户只要拿到“圣旨”以后,就能以root的身份来处理事情。

在Linux系统中,没有消息就是最好的消息。通常命令执行成功时是不会有任何提示的,只有失败的时候才会在shell里面打印错误信息.

删除用户

使用userdel命令来删除用户

如果用户正在使用中,那么这个用户就不能被删除
如果用户在su命令和exit命令构成的用户 栈结构 当中的时候,那么这个用户也不能被删除
在userdel后面添加-r选项(Recursive递归),可以删除用户家目录下的文件

 文件相关命令

文件是存放磁盘上的数据
Linux的文件系统是一套单根目录结构
目录的根基是被称为 根root 的目录,它写作"/"
文件拥有不同的类型,比如目录文件、普通文件等等(目录也是一种文件)
由文件名组成的字符串,以"/"分隔称为路径。根目录开始的路径称为绝对路径,当前目录下的路径称为相对路径。最后一个"/"之前的部分称为目录部分,后面的称为文件部分

当前工作目录

在shell的命令输入栏左边,会提示当前目录的路径。其中,如果路径的最左边是~,那么路径的根是用户的家目录(即/home/用户名);如果路径的最左边是/,那么路径的根是root目录。当前目录是相对路径的起始位置,也是进程的“当前位置”。

使用pwd命令可以显示当前工作目录:

$pwd

查看当前工作目录下的所有文件

使用ls命令可以显示当前工作目录下的所有文件的文件名

$ls

无论是在哪个目录下面使用ls,都会发现显示结果必有两个目录文件,依次是 . 和 ..
.代表的是当前目录,.. 代表的是上级目录
在ls后面可以添加路径名,这样可以打印对应路径下的所有文件的文件名

熟练使用tab键的自动联想功能。当你忘记想要输入的路径的时候,使用tab键会给你新的灵
感。在某些情况下,如果你输入了路径的前缀,使用tab键会自动补全路径

在ls命令后面添加-a参数,可以显示隐藏文件(文件名以.开头的文件)

$ls -a

在ls命令后面添加-l参数,可以显示文件的详细信息

$ls -l

1.第一个字母用来说明文件的类型,这种方法是和Windows使用后缀来代表文件类型不同的。如果第一字母是d,那么说明这是一个目录文件,如果是-,那么说明是普通文件(包括文本文件和二进制文件)。文件类型还有很多种,例如:块特殊文件、字符特殊文件、命名管道(FIFO)、套接字(socket)和符号链接等
2.后续的九个字母代表的是权限。依次是代表拥有者的读,写,执行、拥有组的读,写,执行和其他用户的读,写,执行权限。如果文件可读则显示r,可写则显示w,可执行则显示x,没有相关权限则显示-
3.后续的数字代表的是指向这个文件的硬链接数
4.后续的两个字符串依次代表文件拥有者和拥有组
5.随后的数字代表了文件的所占用的空间,这个属性只对普通文件,目录文件和符号链接有意义。普通文件的大小可以是0。目录的大小是固定的,在本机中是4096,它和目录下面的文件大小无关,目录文件主要是存放目录下的文件的文件名。符号链接的大小是它指向的文件的路径名长度
6.接着就是一个时间和日期,说明的是最后修改的时间
7.最后的字符串说明了文件名字,如果是符号链接,它还会显示指向文件的名字

改变当前工作目录

使用cd命令可以改变工作目录

 

$cd /dev 

在dev目录上面使用ls -l指令以后,会发现这个目录下有大量的块特殊文件和字符特殊文件。
其中块特殊文件用b来表示,字符特殊文件用c来表示。特殊文件实际上是硬件设备在文件系
统上的抽象,所以特殊文件也叫设备文件
块特殊文件的特点是每次读取都读取一“块”数据,也就是说会设置一个专门的缓冲区来存放
数据,典型的块特殊文件有磁盘。字符特殊文件的特点是每次读取都读取一个字符,典型的
有键盘、鼠标、打印机等等.

cd后面添加-,可以回到上次cd之前的目录(连续使用cd - 只能在两个目录之间切换,因为之前目录是存放在环境变量里面,使用env命令可以查看,每次使用cd命令都会修改环境变量)

$cd -

如何使用cd命令,使工作目录转移到父目录,根目录,家目录?

$cd ..
$cd /
$cd ~ 或者 cd

创建目录

使用mkdir可以创建一个目录 

$mkdir 目录名

如果直接去/home下面使用mkdir,它会提示没有权限。能否在一个目录下去添加新的文件,依赖于用户对目录的写权限,因为在目录下添加文件,实际上是修改了目录文件里面的内容。目录文件里面实际上是存储一个链表,其中每个链表结点代表一个文件的文件名和磁盘地址信息.

删除目录

使用rmdir命令可以删除一个空目录

$ rmdir 目录名

注意:rmdir不能删除非空的目录

拷贝文件或者目录

使用cp命令可以拷贝文件和目录

$ cp [选项] 源文件 目标路径|目标文件
# 当目标是目录的时候,cp命令会直接在目标目录下拷贝一份副本,文件名和源文件一致
# 当目标是文件的时候,cp命令会拷贝源文件的内容,重命名为目标文件的名字

Ubuntu当中,如果cp命令中目标路径已经存在同名文件,那么就会直接覆盖(其他发行版中在选项中添加-f(force 强制)也可以实现同样的效果)
如果希望在覆盖之间进行警告,则应该在选项中添加-i(interactive 交互式)。比如,如果dir1/text1已经存在,则键入下面的命令:

$ cp -i text1 dir1
# 那么就会出现提示:
cp: overwrite 'dir1/text1'?
# 如果输入n或者no就会不覆盖,输入其他则会覆盖

如果源文件是一个目录,那么在选项中必须要添加-r,这里r是recursive(循环递归)的意思,也就是说添加-r以后,cp命令会递归地将目录下的所有文件都进行拷贝

$ cp -r dir1 path
# 执行完毕后会出现dir1的副本path/dir1

移动文件或者目录

 使用mv命令可以移动文件或者目录

$ mv [选项] 源文件 目标路径|目标文件

执行mv命令的效果和Windows下的剪切-->粘贴的效果一样
和cp命令一样,mv命令会出现覆盖现存文件的情况,mv也可以使用-f或者-i选项来关闭或者开启提醒
Linux里面没有专门的重命名命令,使用mv命令移动到原来的目录下面就可以实现重命名了

删除文件

使用rm命令可以删除文件

$ rm [选项] 文件|目录

使用rm,cp和mv导致文件被覆盖或者删除都是 不可恢复 的!
不要以root的身份或者是sudo权限来执行 rm -rf,这会造成不可恢复的后果
和rm以及cp命令一样,rm也可以使用-f选项来实现强制删除,使用-i选项来实现删除前交互提示,使用-r选项来实现递归删除目录及目录下文件

树状目录结构显示

$ tree 路径名

使用tree命令就可以显示目录的树状结构

.├── dir1│  ├── text1│  └── text3├── dir2│  ├── text1│  └── text2├── text1└── text2

显然,tree命令可以将目录的树形结构用图形化的方式打印出来

权限相关

修改权限

文件的权限有三种,依次是读、写和执行
从命令ls -l的打印结果中可以得知,这种三种权限还会根据用户的身份而有所不同。文件的拥有者、文件拥有者的同组其他成员以及其他用户对文件的权限会有所区别

1. 如何判断某个用户能否读取/修改/执行文件?

答:先判断当前用户和文件之间的身份关系,然后再检查文件的权限位 

2. 如何判断某个用户能否删除文件?

先找到文件所在目录,判断当前用户是否拥有目录的写权限 

使用chmod可以修改文件的权限,chmod命令比较灵活,它拥有比较多种使用模式

1. 文字设定法
$ chmod [who][+|-|=][mode] 文件名
# who代表用户类型:u表示用户,g表示组成员,o表示其他用户,a或者不写代表所有用户(ugo三个字
母可以组合)
# +|-|=代表操作符:+表示添加某个权限,-表示取消某个权限,=表示设置成某种权限
#mode代表模式,使用rwx三个字母的组合,r表示可读,w表示可写,x表示可执行

可以在一行语句中对某个文件调整多次权限,使用逗号来分隔用户操作类型即可,例如:

$ chmod g+r,o+r example

执行完成以后,增加了组成员和其他用户的读权限
另外一个例子,删除example文件所有用户的执行权限(三种写法等价)

$ chmod a-x example
$ chmod -x example
$ chmod ugo-x example
2. 数字设定法
 

通常文件的权限是采用类似于位图的形式来进行存储,3位的2进制数字可以用来表示文件的读写执行权限9位的2进制数字就可以表示文件的所有用户权限
在3位2进制数中,通常使用最高位表示读权限,随后是写权限,最低位是执行权限。然后再将拥有用户,拥有组和其他用户组合起来,就能得到一个9位2进制数字,最后按照8进制和2进制的转换方法,文件权限就能很轻松地一个用3位8进制数字来表示
例如 0644 就是 拥有者可读可写不可执行,组用户和其他用户可读不可写不可执行

$ chmod 644 example

上诉代码执行完成以后就会将权限设置成拥有者可读可写不可执行,组用户和其他用户可读不可写不可执行

$chmod 775 example

上诉代码执行完成以后就会将权限设置成拥有者和组用户可读可写可执行,其他用户可读不可写可执行(工作中经常使用)

掩码

umask指文件(默认是0666)或目录(默认0777)创建时在全部权限中要去掉的一些权限,普通用户缺省时umask的值为002,root用户为022
请根据实际创建的文件的权限回答,掩码是怎么运算的?

文件权限= default(默认权限) & ~umask(掩码取反)
以通过umask查看默认的缺省的掩码值,通过umask 001来修改掩码值

$ umask
$ umask 001

这种操作是临时的,如果要永久修改,需要修改配置文件

文件查找

索引

在Windows的旧版本当中,想要搜索一个文件是非常缓慢的。为了实现快速查找,在Windows 10和Linux系统当中,系统会专门维护一个索引文件
在Linux当中,索引文件是存放在具体的磁盘文件前面的,索引文件里面存放了各个文件的位置信息和其他信息。
使用find命令可以根据查找条件来在起始目录之下来查找文件,然后再执行指定的操作

find 路径(可以是绝对路径或者相对路径) -name "文件名字" 
文件名字可以使用通配符
* 代表任意多个字符
? 代表任意一个字符
[] 代表一个范围,中括号中可以是数字,也可以是字母,可以数字与字母结合在一起的使用

使用find命令可以用来查找某个头文件的位置

find . -name "file[0-9a-z]"
./file4
./file2
./file3
./filex

常见的查找条件

根据名称和文件属性查找
-name ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]
-gid n 查找属于ID号为n的用户组的所有文件
-uid n 查找属于ID号为n的用户的所有文件

$ find . -uid 1000 

-group ’字串’ 查找属于用户组名为所给字串的所有的文件
-user ’字串’ 查找属于用户名为所给字串的所有的文件

$ find . -user wangdao

应用通配符

通配符是字符串里面的特殊符号。如果将字符串里面的通配符按照一定的规则用字符来替换以后,得到的字符串和目标字符串一致,那么目标字符串就能匹配
例子,当前目录里面有文件file,file1,file12,file2,file3,file4

$ find . -name "file*"
# *用来匹配0至多个任意字符

结果是

./file1./file./file12./file2./file3./file4

$ find . -name "file?"
# ?用来匹配1个任意字符

结果是:

./file1./file2./file3./file4
$ find . -name "file[0-9]"
# [范围] 用来匹配1个范围内的字符

结果是:
 

./file1./file2./file3./file4

查找的权限

·可执行权限(x): 如果目录没有可执行权限, 则无法进入(cd)到目录中.

·可读权限(r): 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
·可写权限(w): 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

文件查看和处理

查看文件内容

使用cat命令可以查看文件内容

cat命令
查看小文件
head命令
head - output the first part of files 查看文件的前面一部分内容
tail命令
tail - output the last part of files 查看文件的尾部内容
more命令
more - file perusal filter for crt viewing 查看文件里面的内容,可以一行行的查阅。
less命令
less - opposite of more

文件类型

使用file命令可以查看文件的类型

$file a.out
$file test.c

标准的输入输出与重定向

文件描述符是一个整数,它代表一个打开的文件
标准的三个描述符号:
1. 标准输入:一般指键盘,描述符为:0
2. 标准输出:一般指屏幕输出,描述符为:1
3. 错误输出:也是屏幕,描述符为:2
重定向符号包括重定向输入<,重定向输出>,添加输出>>,错误重定向2>,错误和信息重定
向&>

其中>表示创建,>>表示追加,<<表示以什么结束,如果cat的命令行中没有参数,它就会从标准输入中读取数据,并将其送到标准输出

创建文件

linux中创建空文件的四种方式:

# 方式1,使用echo:
$ echo > a.txt(会有一个字节)
$ echo -n > a.txt
# 方式2,使用touch:
$ touch b.txt
# 方式3,使用cat:
$ cat > c.txt
$ 按ctrl+c或ctrl+d退出
# 方式4: vim d.txt
$ 进入之后按:wq退出

文件内容查找

使用grep命令可以查找文件内容

$ grep [选项][查找内容][文件名1,文件名2,…]

其他命令相关

查看命令的别名

使用alias命令可以打印当前所使用的别名情况。一旦给命令起了别名,那么输入命令的别名就可以起到和原来命令一样的效果。

下面的例子是使用alias命令以后,终端打印的部分信息:

alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

输入命令的历史记录

使用history命令可以获取输入命令的历史记录,在history命令后面再添加> 文本文件,就可以将历史记
录保存到文本文件(本例子中是myHistory.txt)里面

$ history > myHistory.txt

查看命令的帮助

Linux系统中会内置帮助手册,帮助手册有8个部分,包括用户手册、程序员手册和系统管理员手册等等。通常通过关键字+数字的形式来说明是第几个手册的帮助信息。例如,ls(1)就说明是第一部分(用户手册,即shell命令手册)的ls命令的信息
使用man命令可以查看帮助信息

$ man [手册编号] 命令名字

进入帮助界面以后,使用q可以退出界面,使用方向键可以向前向后查看,使用b和f可以前后翻页,使用/+字符串可以进行查找

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/442280.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录 | ubuntu nm命令的基本使用

什么是nm命令 nm命令是linux下针对某些特定文件的分析工具&#xff0c;能够列出库文件&#xff08;.a、.lib&#xff09;、目标文件&#xff08;*.o&#xff09;、可执行文件的符号表。 nm命令的常用参数 -A 或 -o 或 --print-file-name&#xff1a;打印出每个符号属于的文件…

12个适合后端程序员的前端框架

前言 今天我们分享12个适合后端程序员的前端框架&#xff0c;本文中的所有前端框架都已经收录到适合后端程序员的前端框架GitHub Issues知识库中&#xff0c;假如大家有更好前端框架推荐欢迎到以下GitHub项目地址留言或者在文末留言&#xff08;注意&#xff1a;排名不分先后&a…

解决:ModuleNotFoundError: No module named ‘selenium’

解决&#xff1a;ModuleNotFoundError: No module named ‘selenium’ 文章目录 解决&#xff1a;ModuleNotFoundError: No module named selenium背景报错问题报错翻译报错位置代码报错原因解决方法方法一&#xff0c;直接安装方法二&#xff0c;手动下载安装方法三&#xff0…

matlab基本操作

目录 1 清空workspace 2 清空命令行窗口 3 求字符的ASCII码 4 矩阵的表示 5 矩阵的转置 6 按列输出 7 求逆矩阵 8 创建零矩阵 9 生成随机数 10 生成空数组 11 生成单位矩阵 12 生成幻方矩阵 13 结构体 14 重复 15 点乘与叉乘 16 寻找符合条件的元素…

基于ssm和微信小程序的健身房私教预约管理系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

同样都是代码签名证书,OV和EV的区别在哪?

在现代软件开发和分发过程中&#xff0c;确保代码的安全性和可信度至关重要。为了达到这一目标&#xff0c;开发者通常会采用数字签名技术来验证其软件的完整性和来源。其中&#xff0c;OV&#xff08;Organization Validation&#xff09;代码签名证书和EV&#xff08;Extende…

useEffect的第二个参数

目录 1、第一个参数&#xff1a; 2、第二个参数&#xff1a; 2.1 不传值&#xff1a;无限循环 2.2 空数组作为依赖&#xff1a;执行一次 2.3 基本类型作为依赖&#xff1a;无限循环 2.4 引用类型 2.4.1 数组作为依赖&#xff1a;无限循环 2.4.2 函数作为依赖&#…

MySQL备份和恢复(二)mysqldump

注意&#xff1a;mysqldump是完全备份 一、mysqldump备份命令 1、 备份数据库 含创建库语句 &#xff08;1&#xff09;备份指定数据库 完全备份一个或多个完整的库&#xff0c; mysqldump -uroot -p[密码] --databases 库名1 [库名2].. >/备份路径/备份文件名.sql#导出…

溯源取证-iphone取证-高难度篇

摘要&#xff1a; 本次内容主要讲解iphone8取证&#xff0c;算是年前最后一篇了&#xff0c;大家将就着看哈 本次使用的工具&#xff1a; ileappGUI.exe github一款开源且免费的移动介质取证工具 Magnet Axiom Cyber 一款付费的移动介质取证工具 DB.Browser.for.SQLite-3.12…

【Node.js基础】Node.js的介绍与安装

文章目录 前言一、什么是Node.js&#xff1f;二、安装Node.js2.1 Windows系统2.2 macOS系统2.3 Linux系统 三、运行js代码总结 前言 随着互联网技术的不断发展&#xff0c;构建高性能、实时应用的需求日益增长。Node.js作为一种服务器端运行时环境&#xff0c;以其事件驱动、非…

遍历删除空文件夹

文章目录 遍历删除空文件夹概述笔记END 遍历删除空文件夹 概述 在手工整理openssl3.2编译完的源码工程中的文档, 其中有好多空文件夹. 做了一个小工具, 将空文件夹都遍历删除掉. 这样找文档方便一些. 删除后比对了一下, 空文件夹还真不少. 笔记 // EmptyDirRemove.cpp : 此…

力扣hot100 数组中的第K个最大元素 堆 三路划分

Problem: 215. 数组中的第K个最大元素 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 参考 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( log ⁡ n ) O(\log{n}) O(logn) Code class Solution {public int findKthLargest(int[] nums, int k…