目录

  • 一、Linux基础命令及简介

     终端快捷键

     基础命令

     文件管理

     用户管理

     权限管理

     系统服务

     进程管理

     磁盘管理

 

 

 

一、Linux基础命令及简介

终端快捷键

终端快捷键

Ctrl + a/Home 切换到命令行开始

Ctrl + e/End 切换到命令行末尾

Ctrl + l 清除屏幕内容,效果等同于 clear

Ctrl + u 清除剪切光标之前的内容

Ctrl + k 剪切清除光标之后的内容

Ctrl + y 粘贴刚才所删除的字符

Ctrl + r 在历史命令中查找 (这个非常好用,输入关键字就调出以前的命令了)

Ctrl + c 终止命令

ctrl + o 重复执行命令

Ctrl + d 退出 shell,logout

Ctrl + z 转入后台运行,但在当前用户退出后就会终止

Ctrl + t 颠倒光标所在处及其之前的字符位置,并将光标移动到下一个字符

Alt + t 交换当前与以前单词的位置

Alt + d 剪切光标之后的词

Ctrl+w 剪切光标所在处之前的一个词(以空格、标点等为分隔符)

Ctrl+(x u) 按住 Ctrl 的同时再先后按 x 和 u,撤销刚才的操作

Ctrl+s 锁住终端

Ctrl+q 解锁终端

!! 重复执行最后一条命令

history 显示你所有执行过的编号+历史命令。这个可以配合!编辑来执行某某命令

!$ 显示系统最近的一条参数最后这个比较有用,比如我先用 cat /etc/sysconfig/network-scripts/ifconfig-eth0,然后我想用 vim 编辑。

一般的做法是先用↑显示最后一条命令,然后用 Home 移动到命令最前,删除 cat,然后再输入 vim 命令。其实完全可以用 vim !$来代替。

 

基础命令

Linux命令简介

用于实现每一类功能的指令或程序

命令的执行依赖于解释器程序(例如:/bin/bash)

内部命令:属于Shell解释器的一部分

外部命令:独立于Shell解释器之外的程序

内部命令在系统启动时调入在内存,常驻内存,所以执行效率高

外部命令是系统软件的功能,用户需要时从硬盘中调入指定的文件,运行完放在内存当中

Shell

Linux系统中运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。

在用户和内核之间充当“翻译官”去通知操作系统需要进行什么样的操作(相当于解释层)

内核相当于操作系统去指挥硬件,硬件才能工作,否则无法交互

用户登录Linux系统时,自动加载一个Shell程序

Bash是Linux系统中默认使用的Shell程序,文件位于/bin/bash

Linux命令的通用格式与操作技巧

命令字 [选项] [参数]

 选项:用于调节命令的具体功能

Linux严格区分大小写

 

”-”引导短格式选项,例如“Is -a”

“–”引导长格式选项,例如“Is –help”

参数:命令的对象,如文件、目录名等

Ctrl + U:快速删除当前光标处之前的所有字符

Ctrl + K:快速删除从当前光标处到行尾的所有字符

Ctrl + L:快速清空当前屏幕中的显示内容

Ctrl + C:取消当前命令行的编辑

获取命令的帮助

命令  –help    help  内置文件命令       

man   命令     man  命令或配置文件

 

ls

-l∶以长格式(Long)显示文件和目录的列表

-a:显示所有(隐藏)目录和文件的信息

-d :显示目录(Directory )本身的属性,而不是显示目录中的内容

-h:以更人性化(Human)的方式显示出目录或文件的大小,此选项需要结合-I选项一起使用(显示文件大小的单位)

-R:以递归( Recursive )的方式显示指定目录及其子目录中的所有内容

-i:  i节点  inode

ls  /etc/re*.conf   查找re*.conf的目录或文件

pwd

print working directory 打印当前工作目录

cd

change directory 切换目录

mkdir ( make directory )

mkdir aaa            创建目录aaa。   mkdir  a  b  c   同时创建a,b,c三个目录

mkdir -p  a/b/c     创建目录/a,在/a目录下创建子目录b,在/a/b目录下创建子目录c

touch 

创建文件

rm

rm -rf  目录或文件      删除目录或文件

-r 针对文件夹,递归删除  -f 强制删除,不提示

cp ( copy )

cp -rp 复制文件或目录

-r:复制目录时必须使用此选项,表示递归复制所有文件及子目录

-p:复制时保持( Preserve)源文件的权限、属主及时间标记等属性不变

mv

mv  源文件   目标路径+新名字   剪切+改名

tar

