Linux最常用的基础命令 下篇

时间:2021-10-18 14:39:27

Linux最常用的基础命令个人总结

shell脚本

脚本就是:写一堆指令存成一个文本,用于完成一些小任务

a="123" linux中定义一个变量

echo $a

echo $b 显示的是空

echo $master 打印的是根/

-----------------------------------

Ubuntu中安装一个vim

apt-get install -y vim

-----------------------------------

/etc/bashrc 对整个系统中的用户都起作用的用户配置文件

---------------------------------------------

echo $HOME 显示当前用户家目录的路径

所有的环境变量都是大写的

env 查看当前的环境变量

----------------------------------------

export 命令:用来设置系统中的环境变量

export AS="xxxxx"

echo $xxxxx

-----------------------------------

永久生效需要修改配置文件

vim -/.profile

source -/.profile 让修改的配置文件生效一下

------------------

ifconfig 查看网卡的配置信息,或者查看ip地址

---------------------

cat -n test.txt |sort -rn 对一个文件中的内容显示行号的排序

---------------------

| 管道符,将前一条命令的执行结果,交给后面的命令执行,一条命令中管道符可以有多个

-----------------

重定向:> 覆盖原文件内容的写入 >> 添加写入,追加写入

-----------------

1> 标准正确输出 2> 标准错误输出 &> 标准正确和标准错误输出,日志文件中系统启动错误或正确的信息都写在同一个文件中 -locate、find、挂载卸载

-------------------------------------

echo 在屏幕上打印字符串 打印系统中的环境变量

echo $PATH kill 杀死某个进程

alias 命令的别名

unalias 取消命令的别名

jobs 显示任务列表

set 设置shell变量

unset 删除shell变量或函数

type 判断某个命令是外部命令还是内部命令

内部指令与外部指令的区别

logout 退出当前登录的shell

exit 退出当前登录的shell

export 将一个变量设置为环境变量

history 查看执行过的历史命令

-c 清空当前的历史命令

n 打印历史命令中最近使用过的n条命令

------------------------------------------------------------

exec 执行某个命令

umask 设置文件的权限掩码

权限掩码的作用是屏蔽掉新建文件的部分权限, 新建的普通文件默认的权限是666-022=644=rw-r--r-- 新建目录的权限位777-022=755=rwxr-xr-x

help 显示命令的帮助信息

help显示的是shell内部命令的帮助信息,外部命令的帮助文档用man或是info来查看

help cd 显示cd命令的帮助信息

cd --help 其中help是一个命令选项的简单介绍,help是软件编写人员在编写的时候提供了内置的查询参数,

command 调用某个命令并执行

================================================

Linux系统关机相关的命令

Linux系统中常用的工具

man Linux命令的帮助手册

在man 命令 打开的对应的命令的帮助文档中,用/关键字 来查找你需要的关键字,

用Q键来退出帮助文档,空格键用来翻一页,Enter键用来翻一行

info GNU格式的在线帮助文档

cal 显示日历

date 显示系统的日期时间

whatis 从数据库中查询指定的关键字

who 打印当前登录的用户是谁

whoami 打印当前的用户名

login 登录系统账户

users 查看当前登录的系统用户是谁

clear 清屏命令,相当于Ctrl+L命令

man -f

man -k

===============================

用户和用户组的管理

userdel -r 删除的用户名和用户的家目录

useradd -d /

user1 userdel -r user1

------------------------------

useradd 新建系统用户

-c 设置用户的备注信息

-d 设置用户的宿主目录,默认的宿主目录是/home/,也就是用户的家目录

-e 设置账号的过期时间

-g 指定用户的用户组,默认组名与用户名相同

-u 指定用户的id号

userdel 删除某个系统账户

-r 删除用户的同时删除与用户相关的所有文件

-f 强制删除用户,即使是当前已经登录的用户

passwd 设置用户密码

-d 删除用户的密码

root用户或者是超级管理员用户可以修改系统中任何用户的密码,普通用户只能修改自己的密码,

groupadd 新建一个工作组

-g 指定工作组的id号

----------------------------------------------

groupdel 删除某个工作组

su 切换系统中的登录账户的身份,

