Linux常用命令

走进Linux

  • 关机指令为:shutdown
sync # 将数据由内存同步到硬盘中
shutdown # 关机指令
shutdown -h 10 # 计算机将在10分钟后关机
shutdown -h now # 立刻关机
shutdown -h 20:25 # 在固定时间关机
shutdown -h +10 # 计算机将在10分钟后关机
shutdown -r now # 系统立刻重启
shutdown -r +10 # 系统10分钟后重启
reboot # 立即重启,等同于shutdown -r now
halt # 关闭系统,等同于shutdown -h now 或 poweroff
  • 注意:不论要重启还是关闭系统,首先要运行sync命令,把内存中的数据写入磁盘

系统目录结构

  • 一切皆文件

  • 根目录/,所有的文件都挂载在这个节点下

登录系统后,在当前命令窗口下输入命令:

ls /

bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

以下是对这些目录的解释:

  • /bin:bin是Binary的缩写,存放着最经常使用的命令
  • /boot:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
  • /dev:dev是Device(设备)的缩写,存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的
  • /etc:用来存放所有的系统管理所需要的配置文件和目录
  • /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
  • /lib:存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件
  • /media:Linux会自动识别一些设备,例如U盘,光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下
  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt上,然后进入该目录就可以查看光驱里的内容了。(我们后面会把一些本地文件挂载在这个目录下)
  • /opt:这是给主机额外安装软件所摆放的目录。比如一个ORACLE数据库就可以放到这个目录下
  • /proc:这是一个虚拟目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息
  • /root:该目录为系统管理员,也称作超级权限者的用户主目录
  • /run:是一个临时的文件系统,存储系统启动以来的信息,当系统重启时,这个目录下的文件就会被删除掉
  • /sbin:s就是Super的意思,这里存放的是系统管理员使用的系统管理程序
  • /srv:存放一些服务启动之后需要提取的数据
  • /sys:这是Linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统sysfs
  • /tmp:用来存放一些临时文件,用完即丢的文件,可以放在这个目录下,如安装包
  • /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录
  • /var:存放着在不断扩充的东西,我们习惯将那些经常被修改的目录放在这个目录下,包括各种日志文件

常用命令

目录管理

cd

绝对路径与相对路径

绝对路径是路径的全称:C:\ProgramData\mysql\xxx.xx

相对路径:比如当前在mysql目录下,那么xxx.xx文件,对应我们的相对配置就是/xxx.xx

  • cd:切换目录命令,change directory
  • cd …:返回上一级目录
  • cd /:切换至根目录
    在这里插入图片描述

ls

  • ls:列出目录(经常使用),list

选项

  • -a:查看全部的文件,包括隐藏文件
  • -l:列出所有的文件,包含文件的属性和权限
  • -h:人性化显示文件大小
    在这里插入图片描述
  • ‘ls -l’ 可以简写成 ll
    在这里插入图片描述

pwd

  • pwd:显示当前所在的目录,print working directory

在这里插入图片描述

mkdir

  • mkdir:在当前目录下创建一个新目录,make directories

选项:

  • -p:递归创建(mkdir -p test1/test2/test3)
    在这里插入图片描述

rm、rmdir

  • rmdir:删除空目录,remove directory(不太重要)

选项:

  • -p:递归删除

  • rm [目录或文件]:删除文件或目录(重要)

选项:

  • -r:删除目录
  • -f:强制
  • -i:询问是否删除

在这里插入图片描述

cp

  • cp [选项] [原文件或目录] [目标目录]:复制文件或目录,copy

选项:

  • -r:递归复制目录

  • -p:连带文件属性复制

  • -d:若源文件是链接文件,则复制链接属性

  • -a:相当于 -rpd

cp huangyue/apache-tomcat-9.0.43.tar.gz test/

mv

  • mv [选项] [原文件或目录] [目标目录]:移动文件或目录,move

选项:

  • -f:强制
  • -u:只替换已经更新过的文件
mv huangyue/apache-tomcat-9.0.43.tar.gz test/

