Linux 常用命令完整版
2023-01-07 17:02:55
登录查看完整内容
Linux 常用命令和部分软件安装命令
举报
猜你喜欢
大纲/内容
每一段中的内容都是一样的,分别限定:读(r=4)、写(w=2)、执行(x=1)rwx\t\t7\t\t具备所有权限(421) rw-\t\t6\t\t具备读写权限(420)r-x\t\t5\t\t具备读和执行权限(401)r--\t\t4\t\t具备只读权限(400)-wx\t\t3\t\t具备写和执行权限(021)-w-\t\t2\t\t具备写权限(020)--x\t\t1\t\t具备执行权限(001)---\t\t0\t\t000
文件权限
chmod 777 1.txt
chmod 修改文件权限
基本用法:chown 最终用户 (功能描述:改变文件或者目录的所有者)
文件所有者修改为hadoop用户chown hadoop test1.txt
chown改变所有者
基本用法:chgrp 最终用户组 (功能描述:改变文件或者目录的所属组)
修改test1.txt为hadoop组[root@linux121 test]# chgrp hadoop test1.txt
chgrp改变所属组
7.文件权限
基本用法:ps -aux (功能描述:查看系统中所有进程)
u 显示进程的详细状态
x 显示没有控制终端的进程
说明
ps 进程是正在执行的一个程序或命令
基本用法:top [选项]
-d 秒数:指定top命令每隔几秒更新。默认是3秒。
-i:使top不显示任何闲置或者僵死进程。
-p:通过指定监控进程ID来仅仅监控某个进程的状态。
( 2)操作选项,即在执行top命令之后,与top命令进行交互:P: 以CPU使用率排序,默认就是此项M:以内存的使用率排序N: 以PID排序q: 退出top
分支主题
top查看系统状态
基本语法:kill -9 pid进程号
选项-9 表示强迫进程立即停止
kill终止进程
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况
yum install net-tools
安装命令
-a 显示所有连接和监听端口。
-e 显示以太网统计信息。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和
广播的数量
-n 以数字形式显示地址和端口号。
-o 显示与每个连接相关的所属进程 ID 。
-p proto 显示 proto 指定的协议的连接;proto 可以是下列协议之一: TCP 、UDP 、TCPv6 或 UDPv6 。
选项
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]
netstat -anp | grep 22
使用
netstat显示网络统计信息
8.系统管理与进程管理
vm克隆
vi /etc/sysconfig/network-scripts/ifcfg-ens33
网络配置文件ifcfg-ens33的ip地址
systemctl restart network
重启网卡
ip addr
检查ip地址是否更变
hostnamectl
查看主机名
hostnamectl set-hostname xxx
更改主机名
reboot
重启
配置克隆后机器
1.虚拟机克隆操作
systemctl status firewalld
1.查看防火墙
systemctl stop firewalld
2.设置防火墙停用状态
systemctl disable firewalld
2.关闭防火墙
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。 关闭安全策略否则SELinux服务开启后导致SSH连接异常。
vi /etc/selinux/config
重启生效
3.关闭selinux
免密登录的思路
分别的在centos7-1 centos7-2 centos7-3中配置主机名和ip的映射关系vi /etc/hosts
第一步:在三台机器器执行行以下命令,生成公钥与私钥第二步:将centos7-2和centos7-3的公钥拷贝到centos7-1第三步:再将centos7-1的公钥分发给centos7-2和centos7-3
免密登录步骤
对称加密 + 非对称加密(公钥 私钥)
ssh centos7-2
4.免密登录 ssh 安全外壳协议
ntpdate us.pool.ntp.org
通过命名和时钟服务器同步时间:
crontab -e
1.编辑定时任务
*/1 * * * * /usr/sbin/ntpdate us.pool.ntp.org;
2.设置定时规则
自动生成规则网站: https://cron.qqe2.com/
定时任务时间同步
5.时间同步
9.linux 远程连接
shell脚本是一个特殊的应用程序,它介于操作系统和系统内核之间,充当一个命令解释器的角色。负责接收用户输入的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果
1.作用
#!/bin/bash echo 'hello shell'
!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。echo 命令用于向窗口输出文本。
2.编写shell
注意 : 变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。
- 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
- 中间不能有空格,可以使用下划线(_)。
- 不能使用标点符号。
- 不能使用bash里的关键字(可用help命令查看保留关键字)。
规则
your_name=\"tom\"echo $your_nameecho ${your_name}
定义及使用
readonly 变量名
username=tomreadonly usernameusername=jack 报错 /bin/sh: NAME: This variable is read only.
只读变量
unset variable_name
unset命令不能删除只读变量
删除变量
3.变量\t
skill='java'str='I am goot at $skill'echo $str
输出结果: I am goot at $skill
- 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
- 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行)
单引号字符串的限制
单引号
skill='java'str="I am goot at $skill"echo $str
输出结果:I am goot at java
- 双引号里可以有变量- 双引号里可以出现转义字符
双引号
skill='java'echo ${skill} # 输出结果: javaecho ${#skill} # 输出结果: 4
获取长度
提取字符串
查找字符o在那个位置(最先出现的字符)str="hadoop is so easy"echo `expr index "$str" o`
查找字符串
4.字符串
注意:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b]是错误的,必须写成[ $a == $b ]
#!/bin/basha=4b=20#加法运算each expr $a + $b#减法运算echo expr $a - $b#乘法运算,注意*号前面需要反斜杠echo expr $a \\* $b#除法运算echo $a / $b
示例
算数运算符
关系运算符
5.运算符
格式1:if conditionthen command1 command2 ... commandN fi
格式2:if conditionthen command1 command2 ... commandNelse commandfi
[root@hadoop01 export]# cat if_test.sh#!/bin/basha=20b=10# 需求1: 判断 a 是否 100if [ $a > 100 ]; thenecho "$a 大于 100"fi# 需求2: 判断 a 是否等于 bif [ $a -eq $b ]; thenecho "$a 等于 $b"elseecho "$a 不等于 $b"fi# 需求3: 判断 a 与 b 比较if [ $a -lt $b ]; thenecho "$a 小于 $b"elif [ $a -eq $b ]; thenecho "$a 等于 $b"elseecho "$a 大于 $b"fi
if语句
格式:for variable in (list); docommandcommand...done
# 需求1: 遍历 1~5for i in 1 2 3 4 5; doecho $i;done# 需求2: 遍历 1~100for i in {1..100}; doecho $idone# 需求3: 遍历 1~100之间的奇数for i in {1..100..2}; doecho $idone# 需求4: 遍历 根目录 下的内容for f in `ls /`; doecho $fdone
for循环
格式:while condition; do\tcommanddone
计算 1~100 的和#!/bin/bashsum=0i=1while [ $i -le 100 ]; do\tsum=$[ sum + i]\ti=$[ i + 1 ]doneecho $sum
while循环
格式:case 值 in\t模式1)\t\tcommand1\t\tcommand2\t\t...\t\tcommandN\t\t;;\t模式2)\t\tcommand1\t\tcommand2\t\t...\t\tcommandN\t\t;;esac
练习:echo '输入 1 到 4 之间的数字:'read aNumcase $aNum in\t1) echo '你选择了 1'\t;;\t2) echo '你选择了 2'\t;;\t3) echo '你选择了 3'\t;;\t4) echo '你选择了 4'\t;;\t*) echo '你没有输入 1 到 4 之间的数字'\t;;esac
case语句
break命令允许跳出所有循环(终止执行后面的所有循环)。
break
跳出循环继续下一次循环
continue
6.流程控制
[ function ] funname(){\taction;\t[return int;]}
- 参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255)
1.定义函数
格式:
#!/bin/bashdemoFun(){\techo "这是我的第一个 shell 函数!"}echo "-----函数开始执行-----"demoFunecho "-----函数执行完毕-----"
2.快速入门
在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 n 的形式来获取参数的值,例如,1表示第一个参数,$2表示第二个参数..
#!/bin/bashfunWithParam(){\techo "第一个参数为 $1 !"\techo "第二个参数为 $2 !"\techo "第十个参数为 $10 !"\techo "第十个参数为 ${10} !"\techo "第十一个参数为 ${11} !"\techo "参数总数有 $# 个!"\techo "作为一个字符串输出所有参数 $* !"}funWithParam 1 2 3 4 5 6 7 8 9 34 73
3.参数传递
7.函数
10.shell
RPM 是Red-Hat Package Manager(RPM软件包管理器)的缩写
通过 rpm命令 实现对软件 的安装、查询、卸载
rpm -qa | grep rpm包
查询已安装的rpm列表
rpm -qi 软件全包名
查询软件包信息
rpm -ql 软件全包名
查看一个rpm包中的文件安装到那里去了
rpm -qf 文件的全路径
查看指定文件归属于那个软件包
- 第一步: rpm包 的查询命令
# 2 卸载rpm -e rpm全包名rpm -e --nodeps rpm全包名
- 第二步: rpm包 的 卸载
# 3 安装rpm -ivh rpm包的全路径
- 第三步: rpm包 的 安装
实现:
rpm
yum
安装yum -y install httpd
启动service httpd start
测试http://192.168.80.100:80
关闭防火墙systemctl stop firewalld
安装httpd
rpm -qa | grep java
1.查看以前是不是安装了openjdk
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.i686rpm -e --nodeps tzdata-java-2013g-1.el6.noarch
2.卸载openjdk
参数:-e \t\t\terase package(uninstall)\t\t\t移除包(卸载)--nodeps\tdo not verify package dependencies\t不要验证包依赖关系
3.安装jdk(1)、切换到root用户并进入usr目录: cd /usr(2)、在usr目录下创建java文件夹: mkdir java(3)、将jdk-8u81-linux-x64.tar.gz拷贝或上传到java目录下(也可以用工具)(4)、进入/usr/java文件夹下:cd /usr/java/(5)、修改权限,参数“jdk-8u81-linux-x64.tar.gz”为你自己上传的jdk安装文件 chmod 755 jdk-7u71-linux-x64.tar.gz(6)、解压:tar –zxvf jdk-8u81-linux-x64.tar.gz
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_141/export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jarexport PATH=$PATH:${JAVA_HOME}/bin
source /etc/profile
重新编译环境变量
4.配置环境变量
安装jdk
找到pid
ps -ef | grep tomcat
jps 找到pid
kill -9 pid
1、创建安装目录:mkdir /usr/tomcat2、给apache-tomcat-7.0.57.tar.gz 文件权限3、解压tomcat压缩文件:tar -zxvf apache-tomcat-7.0.57.tar.gz -C /user/tomcat注意,这里也可以只打开tomcat所需端口:80804、启动tomcat:进入tomcat的bin目录:cd /usr/tomcat/apache-tomcat-7.0.57/bin/启动tomcat web服务器:./startup.sh访问:192.168.80.100:80805、停止tomcat ./shutdown.sh6、查看tomcat日志信息:
./startup.sh && tail -200f ../logs/catalina.out
安装tomcat
1.查看yum源仓库ll /etc/yum.repos.d/
2.下载rpm包wget -P /usr/software http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
cd /usr/softwarerpm -ivh mysql-community-release-el6-5.noarch.rpm
3.rpm方式安装mysql\t
yum -y install mysql-community-server
4.yum安装mysql
service mysqld start
如果出现:serivce: command not found安装serviceyum install initscripts
5.启动mysql
# 设置密码/usr/bin/mysqladmin -u root password '123'
6.修改密码
# 进入mysqlmysql -uroot -p123# 查看编码集 发现不是utf8show variables like 'character_set_%';
[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]character-set-server=utf8
# 修改mysql 软件的编码集[root@Hadoop-NN-01 ~]# vi /etc/my.cnf
[root@Hadoop-NN-01 ~]# service mysqld restart
修改字符集
7.修改字符集
8.配置远程连接
安装mysql
额外:软件安装
tab键:命令或者路径提示及补全
ctrl+c:放弃当前输入,终止当前任务或程序
ctrl+l:清屏
ctrl + insert:复制
鼠标右键:粘贴
alt+c :断开连接 / ctrl + shfit + R 重新连接
alt+1/2/3/4/5… :切换会话窗口
常使用快捷键
cd .. 切换到上级目录
cd - 后退到上一次所在目录
cd ~ 跳到home目录
cd 切换目录
pwd 展示当前目录
ll ls -l 详细的列表
ls 查看目录
touch 创建文件
-p 可以递归创建目录
mkdir -p /aa/bb/cc
mkdir 要创建的目录
如果该目录中存在文件或其他目录是该命令是不能删除的.
rmdir 删除目录
-f force (强制)
-r recursive (递归)
rm [-参数] 文件/目录
cp source dest (功能描述:复制source文件到dest)
-r recursive (递归)
cp 复制文件/目录
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:递归移动文件)
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行行字节 $ 显示出来;
-n :列出行号,连同空白行也会有行号,与 -b 的选项不不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
-A :相当于 -vET 的整合选项,可列列出一些特殊字符而不不是空白而已;
cat [选项] 要查看的文件
空格键 (space):代表向下翻一页;
Enter:代表向下翻『一行』;
q代表立刻离开 more ,不再显示该文件内容。
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
more 要查看的文件
空格键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/ 字符串 :向下搜寻『字符串』的功能;n:向下查找;N:向上查找;
q :离开 less 这个程序;
less 要查看的文件
head 文件名 :查看前10行
head -n 3 文件名 :查看文件的前3行
head -c 3 文件名 :查看文件的前3个字符
head 查看文件内容,只看头几行
tail -n 10 文件 (功能描述:查看文件头(从末尾开始数)10行行内容,10可以是任意行行数)
tail -f 文件 (功能描述:实时追踪该文档的所有更更新)
tail 查看文件内容,只看尾巴几行行
特点清空原有内容
cat /etc/password > a.txt
> 重定向输出
在原有内容后追加
cat /etc/password >> a.txt
>> 重定向输出追加
ls --help | more 分页查看帮助信息
ps -ef | grep java 查找java进程
管道符号 | 的作用是: 将一个命令的输出作为另一个命令的输入.
./startup.sh && tail -100f catalina.out
逻辑控制 &&
history 查看历史命令
常用命令
1.linux基本命令
tar 打包命令格式
tar -cvf 打包名.tar 被打包的目录
tar -cvf 打包名.tar 被打包的文件1 被打包的文件2 被打包的文件3
v 报告进度
打包
tar 解包命令格式
tar -xvf 打包名.tar
tar -xvf 打包名.tar -C 解包路径位置
x extract (提取) 解包
解包
tar -zcvf 打包压缩文件名.tar.gz 被压缩的文件/目录
压缩文件
tar -zxvf 打包文件.tar.gz
解压缩文件
tar -zxvf 打包文件.tar.gz -C 目录路径
解压缩到指定路径
z 使用gzip压缩和解压缩
gzip压缩和解压缩
yum install -y bzip2
安装
tar -jcvf 打包压缩文件名.tar.bz2 被压缩的文件/目录
tar -jxvf 打包文件.tar.bz2
tar -jxvf 打包文件.tar.bz2 -C 目录路径
j 使用bzip2压缩和解压缩
bzip2 格式 压缩 和 解压缩
2.打包解包
(1)date (功能描述:显示当前时间)
(2)date +%Y (功能描述:显示当前年年份)
(3)date +%m (功能描述:显示当前月份)
(4)date +%d (功能描述:显示当前是哪一天)
(5)date +%Y%m%d … (功能描述:显示当前年年月日各种格式 )
(6)date \"+%Y-%m-%d %H:%M:%S\" 或者单引号也可以 (功能描述:显示年⽉日时分秒)
显示的是字符串串描述的时间
date -s 字符串时间
data -s \"2020-06-20 20:52:18\"
设置系统时间
cal [选项] (功能描述:不加选项,显示本月日历)
cal
cal -3
cal 2020
cal 查看日历
3.日期时间
feat 命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
基本格式:find path [options]
find /etc -name yum.conf #在/etc目录下文件yum.conf
find /etc -name 'yum' #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘yum’的文件
find . -name 'yum*' #表示当前目录下查找文件名开头是字符串‘yum’的文件
按照文件名查找
find / -atime -2 # 查找在系统中最后48小时访问的文件 (Access Time,文件读取访问时间)
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group susan # 查找在系统中属于group为susan的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件 (modify time)
find / -user susan #查找在系统中属于susan这个用户的文件
find / -size +10000c #查找出大于10000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
find / -size -1000k #查找出小于1000KB的文件
按照文件特征查找
find 命令
基本格式:grep [options] 范围
主要参数:[options]主要参数: -c:只输出匹配行的计数。 -i:不区分大小写 -n:显示匹配行及行号。 -w:显示整个单词 -r:递归查询
查找正在运行的java进程
jps
ps -ef | grep java
grep 过滤查找
4.搜索查找
yum -y install vim-enhanced
vim 安装
i:光标不动
o:另起一行
a:光标到下一个字符
命令模式进入编辑模式
ESC
Ctrl+c
Ctrl +[
退出编辑模式到命令模式
编辑模式
命令模式下,按‘:’或者‘/’进入底行模式,可以输入命令
:q 未编辑时退出vim
:q! 编辑后,退出并且不保存
:wq 编辑后,退出且保存
:x 编译后保存
退出vim
:set nu 显示行号
:set nonu 不显示行号
设置行号
:s/old/new/ 用new替换old,替换当前行的第一个匹配
:s/old/new/g 用new替换old,替换当前行的所有匹配
:%s/old/new/ 用new替换old,替换所有行的第一个匹配
:%s/old/new/g 用new替换old,替换整个文件的所有匹配
替换文本
命令模式
左移动一个字符
h
右移动一个字符,一般用 w 代替
l
上移动一个字符
k
下移动一个字符
j
右移动一个单词词尾
w
复制光标所在行
yy
将之前dd或yy的数据粘贴到光标位置
p
剪切当前行
dd
撤销上一次操作
u
撤销对整行的操作
U
重做(Redo),即撤销的撤销
R(Ctrl + r) |
撤销上次操作(扩展---一般模式下)
正常模式
5.vim 编辑器
格式: useradd 用户名 (功能描述:添加新用户)
useradd hadoop
useradd 添加新用户
格式: passwd 用户名 (功能描述:设置用户密码)
passwd hadopp
passwd 设置用户密码
格式: id 用户名
id hadoop
id 判断用户是否存在
su hadoop
su 用户名称 (功能描述:切换用户,只能获得用户的执行行权限,不能获得环境变量)
su - hadoop
su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限)
su 切换用户
userdel hadoop
userdel 用户名 (功能描述:删除用户但保存用户主目录)
userdel -r hadoop
userdel -r 用户名 (功能描述:用户和用户主目录,都删除)
userdel 删除用户
whoami (功能描述:显示自身用户名称)
who am i (功能描述:显示登录用户的用户名)
who (功能描述:看当前有哪些用户登录到了了本台机器器上)
查看登录用户信息
允许系统管理员让普通用户执行一些或者全部的root命令的一个工具
sudo命令
groupadd 组名
groupadd hadoop
groupadd 新增组
groupdel 组名
groupdel hadoop
groupdel删除组
groupmod -n 新组名 老组名
groupmod -n hadoop1 hadoop
cat /etc/group 查看创建了哪些组
groupmod修改组
usermod -g 用户组 用户名
usermod -g group mygroup hadoop
usermod修改用户
6.用户及用户组
Linux 常用命令
0 条评论
回复 删除
下一页
职业:本科-IT
作者其他创作:
Linux 定时任务
95 2023-08-12
Nginx 进程结构
70 2023-08-04
Nginx 配置文件重载流程
105 2023-08-04
Nginx 热部署
92 2023-08-04
高并发核心技术 Redis
263 2023-01-08
Linux 常用命令完整版
229 2023-01-07
项目管理实战 20 讲
366 2022-10-20
如何讲好故事
474 2022-09-04
Maven
695 2022-07-21
Docker常用命令
357 2022-07-19
Tomcat Servlet容器处理流程
294 2022-04-15
HTTP请求处理流程
393 2022-04-15
跳槽工作HR询问70问
394 2022-04-14
如何爱上跑步
298 2022-04-14
如何爱上学习
799 2022-04-14
Git常用基础命令
456 2022-04-04
代码精进之路
660 2022-03-09
职场求生攻略
1282 2022-03-09
数据库服务器的优化步骤
333 2022-03-07
UML功能结构图
485 2022-01-24