su - root 切换到root账户上去

su root 切换到root账户上去

usermod 修改系统账户的信息

-d 修改用户的家目录

-c 修改用户的注释信息

-g 修改用户的组

-l 修改登录名

-----------------------------------------------------

gpasswd 管理工作组中的文件,它是管理组文件/etc/group 和/etc/gshadow 的管理工具

gpasswd -a zhangsan ttt 将zhangsan用户加入到ttt工作组中

gpasswd -d zhangsan ttt 将zhangsan用户从ttt工作组中删除

groupmod 修改工作组信息

groupmod -g 10000 ttt 将组ttt的组id修改为10000

groupmod -n 10000 ttt 将组ttt的组名修改为10000

groups 打印当前用户所属的工作组信息

groups root 打印root用户所属的工作组信息

--------------------------------------------------------

logname 打印当前系统用户的用户名,用于显示当前登录用户的用户名

newusers 批处理创建系统用户,用来一次创建多个用户

chpasswd 批处理修改系统用户的密码,Ctrl+D 来结束命令的输入

nologin 拒绝某个用户登录系统,将不允许登录的用户的登录shell修改为/sbin/nologin

/etc/nologin.txt 用来定制拒绝用户登录的时候的登录提示信息

-------------------------------------------------------------

超级用户,可以用下列形式指定任何用户的口令:修改XXX用户的登录密码

passwd XXX

New password:redhat

Re-enter new password:redhat

--------------------------------------------

普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户 为用户指定口令时,就不需要知道原口令。

---------------------------------------------------------

修改用户所在的组名:将XXX 修改为burning

groupmod -n burning XXX

用户管理、su、sudo、alias

-----------------------------------------

less /etc/passwd

uid: user id

gid: group id comment注释;说明

shell 壳 linux用户的密码保存在

less /etc/shadow

Ctrl+减号 Ctrl+Shfit+加号,放大缩小终端总的文字

---------------------------------------------

添加一个用户

sudo useradd user1

创建用户的家目录

sudo mkdir /home/user1

sudo chmod user1:user1 /home/user1/ 设置密码

sudo passwd user1 用新用户登录

su - user1 加载系统的环境

查看当前用户是谁

删除一个用户

sudo userdel -r user1

------------------------------------

修改已有用户的信息

usermod

linux中是通过uid和gid来识别每一个用户的

只要uid是0 不管你叫什么用户名你都是linux系统中的管理员

root如果uid不是0就不是超级用户,就不是管理员

锁定一个账户,用正确的密码也不能登录

sudo usermod -L user1 解除锁定

sudo usermod -u user1 设置一个密码

sudo usermod -p 新密码 user1

-------------------------------------------

su - 加载的用户的配置文件

cd /home/ ls -a .bash*

------------------------------------------

sudo 以管理员的程序运行某个程序

sudo的配置文件 /etc/sudoers

---------------------------------------

cat /etc/sudoers |grep -v "#" 不显示有#的行

----------------------------------------

alias 命令:给一个命令起别名

别名命令长期有效的配置文件:

.bashrc

./ 用来执行有x权限的指定文件

-------------------------------------

chmod 命令:修改一个文件权限的命令

权限有三组:所有者user:rwx 所属组group:rwx 其他人other:rwx

chmod u=rw 让所有者只有rx权限

g=rx

o=rx

chmod g+wx 增加某个指定的权限

chmod u+wx chmod o+wx

chmod a+x a表示所有,所有者,所有组,其他人

chmod a-x 减去某个指定的权限

--------------------------------------------------------

用二进制表示文件的权限

r 4 w 2 x 1 - 0

-----------------------------------

目录文件的rwx

目录可读:表示可以查看目录下的文件

目录可写:表示可以修改目录下的文件

目录可执行:表示可以进入这个目录

chmod -R 递归:循环的一种

chmod -R o+rw /etc/ 修改etc目录中所有文件的前线

sudo chmod 以管理员的权限执行某条命令

修改一个文件的所有者和所属组

sudo chmod 11:11 xx 将xx文件的所有者和所属组的名字都修改成11

===========================================

磁盘管理