也可以用于重命名文件或目录:
在这里插入图片描述

文件属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如:

在这里插入图片描述
第一个字母代表文件类型:-(文件)、l(链接,相当于快捷方式,会指向一个路径)、d(目录)

剩下的9位将每3个为1组,分别代表所属用户的权限、所属组的权限、其他用户的权限。

  • [ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。

-r:递归更改文件属组,就是在更改某个文件目录的属组时,如果加上-r参数,那么该目录下的所有文件都会被更改

chown

更改属主,change owner

  • chown [选项] 属主名 文件名:更改文件属主
  • chown [选项] 属主名:属组名 文件名:同时更改文件的属主和属组

chgrp

更改属组,change group

  • chgrp [选项] 属组名 文件名:更改文件属组

chmod

更改文件9个属性**(必须掌握)**,change mode

工作中很多情况下会出现:你没有权限操作此文件

chmod [-r] xxx 文件或目录

Linux文件属性有两种设置方法,一种是数字(常用),一种是符号。

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

r:4		w:2		x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx—] 分数则是:

  • owner = rwx = 4+2+1 = 7

  • group = rwx = 4+2+1 = 7

  • others= — = 0+0+0 = 0

因此可以使用如下命令进行权限的修改:

chmod 770 [文件名]

就可以将文件权限修改为rwxrwx—了

如果是 chmod 777 [文件名]则赋予文件所有权限

在这里插入图片描述

文件查看

cat、tac

  • cat [文件名]:由第一行开始显示文件内容,用来读文章,或者读取配置文件,都是使用cat
  • tac [文件名]:是cat的反写,也就是倒序读取文件内容

在这里插入图片描述

nl

  • nl [文件名]:类似于cat,只不过显示时会多显示行号(常用)

在这里插入图片描述

more、less

  • more [文件名]:一页一页的显示文件内容(只能向下翻页、查看)

