第一章 Linux基本命令

目录

1.编辑命令

2.用户管理

3.文件目录指令

pwd指令

ls指令

cd指令

mkdir指令

rmdir指令

touch指令

cp指令

rm指令

mv指令

cat指令

more指令

less指令

head指令

tail指令

echo指令

ln指令

history指令

4.日期指令

5.查找指令

find指令

locate指令

which指令

grep指令

6.管道

7.重定向

输入重定向 (<)

输出重定向(>)

8.压缩和解压指令

gzip和gunzip指令

zip和unzip指令

tar指令

9.Linux组

所有者和组

权限

修改权限chmod

修改文件所有者

10.定时任务调度

任务调度分类

重启任务调度

at定时任务

 at指定时间的方式

11.网络配置

自动获取ip地址;(ip地址有可能变更,每次虚拟机重启后需重新配置获取ip)

指定ip地址;

12.进程管理

查看当前系统中那些进程正在执行

终止进程

查看进程树

指定运行级别

chkconfig指令

systemctl指令

防火墙

firewall指令

13.动态监控进程

14.rpm和yun

rpm

yum


1.编辑命令

vi、vim编辑命令,vim是vi的增强版,它们有三种模式:一般模式、编辑模式、命令模式。

一般模式:输入的内容看不见。

编辑模式:可以自由输入内容,可见。

命令模式:在文件末尾位置,可见。

进入一般模式(打开文本):vim、vi ;

一般模式-->编辑模式:i(当前字符前插入)、o(当前下一行插入新的一行)、a(当前字符后插                                       入)等按键;

编辑模式-->命令模式:esc ;

一般模式-->命令模式:/    

:w     保存;

:wq   保存并退出;

:q     不保存退出;

:q!    强制退出;

拷贝当前行(一般模式):yy  ,粘贴输入p ;

拷贝当前行向下的i行:iyy

删除当前行:dd

删除当前行向下的i行:idd

在文件查找某个单词(命令行模式):/ 单词;输入n 查找下一个;

设置文件的行号(命令行模式): 输入“:” 后  set nu ;

取消文件的行号:set nonu;

快捷键到该文档最首行(gg)、最末行(G);

2.用户管理

切换用户:su - 用户名。 (权限高的用户切换到低权限用户不需要输入密码,反之需要。)

返回原来用户时:exit 或 logout ;

添加用户:useradd 用户名;

给用户指定密码:passwd 用户名;

显示当前用户所在目录:pwd

删除用户(保留家目录):userdel 用户名;

删除用户(删除包括家目录):userdel -r 用户名

查询用户信息:id 用户名

查看当前登录用户:who am  i

用户组:系统对有权限的用户同一管理

新增组:groupadd   组名

删除组:groupdel    组名

新增用户直接分组:useradd -g  用户组 用户名

修改用户组:usermod -g 用户组 用户名

3.文件目录指令

pwd指令

显示当前目录的绝对路径。

ls指令

显示指定工作目录下的内容: ls 【选项】【目录或文件】

常见选项:

-a    查看所有文件和目录包括隐藏文件。

-l     将文件形态、权限、拥有者、文件大小等资料详细列出。

-t    将文件按照创建时间先后次序列出。

cd指令

切换目录: cd 【目标目录】

cd~    返回用户家目录

cd..    返回当前目录的上一级目录

mkdir指令

创建目录:mkdir 【目录名称】

mkdir -p   lll/sss     在lll目录下创建子目录sss,如没有lll目录,则先创建lll目录。

mkdir -p  lll / sss   创建lll目录和sss目录,在同一目录下。

rmdir指令

删除空目录:rmdir 【目录名称】

mkdir -p lll / sss  删除子目录sss,若删除sss后lll为空目录,就删除lll目录。

rm -rf  文件  :删除目录,不管是否 有其他子目录;

touch指令

创建文件:touch 【文件名】

cp指令

复制文件或目录:cp 【选项】源文件 目标文件

cp  -r   递归复制整个文件夹;

cp -f    覆盖已经存在的目标文件不给出提示;

cp -i   和-f相反,覆盖文件时给出提示,y确定;

cp -p   除复制文件的内容外,还把修改时间和访问权限也复制到新文件中;

rm指令

删除文件或目录:rm 【选项】 要删除的文件或目录

常用选项:

