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
=============================================================
==============================================================================================================
学习中想到的一些乱七八糟:
懒有两种:思想上的懒,身体上的懒
有脚踏实地的敢干,有仰望星空的敢想,不断的给自己更多的可能性
想做的+必须要做的
不给别人添麻烦:如果可以的话,不要在公共场合吃有味道的东西,因为有味道你会影响到你旁边的人,你觉得可以的味道,别人不想闻到的呀
人的素质和气质的培养是需要很长期的坚持的培养的
“以史为镜,可以知兴衰;以人为镜,可以知得失”出自于《旧唐书·魏徵传》。
一个人用铜当镜子,可以照见衣帽是不是穿戴得端正;用历史当镜子,可以知道国家兴亡的原因;用人当镜子,可以发现自己的对错
生活中脸皮子一定要厚,不要动不动就生气了
跟老板抬杠,这样的话,你会没有前途的 表达能力不好的话,
不能把一件事情描述清楚就多做一些尝试,更多的准备,更充分的准备
要连续不断的坚持
===============================================================================================================