df 查看当前系统中磁盘空间的使用信息

df -H 以1000字节为单位来显示磁盘空间的使用信息

df /etc/hosts 显示指定文件所在分区的磁盘空间的使用信息

df -T 显示文件系统的类型

------------------------------------

fdisk 给linux系统中磁盘分区的工具(512,1024,2048)

fdisk /dev/sdb 对硬盘/dev/sdb进行分区

---------------------------------------

mkfs 创建文件系统,即对硬盘进行格式化:linux系统中格式化后的硬盘分区才能够被用来使用和保存文件

linux中的新硬盘需要先用fdisk进行硬盘分区后,使用mkfs进行格式化,再使用mount来挂载后才可以使用

mkswap 创建交换分区,或创建交换文件

pvcreate 创建物理卷,用于将物理硬盘分区初始化为物理卷,用于被LVM使用

--------------------------------------------------

pvscan 扫描所有磁盘上的物理卷,列出找到的物理卷列表

pvscan -n 用来列出不属于任何卷组的的物理卷,这些物理卷是未被使用的,是可以被使用的物理卷

pvdisplay 显示物理逻辑卷的属性,物理卷的名称,所属的卷组,物理卷的大小

pvdisplay /dev/sdb* 显示物理卷的基本信息

pvremove 删除某个指定的物理卷,用来删除一个已经存在的物理卷

pvchange 修改某个物理卷的属性

pvs 打印物理卷的信息报表,显示物理卷的概要信息

--------------------------------------------------------

vgcreate 创建卷组,用来创建LVM卷组,

Volume Group 卷组 vgscan 扫描并显示系统中的卷组,用来查找系统中存在的LVM卷组,并显示找到的卷组列表

vgdisplay 显示卷组的属性,用来显示LVM卷组的元数据信息,

vgextend 向卷组中添加物理卷,用于动态的扩展LVM卷组,通过向卷组中添加物理卷来增加卷组的容量

vgreduce 从卷组中删除某个指定的物理卷,用来删除LVM卷组中的物理卷来减少卷组的容量,

vgreduce -a 用来删除指定的物理卷或是所有空的物理卷,

vgchange 修改卷组的属性,用来设置卷组是处于活动状态还是处于非活动状态

vgremove 删除某个卷组,删除LVM卷组

lvcreate 创建逻辑卷,创建LVM逻辑卷 lvscan 扫描逻辑卷,用来扫描当前系统中存在的所有的LVM逻辑卷

lvdisplay 显示逻辑卷属性,用来显示LVM逻辑卷的空间大小,读写状态和快照信息

lvextend 扩展逻辑卷的空间,用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问,

lvreduce 缩小逻辑卷的空间,用来减少LVM逻辑卷所占用的空间大小

lvremove 删除某个逻辑卷,用来删除指定的LVM逻辑卷

lvresize 修改某个逻辑卷空间的大小,调整LVM逻辑卷的空间大小

==================================================================

文件系统管理

mount 加载文件系统,挂载点的目录必须是存在并且是空的

umount 卸载文件系统

mkfs 创建文件系统,用于在硬盘上创建Linux文件系统

mke2fs 创建ext2/ext3类型的文件系统,用于在硬盘分区上创建ext2/ext3文件系统,在Linux中创建文件系统就是格式化分区

edquota 编辑磁盘配额,用于指定某个用户或工作组的磁盘配额

sync 刷新文件系统的缓存区

atime

ctime

mtime

-------------------------

df -Th 查看下系统分区怎么挂载的

df -T 显示文件系统的类型

---------------------------

du 查看一个目录的大小