在这里插入图片描述
空格翻页、回车看下一行、:f 查看当前行号
在这里插入图片描述

  • less [文件名]:与more类似,但可以往前翻页(上下键看上一行或下一行,Page Up向上翻页,Page Down或空格向下翻页,按q退出
  • 在less下查找字符串:使用 / + 字符串(向下查找) 或 ? + 字符串(向上查找) 命令即可查找,查找后输入n(向上)或N(向下),可向下或向上跟进下一个字符串

例如向下查找set字符串,输入/set:
在这里插入图片描述

head、tail

  • head [-n num] [文件名]:查看文件的头num行,如果-n不写则默认显示10行
  • tail [-n num] [文件名]:查看文件的尾num行,如果-n不写则默认显示10行

其他命令

ifconfig

  • ifconfig:查看网络配置

在这里插入图片描述

hostname

  • hostname:更改当前主机名

输入 hostname 111 后,当创建新连接时,主机地址就会改为111

在这里插入图片描述
在这里插入图片描述

top

top命令可以查看当前所有进程的占用,包括cpu、内存等信息

当输入top命令后会出现如下界面:

在这里插入图片描述
我们可以按内存占用排序

按Shift + F,上下移动至%MEM处,按s键后按ESC退出
在这里插入图片描述
这样就能看到按占用内存排序了
在这里插入图片描述
退出top模式按“q”键即可

jobs

  • jobs:查看所有后台执行的作业,在后台启动jar包时经常使用

硬链接与软链接

Linux的链接分为两种:硬链接和软链接

硬链接:A→B,假设B是A的硬链接,那么他们两个指向了同一个文件。允许一个文件拥有多个路径,删除了A链接后,如果还有其他链接(B),那么还是可以访问到原文件的(使用B访问)。用户可以通过这种机制建立硬链接到一些重要的文件上,防止误删

软链接:类似Windows下的快捷方式,删除原文件后,会导致软链接也无法访问

  • ln [选项] [原文件] [链接文件]:创建链接

选项:

  • -s:创建软链接
[root@centos-7 home]# touch test.txt # 创建一个文件
[root@centos-7 home]# ll
-rw-r--r--.  1 root root    0 3月  11 02:47 test.txt

[root@centos-7 home]# ln test.txt test1.txt # 创建硬链接
[root@centos-7 home]# ll
-rwxrwxrwx.  2 root root    0 3月  11 02:47 test1.txt
-rwxrwxrwx.  2 root root    0 3月  11 02:47 test.txt

[root@centos-7 home]# ln -s test.txt test2.txt # 创建软链接
[root@centos-7 home]# ll
-rwxrwxrwx.  2 root root    0 3月  11 02:47 test1.txt
lrwxrwxrwx.  1 root root    8 3月  11 02:52 test2.txt -> test.txt
-rwxrwxrwx.  2 root root    0 3月  11 02:47 test.txt

[root@centos-7 home]# echo "Hello World." >> test.txt # 写入字符串到原文件
[root@centos-7 home]# cat test.txt
Hello World.
[root@centos-7 home]# cat test1.txt
Hello World.
[root@centos-7 home]# cat test2.txt
Hello World.

只要对原文件进行了修改,查看其他链接时都会查看到相应的修改

当我们删除原文件时,观察变化:

在这里插入图片描述
发现硬链接的test1.txt是可以访问的

Vim 编辑器

vim通过一些插件可以实现和IDE一样的功能

Vim是vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能非常丰富,被程序员广泛使用

简单来说,vi是老式的文本编辑器,不过功能已经很齐全了,但是还是有可以进步的地方

vim则可以说是程序开发者的一项很好的工具

所有的Unix Like系统都会内建vi文本编辑器,其他的文本编辑器则不一定会存在

连vim的官方网站也说自己是一个程序开发工具而不是文字处理软件

vim键盘图(不用记,会一般的增删改查即可)
在这里插入图片描述

三种模式

基本上vi/vim共分为三种模式,分别是命令模式(Command mode)、输入模式(Insert mode)和底线命令模式(Last line mode)

命令模式

只要是使用vi/vim编辑器打开一个文件,那么默认就会进入命令模式

[root@centos-7 test]# vim hello.txt

在这里插入图片描述

输入模式

在命令模式下按下 ‘i’ 即可进入输入模式
在这里插入图片描述
输入模式下按 ‘esc’ 键即可返回命令模式在这里插入图片描述

底线命令模式

:wq

在命令模式下按 ‘:’,即可进入底线命令模式,同时并输入wq即可保存并退出,返回到命令行

:set nu

  • 输入 ‘:set nu’ 回车后可以显示行号
    在这里插入图片描述
    在这里插入图片描述

使用 ‘:set nonu’ 可以取消行号

账号管理

一般在公司中,用的应该不是root账户

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改
  • 用户口令的管理
  • 用户组的管理

添加账号

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。

  • useradd [选项] [用户名]

选项:

  • -c:comment 指定一段注释性描述。
  • -d:目录,指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
  • -g:用户组,指定用户所属的用户组。
  • -G:用户组,指定用户所属的附加组。
  • -m:使用者目录如不存在则自动建立。
  • -s:Shell文件,指定用户的登录Shell。
  • -u:用户号,指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

添加后系统会自动添加该用户的主目录
在这里插入图片描述

为新增的账号添加密码

在root下:

  • passwd [用户名]
    在这里插入图片描述

在普通用户下:

  • passwd
    在这里插入图片描述
    注意:Linux上输入密码是不会显示的,你正常输入就可以了

在公司中,你们一般拿不到公司服务器的root权限,都是一些分配的账号

锁定账号

  • 在root下,可以使用 passwd -l [用户名] 对某个用户进行冻结,此后,此用户无法再次登录

删除账号

  • userdel [选项] [用户名]

选项:

  • -r:把用户的主目录一起连带删除

在这里插入图片描述

修改用户

  • usermod [选项] [用户名]

选项(与useradd类似,不一一列举了):

例如将Tom用户的目录名改为111,使用usermod -m -d /home/111 Tom,-d表示修改目录,-m表示自动创建目录

在这里插入图片描述

切换用户

1.切换用户的命令为:su username (username是你的用户名哦)

2.从普通用户切换到root用户,还可以使用命令:sudo su

3.在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令

4.在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】

$表示普通用户

#表示超级用户,也就是root用户

  • 切换至Tom用户:su Tom,界面如下

在这里插入图片描述

  • 切换回root用户:
  • ①输入su root,然后输入密码:
    在这里插入图片描述
  • ②直接输入exit:
    在这里插入图片描述
  • ③按Ctrl + D退出:

在这里插入图片描述

用户组管理

属主、属组

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(如开发组、测试组、运维组、root)。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时会同时创建

用户组的管理设计用户组的添加、删除和修改。组的添加、删除和修改实际上就是对**/etc/group文件进行的更新**

创建用户组

  • groupadd [选项] [用户组名]
    在这里插入图片描述
    查看/etc/group文件:

在这里插入图片描述
选项:

  • -g:手动指定组的id,默认是从1000开始

删除用户组

  • groupdel [用户组名]
    在这里插入图片描述
    在这里插入图片描述

修改用户组

  • groupmod [选项] [用户组名]

选项:

  • -g:设置id
  • -n:修改用户组名
    在这里插入图片描述

切换用户组

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。

用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:

newgrp root

这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。

磁盘管理

df

  • df [选项]:列出文件系统整体的磁盘使用量,可以加 ‘-h’ 选项进行人性化显示

选项:

  • -a:显示隐藏文件
  • -h:人性化显示大小
    在这里插入图片描述

du

  • du [选项] [目录]:检查磁盘空间使用量

选项:

  • -s:只显示目录大小,不显示子目录或文件的大小
  • -h:人性化显示大小

在这里插入图片描述

进程管理

在Linux中,每一个程序都是一个进程,每一个进程都有一个id号

每一个进程都有一个父进程

进程可以有两种方式:前台、后台运行,服务一般是后台运行的,程序一般是前台运行的

ps

  • ps [选项]:查看当前系统中正在执行的各种进程的信息

常用的一些组合选项:

  • ps -aux:使用BSD格式显示进程,其格式如下
    在这里插入图片描述
    USER:用户名

PID:进程的ID

%CPU:进程占用的CPU百分比

%MEM:占用内存的百分比

VSZ:该进程使用的虚拟內存量(KB)

RSS:该进程占用的固定內存量(KB)(驻留中页的数量)

TTY:该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。

STAT:进程的状态

START:该进程被触发启动时间

TIME:该进程实际使用CPU运行的时间

COMMAND:命令的名称和参数

  • ps -ef:使用标准格式显示进程,其格式如下:
    在这里插入图片描述
    UID:用户ID、但输出的是用户名

PID:进程的ID

PPID:父进程ID

C:进程占用CPU的百分比

STIME:进程启动到现在的时间

TTY:该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程

CMD:命令的名称和参数

  • 常用用法:ps -aux|grep [进程名]:查看所有的进程,并使用|管道进行过滤,过滤条件是grep [进程名],即查找文件中符合条件的字符串

  • 常用用法:ps -ef|grep [进程名]:查看所有的进程,只不过这个可以查看到父进程的信息

  • 常用用法:pstree [选项]:查看进程树

选项:

  • -p:显示父进程id

  • -u:显示用户组

  • 测试 pstree -pu
    在这里插入图片描述

kill

  • kill:用于结束进程

当进程无法运作时,我们可以通过进程id将指定进程杀死

  • 常用用法:kill -9 [进程id]

一般开发中很少用到,除非java出现死循环了,可以使用kill进行杀死

扩展

相关文件

  • /etc/passwd:存放用户信息的文件
    在这里插入图片描述
    格式解释:
用户名:口令(这个是看不见的,所以为x):用户标识号:组标识号:注释性描述:主目录:登录Shell

这个文件中的每一行都对应一个用户,但是密码是看不到的

可以查看密码加密的文件:/etc/shadow(了解即可)

在这里插入图片描述

  • /etc/group:存放用户组信息的文件

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sadness°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值