rm -r  递归删除文件夹;

rm -f  强制删除不提示;

mv指令

用于移动文件与目录或重命名

俩个文件同一目录会重命名:mv 旧文件名  新文件名

俩文件不同目录会移动:mv 要移动的文件 移动到的新位置

cat指令

查看文件内容:cat 【选项】 文件

常用选项:

cat  -n  显示行号;

cat只能浏览,不能修改,为浏览方便,一般会带上 管道命令 | (指前面执行的结果交给后面的指令处理)。

more指令

查看文件内容:more 文件名

操作及功能:

空格      翻页;

回车      向下一行;

ctr+f      向下滚动一屏;

ctr+b     返回上一屏;

=           输出当前行号;

:f         输出文件名和当前行;

less指令

在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。(空格  翻页)

head指令

显示文件开头部分内容,默认只显示前10行:  head  文件

head -n 5 文件       查看文件前5行;

tail指令

查看文件尾部的内容,默认显示后10行; tail 文件

tail -n 5 文件         查看文件后5行;

tail -f 文件             实时追踪该文档的所有更新(常用于查阅正在改变的日志文件);  

例:tail -f filename     会把filename文件里的最尾部内容显示在屏幕上,并不断刷新,只要filename更新就可以看到最新的文件内容。     

echo指令

输出内容到控制台:  echo 【选项】 输出内容;

ln指令

给源文件创建一个链接: ln -s 【源文件或目录】【链接名】

history指令

查看所有历史命令:history

查看最近5条命令:history 5

执行历史编号为5的命令:!5

4.日期指令

date                      显示当前日期;

date +%Y              显示今年;

date +%m              显示当前月份;

date + %d              显示当前天数;

date “+%Y-%m-%d %H:%M:%S”        显示年月日  时分秒;

Y(年)、m(月)、d(日)、H(小时)、M(分钟)、S(秒);

date -s 日期格式(2020-12-28 22:09:56)     设置日期时间;

5.查找指令

find指令

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

find 【搜索范围】【选项】

常用选项:

name  按照指定的文件名查找文件;

user    查找属于指定用户名所有文件;

size    按照指定的文件大小查找,+n大于,-n小于,n等于;

locate指令

快速查找指定文件的路径   locate  文件

由于该指令是基于数据库查询,第一次使用必须用updatedb指令创建数据库;

which指令

查看指令在那个目录下:which 指令

grep指令

过滤查找:grep 【选项】 查找内容  源文件

-n       显示匹配行和行号

-i        忽略字母大小写

6.管道

语法:命令1 | 命令2

功能:将前一个指令的输出内容作为后一个指令的输入内容

1例子:查看test文件并进行排序。

cat test.txt | sort

2例子:查看test文件并排序、去重。

cat test.txt | sort | uniq

3.例子:查看test文件并排序、去重、过滤(筛选)。

cat test.txt | sort | uniq |grep 'eeeeeee'

7.重定向

输入重定向 (<)

标准输入重定向:默认从键盘输入,也可以其他文件或命令中输入。

符号作用
命令 <  文件将文件作为命令的标准输入
命令 <<  分界符从标准输入中读入,直到遇见分界符才停止
命令 <文件1>文件2将文件1作为命令的标准输入并将标准输出到文件2

例子1:将列表ls 文件或目录写入到test.txt文件中

ls < test.txt

以下例子省略;

输出重定向(>)

默认输出到屏幕。

符号作用
命令 > 文件将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件       将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2> &1 或                                       命令 &>> 文件将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

例子1:将控制台语句输出到test文件中

echo haha >> test.txt

 例子2:查看test文件筛选“lll”,输出追加到nihao文件中。

cat test.txt | grep "lll" >> nihao.txt

8.压缩和解压指令

gzip和gunzip指令

压缩文件:gzip 文件,只能将文件压缩为*.gz格式。

解压文件:gunzip 需要解压的文件.gz

zip和unzip指令

项目打包发布时常用命令

压缩文件:zip【选项】xxx.zip

常用选项-r:递归压缩目录

解压文件:unzip 【选项】 xxx.zip

tar指令

即可打包又可解压,打包后文件后缀是 .tar.gz

打包目录:tar 【选项】 xxx.tar.gz

常用选项    功能
-c产生.tar打包文件
-z打包同时压缩
-x

