欢迎光临散文网 会员登陆 & 注册

Linux常用命令

2023-02-16 10:37 作者:财智一点通  | 我要投稿

Liunx简介

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

2022年11月20日,Linux 提交了最后一批 drm-intel-next 功能补丁,Linux 6.2将迎来对英特尔锐炫独显的正式支持。

一、 Linux常用指令

1、vi和vim

(1)vim基本编辑保存步骤

vim data.txt:打开或创建data.txt文件,进入一般模式

输入i进入编辑模式,并进行文本编辑

按esc,输入:,①wq保存并退出,②q不保存退出,③q!不保存并强制退出

(2)vi和vim快捷键(都在一般模式下)

拷贝当前行yy,拷贝当前行向下的3行3yy,粘贴p

删除当前行dd,删除当前行下3行3dd

文件中查找某关键字:/关键字

设置文件行号:set nu,取消文件行号:set nonu

一般模式下,到最后一行G,到第一行gg

撤销u

定位到第20行,输入20,在输入shift+g

2、关机、重启、登录、注销

(1)关机、重启

shutdown -h now    立刻进行关机

shutdown -h 1    1分钟后关机

shutdown -r now    重启

halt    关机

reboot    重启

sync    把内存的数据同步到磁盘

注意:

不管是重启还是关机,首先运行sync命令,把内存中的数据写到磁盘中;

目前shutdown、reboot、halt都支持在操作之前进行sync,但小心使得万年船;

(2)登录与注销

一般不用系统管理员登录,实际中都用一般用户登录,然后可以通过命令切换到管理员权限,

切换系统管理员:su - root

注销:logout

3、用户基本语法

useradd 用户名     添加用户    useradd -d /home/test king

passwd 用户名     更改密码    

pwd    显示当前所在目录    

userdel 用户名    删除用户    

userdel -r 用户名    删除用户并删除对应的home目录    

id 用户名    查询用户信息    

su - 切换用户名    切换用户    

exit或logout    返回原用户    

who am i    显示登陆的信息    

4、用户组

groupadd 组名    新增组    

groupdel 组名    删除组    如果创建用户时,没有创建组,系统就会默认创建一个组,组名和用户名一致。

useradd -g 用户组 用户名    新增用户时直接加上组    

5、运行级别

(1)指定运行级别

(2)查看

查看当前运行级别:systemctl get-default

指定用户默认运行级别:system set-default multi-user.target

3:多用户级别,multi-user.target

5:图形化界面级别,graphical.target

6、帮助指令

man    获取帮助信息    

例如:查看ls命令的帮助信息man ls

在Linux下,隐藏文件是以.开头,选项可以组合使用,比如ls -al,比如ls -al /root

help    获取shell内置命令的帮助信息    

7、文件目录类

 pwd    显示当前工作目录的绝对路径    

ls    显示当前目录下文件    

ls -lh    显示目录下文件的详细信息(将文件大小由字节变为k,M,G)    

cd~    回到自己的家目录    

cd..    到上级目录    

mkdir    创建目录    默认只能创建一级目录,创建多级目录:mkdir -p /home/animal/tiger

rmdir    删除目录    

touch    创建空文件    

cd source dest    拷贝指令cp    

cd -r source dest    递归复制整个文件夹    

rm    删除目录    -r:递归删除整个文件夹,-f:强制删除不提示;

mv oldNameFile newNameFile    重命名    

mv /temp/movefile /targetFolder    移动文件    

less    分屏查看文件内容    

echo    输出内容到控制台    

head    显示文件的开头部分内容    显示文件的前五行  head -n 5

tail    显示文件的尾部内容

列表的内容写入文件中:ls -l > 文件

列表的内容追加到文件的尾部:ls -al >> 文件

将文件1的内容覆盖到文件2:cat 文件1 > 文件2

echo "内容" >> 文件

ln    软链接,也成符号链接,类似于Windows里的快捷方式    ln -s [原文件或目录][软链接名],例如:ln -s /root/ myroot