打包,并没有压缩。默认情况下,linux一次只能压缩一个文件,针对多文件或文件夹无法进行直接压缩

所以需要提前对多个文件或文件夹进行打包,这样才可以进行压缩操作。

tar:将多个文件打包成一个文件

语法:tar   [选项]     打包后的名称.tar      多个文件或文件夹

-c  create

-v 显示打包过程

-f,指定打包的文件名,必须加的

-t,查看打包的文件内容

-u 更新,往tar包中更新或追加内容

 

tar -cvf  打包后的名称.tar   多个文件或文件夹   #打包多个文件或文件夹

tar -xvf  abc.tar                                                 #释放tar包中的文件

tar -tf    打包后的文件名称                               #查看tar包的文件

tar -uf  abc.tar  d.txt                                         #往abc.tar中追加d.txt

 

linux下常用的压缩工具:gzip、zip、bzip2、xz

-z 压缩为.gz格式         -j   压缩为.bz2格式         -J  压缩为.xz格式

语法:tar   [选项]     压缩后的压缩包名称      要压缩的文件或文件夹

tar   -zcvf  abc.tar.gz    a  a.txt  b.txt            

tar   -jcvf  abc.tar.bz2    a  a.txt  b.txt 

tar   -Jcvf  abc.tar.xz    a  a.txt  b.txt 

压缩速度: gzip>bzip2>xz

压缩率:    xz>bzip2>gzip

-C        /root/      指定解压目录

zip

zip 压缩与解压缩

zip格式是linux与windows中通用格式

zip [选项]     压缩后的文件名称.zip       文件或文件夹

-r :递归压缩,主要针对文件夹

zip  abc.zip a.txt b.txt c.txt

zip -r  wechat.zip     wechat 

unzip  解压

unzip abc.zip -d /root/    #解压到指定路径

uname

uname -a  获取操作系统相关信息

type

type 命令   用于判断该命令是内部命令还是外部命令

whereis 

whereis 命令          #查询命令二进制文件的路径

file 

查看对象的类型

history

显示系统以前输入的1000条命令

netstat   

常见参数

-a (all) 显示所有选项,默认不显示 LISTEN 相关

-t (tcp) 仅显示 tcp 相关选项

-u (udp) 仅显示 udp 相关选项

-n 拒绝显示别名,能显示数字的全部转化成数字

-l 仅列出有在 Listen (监听) 的服务状态 

-p 显示建立相关链接的程序名【root 用户权限下】

-r 显示路由信息,路由表

-e 显示扩展信息,例如 uid 等

-s 按各个协议进行统计

-c 每隔一个固定时间,执行该 netstat 命令

LISTEN 和 LISTENING 的状态只有用 -a 或者 -l 才能看到

 -antp   -lntp

ln

软连接 ln -s  /源文件   /快捷方式名(没有名字就和源文件名一样)  
硬连接 ln     /源文件   /快捷方式名(没有名字就和源文件名一样)  

关机和重启命令

Shutdown
Reboot
Halt
poweroff

hostnamectl 

vim /etc/hostname 更改主机名

hostnamectl set-hostname xxx  更改主机名 

文件管理

cat

查看文件内容

more

分屏显示文件内容

less

分屏显示文件内容

head

查看文本前N行

head -5 文件名   #查看文本前5行

tail

查看文本后N行,默认最后10行

tail -n  文件名    #查看文本后N行

tail -f   文件名    #查看文件动态变化后的内容,一般用于查看日志

wc

用于统计文件内容信息(包含行数,单词数,字节数)

wc  -lwc 文件名

du

du -sh 汇总、可读显示文件及文件夹大小(磁盘占用空间)

find

find /root   -name “ab*”          #搜索文件root下包含“ab”的文件或文件夹  -type f  普通文件  d 文件夹

find /root   -iname “ab*”                      #不区分大小写

scp

scp   -r  源文件    目标文件ip:/路径       #从远端机器上传或下载文件及目录  

grep

在文件中找到包含指定信息的那些行,高亮显示处理

grep -n  network  boot.log        #搜索在boot.log中包含network的行并显示行号