解包.tar文件        

-v显示详细信息
-f指定压缩后的文件名

例子:

压缩多文件: tar -zcvf  ls.tar.gz   /home/sss/xuexi.txt   /home/ddd/tiyu.txt

压缩ccc文件夹: tar -zcvf myls.tar.gz ccc

将文件解压到当前目录:tar -zxvf myls.tar.gz

将myls.tar.gz解压到tom目录下: tar -zxvf myls.tar.gz  -C tom

9.Linux组

一个文件有个所有者,所有者又归于一个组。

所有者和组

所有者:文件谁创建的,谁就是所有者。

查看文件所有者:ls -ahl

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

 组的创建:groupadd 组名

新增用户直接分组:useradd -g 用户组 用户名

修改文件所在组: chgrp 组名 文件名

其他组:除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。(改变用户所在组需要root的管理权限)

1.usermod -g 新组名 用户名

2.usermod -d 目录名 用户名(改变该用户登录的初始目录,注意这里的用户需要有进入新目录的权限。)

权限

ls -l显示内容如下:

 d   rwx   r-x    r-x .  3  root  root  35  Dec26  21:40  ceshi

解释:

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

d是目录,相当于windows的文件夹
-是普通文件
l是链接,相当于windows的快捷方式
c是字符设备文件,如鼠标,键盘
b是块设备,比如硬盘