du -sh ./* 查看当前目录中所有文件每个的大小

du -sh . 查看当前目录中文件总的大小

du -h ./* 显示每个文件的大小

========================

计划任务

at 创建一个指定时间执行的计划任务,

atq 查询当前用户下等待执行的任务列表,用于显示系统中等待执行的任务列表,任务列表中的任务由at命令和batch命令创建的如果要禁用某个用户使用atq,可以将用户名加入到/etc/at.deny中

atrm 删除某个执行的计划任务,删除待执行任务队列中的指定任务,先用atq查询处任务的任务号,然后再根据任务号删除指定的任务

batch 创建一个指定时间执行的计划任务,用于创建在某个指定时间,当系统不繁忙时执行的计划任务,batch命令提交的计划任务是一次性的任务,周期性的执行 任务需要用crontab命令来指定,如果需要某个用户禁用batch指令,可以将用户名加入到/etc/at/deny中即可

echo "userxxx" >> /etc/at.deny 使用重定向中的追加

crontab 创建一个周期性执行的计划任务,

chmod a+x 1.txt:

crontab-l 与 /var/spool/cron/root 显示的信息相同

----------------------------------------------

cron 计划任务命令:

crontab -e

分时日月周

写一个计划任务

*/1 * * * * date >> /tmp/date.txt

crontab -l 查看已经存在的计划任务

计划任务后跟的命令,不要超过64个字节,不然的话,可能有些linux系统读取不到命令

一般很长的计划命令写在脚本的文本中执行

---------------------------------------

删除计划任务

crontab -r

==============================

Linux系统中的进程管理

ps 打印当前的系统进程快照,查看当前用户的进程

top 实时显示系统的整体性能信息,显示系统总体的运行状态的信息

uptime 显示系统的运行时间及负载信息,显示当前系统总共运行了多长时间和系统的平均负载

free 显示内存的使用,显示当前系统未使用的和已使用的内存的信息,

-b 以字节为单位显示内存的使用情况,默认的显示值

-k 以kb为单位显示内存的使用情况

-m 以M为单位显示内存的使用情况

-------------------------------------------------------------------------

iostat 显示cpu信息和系统中的分区信息,用来监控系统输入输出设备和CPU的使用情况

-c 仅显示cpu的使用情况

-d 仅显示设备的使用率

-k 以kb为单位显示

-m 以M为单位显示

mpstat 查看cpu的状态信息,用于在多个CPU的环境下,显示各个CPU的状态,cpu的编号从0开始

mpstat -P ALL 显示当前系统中所有cpu的状态

sar 显示系统的活动状态,是linux中系统运行状态的统计工具

-A 显示所有的报告信息

-b 显示I/O速率

-P 显示CPU的状态

-R 显示内存的状态

-u 显示cpu的利用率

vmstat 显示系统的整体运行状态,Virtual Memory Statics:虚拟内存状态

time 统计指令的运行时间,用于统计给定的命令运行所需要花费的总的时间

time find / -name passwd > out.txt 用来统计find命令运行所花费的时间

lsof 显示所有已打开的文件列表,用来显示linux系统中当前已经打开的所有文件列表

uname 打印系统信息,用来打印当前系统相关的信息:内核版本号,主机名,操作系统类型

-a 打印系统所有的信息

-s 打印系统内核的名称

-n 打印主机的名称

-r 打印系统内核发行的版本号

-o 打印操作系统的名称

-p 打印主机处理器的类型

-m 打印主机硬件的名称

==============================

软件包管理

rpm RPM软件包管理器,redhat package manager 红帽公司开发的linux软件包管理工具

-i 安装rpm软件包

-q 查询软件包

-e 卸载软件包

-U 更新软件包

-f 强制执行操作

-h 显示执行的进度

rpm -ivh 安装软件包,并显示安装进度

rpm -q bind 查询

bind 软件包是否安装了

yum 基于RPM的软件包管理器

yum install 安装软件包

yum update 更新软件包

check-update检查是否有可用的软件包更新

remove 删除指定的软件包

clean 清理过期的软件包

search 查询软件包

deplist 显示软件包所有的依赖关系

resolvedep 显示软件包的依赖关系

yum install zsh 安装zsh软件包

yum update php 更新php软件包

apt-get APT包管理工具,它是Debian发行版中的软件包管理工具,

用来通过网络从debian镜像服务器上下载所需要的软件包

apt-get install ccconf 安装软件包,

-----------------------------------------------

patch 补丁

---------------------

chroot,用来在指定的根目录下运行命令

last 显示最近用户的登录列表,用来显示最近时间登陆系统的用户的用户列表,它读取的是/var/log/wtmp 文件中的内容,记录的是所有用户登录与退出系统的信息