grep network  /var/log/*           #搜索log目录下所有文件包含network 的行

ll /etc/ | grep “yum”                  #搜索/etc目录下包含yum的文件及文件夹

管道符“|”

0 标准输入stin 1 标准输出stdout   2 标准错误  常和grep结合来进行筛选

ps -ef | grep “xxx”  rpm -qa | grep “mariadb”

实现统计功能  ls / | wc -l 

xargs

输出重定向

 > 覆盖    >>追加输出

echo “hello” > readme.txt      #把hello 输出到readme.txt

VI/VIM编辑器

命令行常用快捷键:
G                  移动到文件最后一行
gg                   移动到文件第一行
N+回车                N 为数字,向下移到到 N 行
home                行首
end                 行尾
/关键字                向下寻找关键字   n 下一个结果
?关键字                  向上寻找关键字
x                    删除光标处单个字符
dd                  删除整行                                d^删除光标至行首  d$删除光标至行尾  C从光标删除到行尾,进入插入模式
ndd                   n 为数字,删除光标所在向下 n 行。
yy                   复制光标所在行
nyy                    n 为数字,复制光标所在向下 n 行
p,P                 小 p 将复制的数据在光标下一行粘贴,大 P 将复制的数据在光标上一行粘贴
u                  撤消前一个操作
 
末行模式操作:
ZZ                                                              保存修改并退出                                  
:wq!                强制保存退出 
:r   /etc/fstab                                  读入其他文件内容
:s/old/new                 替换当前行第一个
:s/old/new/g              替换当前行所有
:1,10 s/root/admin/g              替换1-10所有的root
:% s/root/admin/g                     替换文件内所有的root
set nu|nonu                                         显示/不显示行号

用户管理

组:    /etc/group                                                   #名称、密码、组ID、组内用户(附件组)

用户:/etc/passwd                       #名称、密码、用户ID、组ID、注释信息、家目录、shell类型

 id

id 用户名   #查看用户相关信息。     

passwd 

为某个用户设置或修改密码              vim /etc/passwd,删掉x,再passwd:可修改密码

groupadd 

groupadd -g  1001 hr                             #指定ID编号地添加组

groupmod

-n更改名称      -g 更改gid

groupmod -n  lshr  hr                              #更改组名称为:lshr

groupdel      

groupdel    用户组              #删除用户组

useradd     

-g: 指定所属主组        -s: 指定用户shell类型          –                                         

useradd -g  police  -s /sbin/nologin  lcw     #创建用户lcw加入组police并不登陆操作系统  

usermod 

-g   修改用户所属主组编号   

-l    修改用户名      

-s   修改shell类型

-L   锁定用户     -U   解锁用户

usermod -l ldh lcw                          #修改用户lcw为ldh

usermod -g 0 ldh                            #修改用户ldh 主组为 0(root组)

usermod -s /bin/login  ldh               #修改用户ldh 登陆shell 为bin/login

userdel  

userdel -r        lcw              #删除用户lcw及家目录和本地邮件存储目录

su 

su –  root  切换到root用户

W

可显示开机多久,当前登录的所有用户,平均负载(较详细)

Who

显示当前登录的所有用户

Last/lastlog

用户登录日志信息

权限管理

文件类型

-普通文件、d目录、l符号链接文件、b块设备文件(如硬盘,光盘)、c字符设备文件(串口设备)、s套接字文件、p管道文件

chmod

身份:u、g、o   操作:+、-、=          权限: r、w、x   

chmod u=rwx             文件或目录                       #赋予文件拥有者读写执行权限

chmod -R   640          文件或目录                            #递归修改

chown                                                            

chown   -R   用户              文件或目录                            #修改文件或目录的拥有者(递归)

chown    文件拥有者:文件所属组        文件名称           #同时修改拥有者和所属组(:和.效果一样)

chgrp

chgrp     -R  用户组           文件或目录                            #修改文件或目录的所属组(递归)

设置位s(setUid)

作用:为了让一般用户临时具有该文件所属主/组的执行权限,主要针对二进制文件或命令

 passwd命令会写密码进 shadow文件     /etc/shadow权限为— — — (000)普通账号改密码是需要root权限

 

 chmod u-s /usr/bin/passwd 或   chmod 0755  /usr/bin/passwd        #去掉s位,其他用户执行passwd时导致密码无法写进 /etc/shadow文件

chmod u+s /usr/bin/passwd 或   chmod 4755  /usr/bin/passwd       #添加s位,让其他用户也临时具有root权限

 

沾滞位t(sticky bit)

作用:只允许文件的创建者和root删除文件。   针对目录

chmod -R  o+t 目录名  或  chmod -R  1777  目录名        #添加沾滞位

chmod -R  o-t  目录名  或  chmod -R  0777          #移除沾滞位

ACL 访问控制

ACL可实现对单一用户设定访问文件的权限,可针对某个用户,也可针对某个组(权限控制更精准)

getfacl   

getfacl   目录或文件                   #查查目录上的acl权限

setfacl   

setfacl   目录或文件

setfacl -R -m u:lw:r–    abc         u:用户/g:组      #针对abc目录给用户lw设置一个r权限

-m:修改   -x:取消    -b:删除所有的ACL策略

setfacl -x u:lw  abc                                                          #移除目录abc上的用户lw权限

setfacl  -b  abc                    #移除目录abc上所有acl权限

umask

umask=0022                       #默认值  可在家目录.bashrc中设置

root创建的目录默认权限为755,文件默认权限为644,

实际目录权限=777-umask  实际文件权限=666-umask

系统服务

systemctl

systemctl   list-units    –type service  –all           #列出所有服务(包含没启动的) 结合管道符使用筛选目标

systemctl   list-units    –type service  –all  | grep sshd

systemctl   list-unit-files  | grep enable             #列出所有开机自启动的服务

 

systemctl  status  firewalld            #显示服务状态

systemctl  start    firewalld          #启动服务

systemctl  stop    firewalld        #停止服务

systemctl  restart   firewalld        #重启服务

systemctl  enable    firewalld                        #允许开机启动

systemctl  disable     firewalld                       #禁止开机启动

selinux 关闭: vim  /etc/selinux/config      设置 selinux=disabled

reload

systemctl  reload   服务名称

 热重载技术:如nginx,更改了配置文件,但是不能重启服务。可以使用热重载技术,让配置文件生效

mount

mount /dev/sr0  /mnt               #挂载

umount

umount  /mnt                #解挂

ntp

date                   #查看系统日期时间

ntpdate  cn.ntp.org.cn                    #手动同步时间

开启ntpd自启动服务时间就自动同步   

/etc/ntp.conf                                                      #ntp服务配置文件

selinux

vim /etc/sysconfig/selinux  selinux=disabled     #关闭selinux

 firewalld

firewalld管理工具–firewall-cmd

firewall-cmd   –get-default-zone                  #查看防火墙默认区域

firewall-cmd –set-default-zone=trusted                           #设置默认区域为trusted

firewall-cmd   –get-zones                                                 #查看所有支持的区域

firewall-cmd   –list-all                   #查看当前区域的规则设置

firewall-cmd   –list-all-zones                   #查看所有区域的规则设置

添加或删除允许通过的服务或端口

服务名称及端口号存储的目录        /usr/lib/firewalld/services                                     

 

firewall-cmd     –zone=public    –add-service=http      #通过服务名称添加规则

firewall-cmd     –zone=public    –remove-service=http                #移除 

     

ss -naltp | grep sshd                                                                   #查询某个服务所占用的端口

firewall-cmd     –zone=public    –add-port=80/tcp        #通过服务的端口号添加规则     (–remove-port=80/tcp)   移除

运行模式(默认)

防火墙策略立即生效,不写入配置文件

永久模式permanent

配置的防火墙策略写入配置文件,但是需要reload重新加载才能生效

firewall-cmd     –zone=public    –add-service=http  –pernanent

systemctl reload   firewalld 

 

crond

配置文件:/etc/crontab    文件保存在: /var/spool/cron/用户

contab  -l:列出用户的计划任务列表    -e:编辑

分  时  日  月  周      需要执行的命令(完整路径)

*:取值范围中的每一个数字   -:连续区间         /:每隔多少时间执行 */10      ,:多个取值 