2.第1-3位r w x该文件的所有者拥有的权限。  ----User(r读,w写,x执行【文件:可执行,目录:可进入】

3.第4-6位r - x该文件所属组的用户拥有的权限。 ---Group(r读,w写,x执行【文件:可执行,目录:可进入】

4.第7-9位r - x该文件其他用户拥有的权限。---Other(r读,w写,x执行【文件:可执行,目录:可进入】

5.数字3:文件数和子目录数之和。

6.第一个root:所有者。

7.第二个root:所有者所在的组。

8.数字35:代表文件大小(字节)。

9. Dec26  21:40   :文件最后修改时间。

10.ceshi  : 文件名称。

修改权限chmod

方式一:+、-、=   变更权限。

u:所有者       g:所有组       o:其他用户       a:所有人

例子1:给文件的所有者读写执行权限,给所在组的用户读执行权限,给其他用户读权限:

chmod u=rwx,g=rx,o=r  文件或文件名

例子2:给其他人增加写权限

chmod o+w 文件名 / 目录名 / 所有者 / 所有组

例子3:该文件不让所有人执行

chmod a - x 文件名 / 目录名 / 所有者 / 所有组

方式二:数字变更权限

r=4 ,w=2 ,x=1

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

修改文件所有者

改变所有者:chown 改成的所有者  文件/目录

改变所有者和所在组: chown 新所有者:新所有组  文件/目录

10.定时任务调度

任务调度:系统在某个时间执行特定的命令或程序。

任务调度分类

(1)系统工作:某些重要工作周而复始的进行,如病毒查杀。

(2)个别用户工作:个别用户执行某些程序,如打开qq

定时任务的设置:crontab 【选项】

选项功能        
-e编辑crontab定时任务
-l查询当前任务调度
-r删除当前用户所有的定时任务

重启任务调度

service crond restart

crontab -e 回车然后输入 */1**** ls

*号位置含义
第一个一小时当中的第几分钟(分钟)
第二个一天当中的第几个小时(小时)
第三个一月当中的第几天(天)
第四个一年中第几个月(月)
第五个一周当中的星期几(范围0-7,0和7都代表星期日)

特殊符号说明:

特殊符号含义
*表示任何时间,比如第一个*,表示一小时每分钟执行一次。
表示不连续时间,比如“0 8 ,10 * ** * 命令”,表示每天8点0分,10点0分执行一次命令。
-表示连续的时间范围,比如“0 2 * * 1-6 命令”,表示周一到周六凌晨2点执行命令。
*/n表示每隔多久执行一次,比如“*/10 * * * * 命令”,表示每10分钟执行一次命令。

案例:

时间含义
45 22 * * *在22时45分执行命令
0 17 * * 1 每周1 的17时0分执行命令
0 5 1,15 * *每月1日和15日 5时0分执行命令
40 4 * * 1-5每周星期一至星期五 4时40分执行命令
*/10 4 * * *每天的凌晨4点,每隔10分钟执行一次命令
0 0 1,15 * 1每月1日和15日,每周一的0时0分都会执行命令。(注意:星期几和几号最好不要同时出现。)

at定时任务

       at命令时一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。默认情况下,atb守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。at命令只执行一次。

     在使用at命令时,一定要保证atd进程的启动,可以使用相关指令来查看

     检测当前进程有那些:ps -ef

     检测atd进程是否在运行:ps -ef | grep atb

    at定时任务的命令格式:at [选项] [时间] ,ctr+d结束at命令输入

选项功能
-m当指定的任务被完成后,将给用户发送邮件,即使没有标准输出
-latq(显示系统中待执行的任务列表)的别名
-datrm(删除待执行任务队列中的任务)的别名
-v显示任务将被执行的时间
-V显示版本信息
-c打印任务的内容到标准输出
-q 队列使用指定的队列
-f 文件从指定文件读入任务而不是从标准输入读入
-t时间参数以时间参数的形式提交要运行的任务

 at指定时间的方式

1.   hh:mm(小时:分钟)24小时制指定时间,如果该时间已过,会放到第二天执行。

2.  使用midnight(深夜)、noon(中午)、teatime(下午,一般是下午4点)等模糊词来指定时间。

3.采用12小时计时制,即在时间后面加上am(上午)或pm(下午)。

4.指定命令执行的具体日期,指定格式为month day (月 日)或 mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:09:00 2021-07-01

5.使用相对计时法。指定格式为:now + count  time-units , now是当前时间,time-units是时间单位,这里能够是 minutes(分钟)、hous(小时)、days(天)、weeks(周)。count是时间的数量,几天,几小时。例如:now + 5 minutes 。

6.直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

例子:一天后凌晨12点执行  /bin/ls/home

  at 12am + 1 day ,然后输入, 接着ctr+d

11.网络配置

自动获取ip地址;(ip地址有可能变更,每次虚拟机重启后需重新配置获取ip)

ip a 查看是否有分配ip地址

nmcli c up ens33 自动分配ip      如图我们可以看到分配的ip为192.168.194.131

 

指定ip地址;

    进入配置文件:vi /etc/sysconfig/network-scripts/ifcfg-ens33

    修改配置:

TYPE=Ethernet  //网络类型(通常为Ethernet)
BOOTPROTO=static  //ip的配置方法【none;static;bootp;dhcp】(引导时不使用协议;静态分配;BOOTP协议;DHCP协议)
NAME=ens33  //名称
DEVICE=ens33  //接口名(设备,网卡)和上列NAME名称一样
ONBOOT=yes  //系统启动时网络接口是否有效(yes;no)
IPADDR=192.168.194.131  //ip地址
NETMASK=255.255.255.0  //子网掩码
GATEWAY=192.168.194.254  //网关
DNS1=8.8.8.8  //第一个DNS服务器指向( 8.8.8.8为Google提供的免费DNS服务器的IP地址)
DNS2=8.8.4.4  //第二个DNS服务器指向( 8.8.4.4为Google提供的免费DNS服务器的IP地址)

虚拟机改完IP地址后,vmnet8也要修改在同一网段192.168.194.X,只有在同一网段中才能ping通

虚拟机工具栏下>编辑>虚拟网络编辑器>修改子网IP>应用>确定

上图配置中ip、子网掩码、网关需按照规则填写。

 

最后一步:重要,重启network服务(service network restart) 

至此配置固定ip完毕,重启服务器之后也不会出现ip变动问题。

12.进程管理

程序:静态的,是躺在硬盘上。

进程:动态的,程序运行在内存中就是是进程。

线程:进程的不同执行路径。

每个进程都可能以俩种方式存在的。前台和后台,前台就是用户目前的屏幕上可以进程操作的。后台进程则是实际在操作,但由于屏幕上无法查看的进程,通常使用后台方式执行。一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。

查看当前系统中那些进程正在执行

ps 【选项】【用户】

选项选项说明
a显示当前终端机下的所有程序,包括其他用户的程序
u显示用户相关的进程或者与用户相关的属性
x显示所有进程,无论是否运行在终端上
e列出程序所使用的环境变量
f用ASCII字符显示树状结构,表达程序间的相互关系

         ps常用组合命令

aux列出目前所有的正在内存当中的程序|BSD格式显示

aux显示详解:

USER:用户名

PID:进程编号
%CPU:进程占用的CPU百分比

%MEM:进程占用内存百分比

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

RSS:进程占用的固定内存量(KB)

TTY:该进程运行在那个终端上面,若与终端无关,则显示?

STAT:进程的状态

START:进程被触发启动时间

TIME:进程实际占用CPU的时间

COMMAND: 进程所运行的命令

STAT 进程的状态解释

D:无法中断的休眠状态(通常 IO 的进程)
R:正在执行中
S:处于休眠状态
T:暂停执行,停止或被追踪
Z:不存在但暂时无法消除(僵尸进程)
X:死掉的进程
W:没有足够的记忆体分页可分配
<:优先级高的进程
N:低优先序的进程
L:有记忆体分页分配并所在记忆体内(实时系统或按 A I/O)
s:父进程(在它之下存在子进程)
+:位于后台的进程组

终止进程

kill 【选项】 进程号

killall  进程名称

常用选项:-9   强迫进程立即停止

查看进程树

pstree 【选项】

常用选项

-p:显示进程的PID

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

指定运行级别

指定运行级别:init数字0-6,常用运行级别是3和5

级别说明:

0:关机
1:单用户(找回丢失密码用)
2:多用户状态无网络
3:多用户状态有网络
4:系统未使用保留给用户
5:图像界面
6:虚拟机重启

在/etc/initab进行了简化:

multi-user.target:analogous to runlevel 3

graphical.target:analogous to runlevel 5

查看当前的运行级别是什么:systemctl get-default

修改运行级别:systemctl set-default multi-user.target

chkconfig指令

查看服务:chkconfig --list[| grep xxx]

给服务在指定的运行级别下设置开关:chkconfig --level 5 服务名 on/off

注意:使用了chkconfig指令服务自启或关闭,需要reboot重启生效

systemctl指令

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

查看管理的服务:ls -l /user/lib/systemd/system

systemctl设置服务的自启动状态

 1.systemctl list-unit-files [ | grep服务名](查看服务开机启动状态)

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

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

 4.systemctl is-enabled 服务名(查询某个服务是否是自启动的)

例子:查看当前防火墙的状态,关闭防火墙和启动防火墙

1.systemctl status firewalld.service

2.systemctl stop firewalld.service

3.systemctl start firewalld.service

防火墙

 防火墙打开情况下,xshell6访问Linux需要打开22端口号,不然无法访问到。防火墙关闭后,xshell6可直接访问,不需要打开端口号。

打开或者关闭指定端口

在真正的生产环境,往往需要将防火墙打开,但此时外部请求数据包却不能跟服务器监听端口通讯。这时需要打开指定的端口,比如80、22、3306等。

firewall指令

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

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

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

查看所有开发端口:firewall-cmd --zone=public --list-port

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

13.动态监控进程

top与ps命令相似,都是用来显示正在执行的进程。top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程。

指令:top 【选项】

选项功能
-d秒速指定top命令每隔几秒更新,默认3秒
-i使top不显示任务闲置或者僵死进程
-P通过指定监控进程ID来仅仅监控某个进程的状态

 交互操作:

操作功能
P以CPU使用率排序,从大到小,(默认)
M以内存的使用率排序,从大到小
N以PID排序,从大到小
Q或q退出top

案例1:监控特定用户,比如我们监控tom用户

top命令下,输入“u”回车,在输入用户名,输错可按向下键清空。

案例2:终止指定的进程

top命令下,输入“K”回车,再输入要结束的进程ID号

14.rpm和yun

rpm

rpm用于下载包的打包及安装工具,它生成具有.rpm扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe.

查询所有安装rpm软件包:rpm -qa

查询软件包是否安装:rpm -q 软件包名

查询软件包信息:rpm -qi 软件包

查询软件包中的文件:rpm -ql 软件包名

查询文件所属的软件包:rpm -qf 文件全路径名

卸载软件包:rpm -e 软件包

安装软件包:rpm -ivh 安装的全路径

yum

yum是个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

查询yum服务器是否有需要安装的软件:yum list | grep xx软件列表

安装指定的yum包:yum install xx下载安装。

最近听到一句话挺好,与君共勉;

路虽远行则将至,事虽难做则必成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值