-t 显示指定时间登录到系统的用户列表 last zhangsan 显示zhangsan用户的登录列表 lastb 显示错误的登录列表, 用来显示用户错误的登录列表,用来检测系统的登录异常

last zhangsan 显示用户zhangsan错误的登录列表

lastlog 显示用户最近一次的登录信息,用来显示系统中所有用户最近的一次登录系统的信息,lastlog读取的是/var/log/lastlog文件中的内容

-b 指定天数前的登录信息

-t 指定天数以来的用户登录信息

-u 显示用户的最近登录信息

-------------------------------------------------

sudo 临时获取某个系统账户的权限,然后去执行命令

sudo命令的配置文件是/etc/sudoers

gcc GNU的C/C++编译器

make GNU的编译工具,用来编译源代码文件

安装源代码软件的步骤是:配置configure 编译make 安装makeinstall

as GNU的汇编工具

==================================

 vim文本编辑器

vi和vim

vim的好处就是一个键盘可以完成所有的操作

vim也是Linux发行版中通用的文本编辑器

vim的配置文件 cat /etc/vim/vimrc

----------------------------------

3dd 从当前位置开始向下删除3行

d$ 删除当前位置到一行的结尾

d^ 删除当前位置到一行的行首

yy 复制

y$ 复制当前位置到一行的结尾

y^ 复制当前位置到一行的行首

vim 向上查找

vim 向下查找

vim 替换

=====================================

正则表达式匹配:

^ 匹配开头

$ 匹配结尾

[] 范围匹配

[a-z] 所有小写字母

[A-Z] 所有大写字母

[0-9] 所有数字

[^0-9] 所有非数字

-----------------------------

[a-z]* 表示有0个或多个小写字母

[a-z]+ 表示至少出现一次小写字母

[a-z]? 表示出现0次或1次小写字母

. 表示任意一个字符

.* 表示任意一个字符出现一次或多次

----------------------------------------------------

grep.*

grep "^S" 查找指定文本中以S开头的行

grep -E "d$" 查找指定文本中以d结尾的行

grep -E 等同于 egrep 表示使用正则表达式查找

grep -E "[0-9]" 找出文本中含有数字的行

grep -E "[^0-9]" 找出文本中不含数字的行

grep -E "[0-9a-zA-Z]+@[0-9a-zA-Z]+\.[0-9a-zA-Z]" 查找符合邮箱格式的行

grep -E "[0-9a-zA-Z]+@[0-9a-zA-Z]+\.[0-9a-zA-Z]+" 查找符合邮箱格式的行

=====================================================================

Linux的网络命令

ifconfig 查看网卡的配置信息

route 显示和设置路由

ifcfg 配置网卡信息

ifcfg eth0 add 192.168.0.1/24 为eth0网卡设置IP地址

ifdown 禁用某个网络接口

ifdown eth0 禁用网络接口eth0

ifup 开启某个网络接口

ifup eth0 开启网络接口eth0

hostname 显示和设置系统中的主机的名称

-d 显示DNS域名

-i 显示主机的IP地址

hostname 显示当前系统的主机名

hostname -i 显示当前系统主机的IP地址

hostname hostnameabc 设置一个主机名

ping 测试主机之间网络是否是连通的状态,用来测试主机之间的网络连通性,它使用的是Internet的消息控制协议Internet Control Message Protocol

ping命令发出的是ICMPRequest报文到目的主机,目的主机收到报文后给出ICMP Response回应信息,如果发送端的主机没有收到应答信息,表名与目的主机之间 的网络连通性有故障

-c 指定发送请求报文的次数

-i 指定发送请求报文的时间间隔-秒

-s 设置发送请求报文的大小

-t 设置发送的数据包的生存期TTL的值:Time To Life :生存期,它是ICMP报文在网络上的存活时间 TTL常见的值是32 64 128 255 TTL的值,反映的是ICMP报文所能够经过的路由器的数量,每经过一个路由器。路由器就像数据包的TTL值减去1,如果TTL的值为0则 路由器将不再转发此报文, 指定ping 命令后显示的TTL值,是目标机器的默认TTL减去经过的路由器后得到的值