黑名单配置文件:/etc/cron.deny   用户名直接加入到该文件

日志程序 :tail -f  /var/log/cron     

at(一次性任务计划)

atd服务需开启

at 5pm+1days– >命令–crtl+D退出

atq: 查询  atrm 任务号:删除

软件包

RPM软件包安装–软件名称.rpm            #二进制软件包

YUM包管理工具–yum install -y             #二进制软件包

源码安装–下载源代码–编译–安装

RPM包

rpm -ivh    包全名               #安装软件包

rpm -Uvh  目标包.rpm             #升级软件包

rpm -e      包名 –nodeps           #强制卸载软件包

rpm -qa | grep  firefox               #查询已安装的软件包

rpm -ql     包名                                                      #查询软件包安装位置   

rpm -qf     路径/文件名称                                   #查询某个文件所属的包名称

rpm -qc     httpd                                                    #只查询配置文件

需解决依赖关系

yum包

配置文件  /etc/yum.repos.d/

yum list                        #可用的安装包

yum list installed | grep httpd                                #已安装的包

yum search/provides   xxx/ifconfig        #搜寻相关软件包    

yum -y install      包名               #安装yum包

yum -y remove   包名             #卸载

yum clean all                  #清除缓存

yum makecache                            #下载到本地缓存     

源码包             

软件安装位置                      /usr/local

下载源码包保存位置:            /usr/local/src/