history    查看已经执行过的历史命令    

1、显示所有的历史命令:history

2、显示最近使用过的10条指令:history 10

3、执行历史编号为5的指令:!5


8、时间日期类

date    显示当前时间    

date + %Y    显示当前年份    

date + %m    显示当前月份    

date + %d    显示当前是哪一天    

date + "%Y-%m-%d %H:%M:%S"    显示年月时分秒    

date -s 字符串时间    设置系统当前时间    date -s "2021-04-11 15:46:00"

cal    日历指令    显示本月日历

cal 2021    日历指令    

显示2021年日历

9、搜索查找类

find    将从指定目录向下递归遍历其子目录,将满足条件的文件或目录显示在终端。    

基本语法:find [搜索范围][选项]

例子:

1、find /home -name hello.txt

2、find /opt -user jack

分页显示:find /home -user jack | more

3、查找整个Linux下大于200M的文件

find / -size +200M

locate    快速定位文件路径    需先执行updatedb创建locate数据库

which    查看某个指令在哪个目录下    例如:which ls

grep    过滤查找    

基本语法:grep [选项] 查找内容 源文件

选项:-n 显示行号;-i 忽略大小写

例如:

1、cat /home/hello.txt |grep "yes"

2、grep -n "yes" /home/helo.txt

|    管道    

10、压缩和解压

zip    压缩文件    

-r:递归压缩;-d:指定压缩文件的存放目录

例如:zip -r myhome.zip /home/

unzip    解压文件    例如:unzip -d /opt/temp /home/myhome.zip

tar    压缩和解压文件    

基本语法:tar [选项] xxx.tar.gz 打包的内容

选项说明:

选项    功能

-c    产生.tar打包文件

-v    显示详细信息

-f    指定压缩后的文件名

-z    打包同时压缩

-x    

解包.tart文件

例如:

1、将/home的文件夹压缩成myhome.tar.gz

tar -zcvf myhome.tar.gz /home/

2、解压myhome.tar.gz到opt/tmp目录下

(1)mkdir opt/tmp

(2)tar -zxvf /home/myhome.tar.gz -C /opt/tmp

二、组管理和权限管理

1、文件所有者

查看:ls -ahl

修改文件所有者:chown 用户名 文件名

2、组的创建

创建组:groupadd 组名

创建一个用户tom,并将其放入moster组中

useradd -g monster tom

3、权限的基本介绍

ls -l中显示的内容如下:

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

r    读read

w    写write

x    可被执行

0-9位说明

(1)第0位确定文件类型(d,-,l,c,b)

b    表示块设备,比如硬盘

d    表示目录,相当于Windows的文件夹

c    表示字符设备文件,比如键盘鼠标

l    表示链接,相当于Windows的快捷方式

(2)第1-3位确定所有者的权限

(3)第4-6位表示所在组对该文件的权限

(4)第7-9位表示其他用户对该文件的权限

4、修改权限

通过chmode指令,可以修改文件或目录的权限

(1)+,-,= 变更权限

u:所有者

q:所在组

o:其它人

a: 所有人

chmod u=rwx,g=rx,o=x 文件/目录名

chmod o+w 文件/目录名

chmod a-x 文件/目录名

(2)通过数字变更权限

r=4 w=2 x=1  rwx = 4+2+1=7

chmod u=rwx,g=rx,o=x 文件/目录名 相当于 chmod 751文件名

5、修改文件所有者-chown

基本介绍

chown newowner 文件/目录名 改变所有者

chown newowner:newgroup 文件/目录名 改变所有者和所在组

-R 如果是目录 则使其下所有子文件或目录递归生效

例如:

(1)请将/home/abc.txt文件的所有者修改为tom

chown tom /home/abc.txt

(2)请将/home下所有文件的所有者修改为tom

chown -R tom /home

6、修改文件/目录所在组-chgrp

-chgrp newgroup 文件/目录  改变所在组

三、定时任务调度与进程服务管理

1、定时任务调度

(1)简介