Ping命令是基于网络层的ICMP协议工作的,所以ping一个域名,在发送ICMP报文前,ping命令会自动调用域名解析器将域名转换为IP地址

ping -c 4 www.baidu.com 向百度发送4个测试网络是否可用的的报文信息

netstat 查看当前的网络状态

-t 或 --tcp 显示TCP协议连接的状态信息

-u 或 --UDP 显示UDP协议的状态信息

nslookup 某个IP对应的网站的域名查询工具

nslookup www.google.com 查询www.google.com对应的IP地址

nslookup 交互式的查询IP或是域名

dig DNS查询工具

DNS:Domain Name System 完成IP地址与主机域名之间的相互转换,这个转换过程称为域名解析

根据域名查到对应的IP叫正向域名解析

由IP地址查到对应的域名叫反向域名解析

dig www.baidu.com 查询域名对应的IP地址

host 域名查询工具

host www.baidu.com 查询域名对应的IP地址

arping 发送arp请求给邻居主机,功能与ping命令类似,但是arping是基于ARP广播机制的所以arping只能测试同一网段的主机的网络的连通行,ping命令是基于 ICMP协议的,ICMP协议是可以路由的,所以ping命令可以测试任意网段的主机的连通行

arping -c 5 192.168.0.1 向主机发送指定数目的ARP报文

arpwatch 监听arp缓冲区的变化

ftp 文件传输协议

FTP:File Transfer Protocol即文件传输协议,用于本地和服务器之间上传和下载文件

mput 一次上传多个文件到服务器

mget 一次从服务器上下载多个文件到本地

put或send 将单个文件上传到服务器

get 从服务器上下载指定的文件

anonymous 匿名

ftp 服务器地址 连接到服务器

mail 接收和发送电子邮件的工具

-b 收信人的地址

-c 收信人的地址

-s 指定邮件的主题

-u 读取指定用户的邮件

linux系统中将收到的邮件默认存放在/var/spool/mail/目录下

root用户的邮件保存在/var/spool/mail/root文件中,不同用户的邮件保存在以用户命名的文件中

ftp

telnet 用于远程登录主机,对主机进行管理,使用的是TELNET协议,Telnet服务器默认使用的是TCP协议的23号端口

telnet -l root 192.168.0.1 远程登录到主机

telnet root 192.168.0.1 远程登录到主机

tftp 简单的文件传输协议,在本机和tftp服务器之间用TFTP协议传输文件,

connect 连接tftp服务器

put 向tftp服务器上传文件

get 从tftp服务器下载文件

quit 退出

------------------------------------------------

wget 从指定的URL地址下载文件

wget -R .jpg,.gif www.baidu.com 不下载图片文件

-------------------------------------------------

ssh 在客户机上远程登录服务器用的

ssh 系统用户名@服务器的IP地址

ssh root@192.168.10.10 或者:ssh 服务器的IP地址

-----------------------------------------

二进制数字:

512,256,128,64,32,16,8,4,2,1,0

=============================================================

Linux最常用的基础命令 下篇

Linux最常用的基础命令 下篇

==============================================================================================================

学习中想到的一些乱七八糟:

懒有两种:思想上的懒,身体上的懒

有脚踏实地的敢干,有仰望星空的敢想,不断的给自己更多的可能性

想做的+必须要做的

不给别人添麻烦:如果可以的话,不要在公共场合吃有味道的东西,因为有味道你会影响到你旁边的人,你觉得可以的味道,别人不想闻到的呀

人的素质和气质的培养是需要很长期的坚持的培养的

“以史为镜,可以知兴衰;以人为镜,可以知得失”出自于《旧唐书·魏徵传》。

一个人用铜当镜子,可以照见衣帽是不是穿戴得端正;用历史当镜子,可以知道国家兴亡的原因;用人当镜子,可以发现自己的对错

生活中脸皮子一定要厚,不要动不动就生气了

跟老板抬杠,这样的话,你会没有前途的 表达能力不好的话,

不能把一件事情描述清楚就多做一些尝试,更多的准备,更充分的准备

要连续不断的坚持

===============================================================================================================