预编译                    ./configure        –prefix=/usr/local/nginx    #指定安装目录

编译                                             make 

安装                                             make install

卸载                                            删除软件安装目录

            

进程管理

top

动态监测系统负载情况               Pp :cpu使用排序    M:内存排序

ps

ps -ef | grep cron                  #筛选cron进程   

kill -9               #强制结束某进程

killall  httpd                                  #根据进程名结束某进程

free -m                                        #查看内存使用情况

df  -h                                           #查看磁盘使用情况    

磁盘管理

分区方式:   MBR < 2 TB         4个主分区          使用fdisk工具分区

 

        GPT  > 2TB          128个主分区      使用gdisk(parted)工具

df- h          # 查看磁盘分区使用及设备挂载情况     #disk  free :意为显示磁盘可用

lsblk:         #查看块设备                #list block 

fdisk -l       #查看设备分区情况                               #fdisk 是系统自带的分区软件

 

新建分区

fdisk  /dev/sdb   

4个主分区(primary)或者3个主分区(primary)+1个扩展分区(extend)(N个逻辑分区( logic)) 逻辑分区号从5开始  

partx -a /dev/sdb       #重新读取分区表

 

格式化分区

mkfs.xfs    /dev/sdb1         #如果该分区已有格式,加-f可强制改格式

blkid      /dev/sdb1             #如能查到设备id号,说明格式化成功    

挂载使用

mount  dev/sdb1  /data          umount    /data       mount -l  查看已挂载的设备

vim  /etc/fstab    #永久挂载

swap空间扩容

方式一:

mkswap  /dev/sdb5                      #格式化分区为 swap 格式

swapon /dev/sdb5                       #加载即完成增加 swap         swapoff /dev/sdb5    #关闭

swapon –s                   #显示目前使用的 Swap 设备
vim  /etc/fstab    #永久挂载

方式二: 

# dd    if=/dev/zero   of=/swap bs=1M count=64        #创建大文件
#mkswap /swap                     #格式化为swap文件系统
#swapon /swap                     # 加载到现在的swap
free -m :                           #查看内存及swap使用情况
vim  /etc/fstab                          #永久挂载
完成
 
取消交换分区或者交换文件
#swapon –s                                                   #显示目前使用的 Swap 设备
#swapoff /swap    rm -rf /swap
#free –m     

逻辑卷管理

硬盘读取数据最小单位为1个扇区512字节。操作读取数据最小单位为1个数据块(block)=8*512字节=4096字节=4KB。lvm寻址最小单位1个PE=1024*4k=4MB

一、准备磁盘分区

fdisk  /dev/sdb

w,保存–partprobe  刷新分区表

二:准备物理卷

pvcreate /dev/sdb1   /dev/sdb2                   #创建物理卷
pvs                                                    #查看
pvdisplay                                   #列出物理卷信息
pvremove  分区号                     #删除物理卷

三、创建卷组

vgcreate       vg01   /dev/sdb1 /dev/sdb2         #sdb1,sdb2加入卷组
vgs                                         #查看卷组
vgremove                               #删除卷组
vgreduce       vg01      /dev/sdb1                           #从卷组里移除物理卷(裁剪)
vgextend       vg01      /dev/sdb1                           #将物理卷加入到卷组中(扩容)

四、创建逻辑卷

lvcreate  -n  lv01  -L 100M         vg01(卷组)   #划分创建逻辑卷lv01, -L为大小 , -n为名字  
lvcreate  -n  lv02   -l 100%free   vg01(卷组)   #剩余空间逻辑卷创建    
lvdisplay                               #列出逻辑卷信息
lvs                                        #查看逻辑卷  
ll    /dev/vg01/lv01                                               #逻辑卷设备文件路径
mkfs.ext4  /dev/vg01/lv01                                   #格式化lv01为ext4格式
lvremove   /dev/vg01/lv01                                #删除逻辑卷
mount    /dev/vg1/lv1    /mnt             #挂载到/mnt下
注:可以直接创建卷组,把物理卷加入到卷组。

五、逻辑卷扩容

lvextend   /dev/vg01/lv01   -L   +1.5G        #扩容逻辑卷

resize2fs /dev/vg01/lv01                 #同步文件系统

六:逻辑卷实现条带化

准备物理卷、创建卷组

创建逻辑卷  lvcreate -n lv01  -L 1G   -i 2 vg01 /dev/sdb[12]

iosta:-d–查看磁盘   -m每秒M   2:每隔两秒显示一次         #安装工具sysstat才能用iostat磁盘跟踪工具

 

 

版权声明:本文为ryan1999原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ryan1999/p/16545041.html