最全的linux命令在这里
目录
一、其他命令
pwd 查看当前所在位置
passwd 更改密码
ctrl+L # 清屏
clear # 清屏
man 名称 # 调出手册
eg: man bc 计算器手册
名称 -help # 调出手册
history # 显示使用的命令记录1000条左右
ctrl shift+ # 放大字体
ctrl- # 缩小字体
# ls # 可以配合通配符使用
ls 查看所在位置下的文件和文件夹
参数: ls -a # 显示所有文件夹,文件(包括隐藏的)
ls -a index # 显示index文件夹下的所有文件夹、文件
ls -l # 以列表的方式显示当前位置下的详细信息
ls -lh # 显示文件大小
ls -lha # 显示全部所有信息
echo # 在终端中输出,类似printf()
which 命令 # 查看该命令所在的位置
yum install tree
tree # 树状显示目录结构
yum install lrzz
rz 上传,在服务器敲,从本地传到服务器
sz 下载,在服务器敲,从服务器传到本地
history # 查看命令记录
!序号 # 执行命令
wget www.baidu.com vim index.html # 爬取资源
netstat -natup # 查看服务
二、开关机,重启操作
reboot 重启系统
shutdow # 一分钟后自动关机
shutdow -c # 取消本次关机操作
shutdow now # 立即关机
shutdow -r now # 立即重启
shutdow 20:00 # 20:00关机
shutdow 10 # 10分钟后关机
三、时间
date # 显示时间
cal 2020 显示2020年全年日期
date 0415150000 显示并更改时间 4月15日15:00 00 秒
四、通配符以及>,>>,|
* # 匹配0个或者多个字符
eg: ls index* # 结果:index1,index2abc,index3asdasd。。。
? # 匹配任意单个字符
eg: ls index? # 结果:index1,index2,index3
ls index?? # 结果: indexaa,indexbb,indexcc
[0-9] # 匹配0-9范围内的数字
[abc] # 匹配列表中的任意字符
^ # 非,取反
eg: [^abc]:匹配除abc的字符
> # 追加到文件,覆盖原来的信息
eg: echo hello >test # hello写入test中,并覆盖原来的所有内容
>> # 追加到文件,不覆盖原来的信息
eg: echo hello >>test # hello写入test中,从末尾追加,不覆盖
| # 管道符,对前面的命令结果,传给后面用
eg: cat test2 |grep a
cat test2 |grep -n a
cat test2 |grep -ni A
五、操作文件/文件夹
cp 拷贝
eg:将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中
cp -r /usr/men /usr/zh
/cp -r /usr/men /user/zh # 前面加/ 不会重复提问你
mv 移动
eg:将文件 aaa 更名为 bbb :
mv aaa bbb
将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。
mv info/ logs
touch test # 创建test文件
touch test{1,2,3} # 创建test1,test2,test3文件
mkdir index # 创建index目录
mkdir index{1,2,3} # 创建index1,index2,index3目录
rm test # 删除文件(需要确认)
rm -r index # 删除文件(需要确认)
rm -rf index # 删除文件或目录(不需要确认,直接删除)
yum install tree
tree # 树状显示目录结构
六、文件内容
vim 文件名 # 打开文件,可以进入编辑模式
cat 文件名 # 查看文件,较少内容,不需要分屏
more 文件名 # 查看文件,较多内容,分屏显示
空格键 向下翻一页
[Page Down] 向下翻一页
[Page Up] 向上翻一页
[Ctrl + U] 向上翻一页
[Ctrl + D] 向下翻一页
/string 向下搜寻string这个字符串
?string 向上搜寻string这个字符串
n,N 搜索字符串时,用n来继续搜索下一个,N来进行反向搜索下一个
q 结束
ggdG 将原内容全部清除
q! 强制退出,不保存
wq 保存退出
# 光标
a:在行尾插入
i:在行头插入
o(小写):插入新行(在光标所在行的下面)
O(大写):插入新行(在光标所在行的上面)
se nu # 给文本加入编号(只是便于查看,没有修改文件)
G :光标移到文件最后一行
nG:光标定位到某行
gg:移动到文件第一行,相当于1G
# 复制、删除、粘贴
dd :删除光标所在的一行
ndd:指定删除行。20dd,删除第20行
ggdG:删除所有
yy : 复制光标所在的一行
nyy:复制指定行,20yy,复制第20行
P:粘贴
# 文件搜索 find搜索
find 大致路径 -name *.txt # 搜索路径下的所有以txt结尾的文件
eg:find -name *a* # 模糊搜索,配合通配符使用
find python/ -name *.py # 搜索python文件夹下的所有.py结尾的文件
df -h # 显示磁盘剩余空间
du -h # 显示当前所在位置磁盘占用情况
du -h[目录名] # 显示所有子目录磁盘占用情况
七、文本搜索工具grep
grep 文本搜索工具
参数: -n # 显示匹配及行号
-v # 显示不包含文本所有行
-i # 忽略大小写
eg :
grep A test # 在test文件中搜索A
grep -n A text # 在test文件中搜索A,并显示行号
grep -v A test # 在test文件中显示除去A所在的行
grep -i A test # 在test文件中搜索A,a。不区分大小写
^ # 开头
$ # 结尾
eg:
grep ^a test # 在test文件中搜索以a开头的
grep $a test # 在test文件中搜索以a结尾的
grep -i ^a test # 在test文件中搜索以a,A开头的
八、用户操作
理论用户数量:2的32次方个
理论组数量:475个
普通用户从 1000开始
root用户ID:0
系统用户:ID范围1-999
普通用户:ID范围1000-60000
logout 登出,退出
password 更改用户密码
useradd 用户名 # root用户添加子账户
su 用户名 # 切换用户
LL:显示详细信息
ls -l 文件名 # 显示文件详细信息
# 创建用户
useradd -m -g 组名 新用户名 # 常用
useradd 用户名 # adduser与useradd一样。adduser会提示你设置信息
useradd jeff:123 # 创建jeff用户密码为123
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] 用户名
-c:加上备注文字,备注文字保存在passwd的备注栏中。
-U 指名用户UID
-s:指定用户登入后所使用的shell。默认值为/bin/bash。
-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.
-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。
-D:变更预设值。
eg:
建立一个新用户账户testuser1,并设置UID为544,主目录为/usr/testuser1,属于users组:
useradd -u 544 -d /usr/testuser1 -g users -m testuser1
使用管理员账号登陆系统,建立用户jeff 密码123
->>:useradd jeff
->>passwd jeff
->>在系统出现提示输入密码是输入密码:3sdt5:Eawhg 系统提示输入确认密码后再输入一次。OK添加成功。
# 封锁解锁用户
usermod -L jeff 锁定jeff用户
usermode -U jeff 解锁jeff用户
# 删除用户
userdel -r 删除用户
# 将用户添加到组
chgrp -R 组名 用户名 # 将用户添加到组
eg:chgrp -R python jeff # 将jeff添加到python组
-R :递归修改用户中目录及文件权限
who # 查看当前用户目录
whoami # 查看当前用户名
/etc/password # 用于把偶才能用户信息的文件
/usr/bin/passwd # 用于修改用户密码的程序
九、更改主机名
hostname # 显示主机名
host name 新主机名 # 临时更改主机名,关机重启后失效
hostnamectl set-hostname 新主机名 # 永久更改主机名
十、组操作
groupadd 组名 # 创建组
groupdel 组名 # 删除组
# 将用户添加到组
chgrp -R 组名 用户名 # 将用户添加到组
eg:chgrp -R python jeff # 将jeff添加到python组
-R :递归修改用户中目录及文件权限
十一、权限操作
drwx
d:目录
r:读 read
w:写 write
x:执行 excute
拥有者 | 组 | 其他用户 |
---|---|---|
r w x | r w x | r w x |
4 2 1 | 4 2 1 | 4 2 1 |
4+2+1 7 rwx 读写执行
4+2+0 6 rw- 读写
4+0+1 5 r-x 读执行
4+0+0 4 r-- 读
0+2+1 3 -wx 写执行
0+2+0 2 -w- 写
0+0+1 1 --x 执行
0+0+0 0 --- 无任何权限
# 修改权限方式一
chmod -R 777 文件名 #所有权限
-R 标识递归设置所有文件
# 修改权限方式二
chmod +rwx 文件名 (不好用,不推荐)
chmod # 修改权限
chgrp # 修改组
chown # 修改拥有者
十二、进程、服务操作
# ps查看进程
ps aux # 擦好看进程详细情况
a:显示终端上所有进程,包括其他用户的进程
u:显示进程的纤细情况
x:显示没有控制终端的进程
pa au # 常用
top # 动态显示运行中的进程并且排序,类似于windows的任务管理器
kill PID号 # 终止PID号的进程
kill -9 PID号 # 强制终止
pkill 服务名 # 杀死指定服务
掌握pgrep命令的功能:通过名称或其他属性查找进程
例如:查找名为firefox的进程的命令为:pgrep firefox
# 服务
netstat -natup # 查看服务
top # 动态显示服务状况
wget www.baidu.com vim index.html # 爬取资源
systemctl status 服务名 : 关闭某一个服务
systemctl start 服务名 : 启动一个服务
eg:service sshd start: 启动ssh的服务
systemctl restart 服务名 : 重新启动一个服务
eg:service sshd restart: 重新启动ssh的服务
十三、显示内存的使用状态
提到使用free命令查看Linux系统使用内存时,used一项会把当前cache的大小也会加进去,这样会造成free这一栏显示的内存特别少,可是实际上,cache根据应用程序的需要是可以回收利用的,因此free这一栏并不能真实地表现有多少“可以使用”的内存。实际系统可用内存应该以available数据为准。
free -m
可以使用-w命令行选项得到buff和cache各自使用的数量:
free -wm
十四、磁盘操作、cpu
df -h # 显示磁盘剩余空间
du -h # 显示当前所在位置磁盘占用情况
du -h[目录名] # 显示所有子目录磁盘占用情况
cat /proc/cpuinfo # 查看cpu情况
十五、CenOS7目录作用
bin ---- 命令,二进制文件的存放目录
boot ----- 系统引导程序+系统的内核
dev ---- 设备 硬盘,光驱
etc ---- 存储系统或者服务的配置文件
home ---- 普通用的家目录,贫民窟
lib ----- 库文件存放目录
lib64 ---- 库文件的存放目录(64位系统)
media ---- linux识别的设备,比如u盘等,挂这个目录
mnt ----- 临时的挂载点目录
opt ----- 第三方的软件安装在整理
proc ----- 虚拟目录,显示内存中的信息(进场,内核的信息)
root ----- root的家目录 相当于皇宫
run ----- 放的启动的东西
sbin --- 超级命令,只用root用户才能用的命令
srv ----- service的缩写,存放的是一些启动后需要的数据
sys ------ 虚拟目录,内存信息
tmp ----- 临时文件的存放位置
usr ---- 存放用户的程序
var ----- 存放经常变化的文件,比如日志等
十六、配置网卡
vi /etc/sysconfig/network-scripts/ifcfg-en01654894
TYPE=Ethernet
BOOTPROTO=none # 改为none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=7ec9691a-fc5b-4031-a72b-5e0effba4fbe
DEVICE=eno16777736
ONBOOT=yes # 改为yes
# 添加下面的配置信息
IPADDR=10.0.0.201
PREFIX=24
GATEWAY=10.0.0.254
DNS1=114.114.114.114
IPV6_PRIVACY=no
systemctl stop firewalld # 临时关闭防火墙
systemctl disable firewalld # 永久性关闭防火墙
systemctl status firewalld # 查看防火墙的状态
systemctl restart network # 重启网卡
ping baidu.com # 测试网络是否通
# xshell就可以连接了
十七、xshell连接
ssh -p 22 root@10.0.0.254 # 命令连接 端口号默认22
# ssh [-p port] user@ip、域名、别名
十八、远程拷贝文件
可以从本地拷贝给服务器
# -P 22,默认可以不写
scp -P 22 文件 用户@ip: 路径 # 本地拷贝给服务器,本地操作
scp 用户@ip:目录/文件 目录/取名 # 服务器拷贝本地(其他服务器),服务器上操作
eg:本地拷贝给服务器 -r是递归,文件目录都可以
scp -r 001.txt root@10.0.0.200:~ # 001.txt文件拷贝到远程的根目录
scp -r 002.txt root@10.0.0.200: /home/ aa.txt # 001.txt文件拷贝到远程的home目录,并改名为aa.txt
eg:服务器拷贝本地文件(其他服务器文件)
scp -r jeff@10.0.0.201:/home/app home/app01 # 从10.0.0.201的jeff用户的hmoe/app拷贝到自己/home下并改名app01
yum install lrzz
rz 上传,在服务器敲,从本地传到服务器
sz 下载,在服务器敲,从服务器传到本地
十九、建立软硬链接
软连接:自身就是个链接文件,建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件
硬链接:硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件(用ls -i查看,这两个文件的inode号是同一个,说明它们是同一个文件)。
注意:加了-s是软链接,不加为硬链接
使用:
软链接:ln -s 文件路径 新文件名
eg:ln -s /home/jeff/aa.txt myaa.txt
硬链接:ln 文件路径 新文件名
eg:ln /home/jeff/aa.txt myaa.txt
二十、打包/解包和压缩/解压缩
打包:打包是指将一大堆文件或目录变成一个总的文件
压缩:将一个大的文件通过一些压缩算法变成一个小文件
Linux下最常用的打包程序就是tar,常称为tar包。生成tar包后,就可以用其它的程序来进行压缩了
tar基本使用:
打包:
-c # 打包,产生新的包
-x # 解包
-v # 列出归档解档过程,显示进度
-f # 指定包名
-r # 添加文件
-u # 更新
-t # 列出文件
压缩:
-z # gzip格式
-j # bzip2格式
-C(大写) # 解压到指定目录
# tar打包:
tar -cvf 包名.tar 文件路径
eg:
# 普通打包
tar -cvf aa.tar /home/001.txt 002.txt 003.txt # 3个文件打包为1个文件
# 配合通配符打包
tar -cf jpg.tar /home/*.jpg # 将home下的所有.jpg结尾的文件打成jpg.tar包
# 添加到已有的包
tar -rf jpg.tar /home/*.gif # 将home下的所有.gif文件添加到jpg.tar包中
# 更新
tar -uf jpg.tar *.gif # 更新jpg.tar包中的所有gif文件
# 列出文件
tar -tf jpg.tar # 列出jpg.tar包中所有文件
# tar解包:
tar -xvf 包名.tar
eg:
tar -xvf aa.tar
# 打包并压缩 -z 或者-j
tar -zcvf jpg.tar.gz /home/*.jpg # 将home下的所有.jpg结尾的文件打成jpg.tar.gz的压缩包
tar -jcvf jpg.tar.bz2 /home/*.jpg # 将home下的所有.jpg结尾的文件打成jpg.tar.bz2的压缩包
# 解压缩包 -x或者-j
eg:
tar -zxvf jpg.tar.gz
tar -jxvf jpg.tar.bz2
# 解压到指定目录 -C(大写)
tar -zxvf jpg.tar.gz -C /home/jeff
二十一、包操作
rpm -qa # 查询所有安装过的包信息
rpm -q 包名 # 查询指定软件包是否安装过
rpm -qf /etc/passwd # 反向查询文件是由什么包安装
rpm -qi 包名 # 查询已安装的包的信息
rpm -ql 包名 # 查询包的所有文件安装路径
rpm -qr 包名 # 查询已安装包的依赖关系
rpm -qrp 包名 # 查询包的依赖关系
rpm -V 包名 # 查询已安装的包是否修改过 V是大写
rpm -e 包名 # 卸载包
yum -y remove 包名 # 卸载包
二十二、配置yum源
配置yum源
一:cd /etc/yum.repos.d/ # 查看目录下有无.repo结尾的文件,有则删除
二:vi dvd.repo # 新建dvd.repo的文件,配置yum库,在文件中输入以下内容:
[chenckout]
name = checkout # 描述,随意写
baseurl = file://media # 设置资源库的地址,可以写阿里云的,也可以写自己的yum
enable = 1
gpgcheck = 0
三:vi/etc/fstab # 光盘挂载,在最后一行中写入以下内容:
/dev/cdrom /media iso9660 defaults,loop 0 0 # 开机挂载
四:mount -a # 手动挂载
五:yum -y install bind # 测试yum
六:ls /media # 验证挂载
yum update -y # 更新系统软件包
配置阿里云源
1) 安装wget
yum install -y wget
2)配置阿里云
wget http://mirrors.aliyun.com/repo/Centos-7.repo
3) 重新加载yum
yum clean all
yum makecache
常用命令
yum install xxx 安装xxx软件
yum info xxx 查看xxx软件的信息
yum remove xxx 删除软件包
yum list 列出软件包
yum clean 清除缓冲和就的包
yum provides xxx 以xxx为关键字搜索包(提供的信息为关键字)
yum search xxx 搜索软件包(以名字为关键字)
yum groupupdate xxx 更新xxx软件分组
yum grouplist xxx
yum groupremove xxx
yum groupinfoinfo xxx
这三个都是一组为单位进行升级 列表和删除的操作。。比如 "Mysql Database"就是一个组会同时操作相关的所有软件包;
yum update 系统升级
yum list available 列出所有升级源上的包;
yum list updates 列出所有升级源上的可以更新包;
yum list installed 列出已经安装的包;
yun update kernel 升级内核;
yum其他命令
# rpm 更新
#检查可更新的rpm包
yum check-update
#更新所有的rpm包
yum update
#更新指定的rpm包,如更新kernel和kernel source
yum update kernel kernel-source
#大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
yum upgrade
# rpm包的安装和删除
#安装rpm包
yum install 包名
#删除rpm包,包括与该包有倚赖性的包
yum remove 包名
注:同时会提示删除licq-gnome,licq-qt,licq-text
# 包列表
#列出资源库中所有可以安装或更新的rpm包
yum list
#列出资源库中特定的可以安装或更新以及已经安装的rpm包
yum list mozilla #yum list mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包
#列出资源库中所有可以更新的rpm包
yum list updates
#列出已经安装的所有的rpm包
yum list installed
#列出已经安装的但是不包含在资源库中的rpm包
yum list extras
# 搜索rpm包
#搜索匹配特定字符的rpm包
yum search mozilla
注:在rpm包名,包描述等中搜索
#搜索有包含特定文件名的rpm包
yum provides realplay
二十三、pstree 树装显示程序
centos7默认没有pstree,需要yum -y install psmisc
pstree 进程号
列出PID为4729的进程的进程状态树的命令:pstree 4729
二十四、重置root密码(密码忘记)
第一步:开机4秒内按e
第二步:光标移动到Linux16开头处,按end(光标移到末尾)
第三步:在末尾输入 空格rd.break ctrl+x 下一步
第四步:mount -O remount,rw /sysroot
第五步:chroot /sysroot
第六步:passwd root
第七步:输入两遍新的root密码
第八步:touch /.autorelabel
第九步:exit两遍
版权声明:本文为guyouyin123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。