crondtab进行定时任务的设置

基本语法:crontab [选项]

常用选项:

-e    编辑crondtab定时任务

-l    查询crondtab任务

-r    删除当前用户所有的crondtab任务

crond相关指令:

crontab -r :终止任务调度

crontab -l:列出当前有哪些任务调度

service crontab restart:重启任务调度

(2)举例说明

/1 * * * * ls -l /etc/ > /tmp/to.txt定时每分钟执行,将etc的ls内容重定向到tmp下to.txt文件中。项目    含义第一个    一小时中的第几分钟

第二个*    一天中的第几小时

第三个*    一个月中的第几天

第四个*    一年中的第几月

第五个*    

一周中的星期几

特殊符号:

特殊字符    含义

代表时间,比如第一个*,代表每小时中的每分钟都执行一次

     代表不连续的时间,比如0 8,12,16 * * *  代表每天的8点0分,12点0分,16点0分都执行一次

代表连续的时间范围,比如0 5 * * 1-6  代表在周一到周六的凌晨5点0分执行命令

/n    代表每隔多久执行一次,比如/10 * * * *  代表每隔十分钟执行一遍命令

(3)at定时任务

at:一次性定时执行任务

at命令格式

at [选项][时间]

Ctrl + D 结束at命令的输入

2、进程管理

(1)进程号

在Linux中,每个执行的程序都称为一个进程,每一个进程都会分配一个ID号(pid,进程号)。

(2)ps指令

显示系统执行的进程

属性:

-a:显示当前终端的所有进程信息

-u:以用户的格式显示进程信息

-x:显示后台进程运行的参数

分页显示:ps -aux | more

过滤显示:ps -aux | grep sshd

(3)ps显示信息详解

USER:用户名称

PID:进程号

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

VSZ:进程占用的虚拟内存大小(单位:KB)

RSS:进程占用的物理内存大小(单位:KB)

TT:终端名称,缩写

STAT:进程状态(S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等)

STARTED:进程的启动时间

TIME:CPU时间,即进程使用CPU的总时间

COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

  (4)终止进程

kill和killall

基本语法:

kill [选项] 进程号(功能描述:通过进程号杀死进程)

killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

常用选项:-9 表示强制停止进程。


(5)查看进程树

pstree [选项],可以更加直观的查看进程信息

常用选项:

-p:显示进程的pid

-u:显示进程的所属用户

3、服务管理

(1)简介

服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如mysql、sshd、防火墙等,因此我们又称之为守护进程,是Linux中非常重要的知识点。

(2)service管理指令

service 服务名[start | stop | restart | reload | status]

在centos7.0后,很多服务不再使用service,而是使用systemctl

service指令管理的服务在/etc/init.d查看

(3)chkconfig指令

通过chkconfig可以给服务的各个运行级别设置自启动/关闭。

基本语法:

chkconfig --list [| grep xxx]

chkconfig 服务名 --list

chkconfig --level 5 服务名 on/off

(4)systemctl指令

基本语法:

systemctl [start | stop | restart | reload | status] 服务名

systemctl指令管理的服务在/us/lib/systemd/system查看

systemctl设置服务的自启动状态

systemctl list-unit-files [|grep 服务名](查看服务开机启动状态,grep可以进行过滤)

systemctl enable 服务名(设置服务开机启动)

systemctl disable 服务名(关闭服务开机启动)

systemctl is-enabled 服务名(查询某个服务示范是自启动的)

应用案例:

查看当前防火墙的状况,关闭防火墙和重启防火墙。

systemctl status firewalld;

systemctl stop firewalld;

systemctl start firewalld;

(5)firewall指令

打开端口:firewall-cmd --permanent --add-port=端口号/协议

关闭端口:firewall-cmd --permanent --remove-port=端口号/协议

重新载入,才能生效:firewall-cmd --reload

查询端口是否开放:firewall-cmd --query-port=端口号/协议


Linux常用命令的评论 (共 条)

分享到微博请遵守国家法律