Linux常用的基本命令

Linux常用的基本命令

前言: Centos7运行环境

1.开关机

sync:把内存中的数据写到磁盘中(关机,重启都需先执行sync)
shuttondown -r now 或者reboot:立刻重启
shuttondown -h now:立刻关机
shuttondown -h 20:00:预定时间进行关闭系统(晚上八点关机,如果现在超过八点,则明晚八点)
shuttondown -h +10:预定时间关闭系统(10分钟后关机)
shuttondown -c:取消按预定时间关闭系统

2.系统信息

who am i:查看当前使用的终端
who 或 w:查看所有的终端
uname -m:显示机器的处理器架构(如x86_64)
cat/proc/version:查看linux版本信息
uname -r:显示正在使用的内核版本
lsb_release -a:查看系统发行版本(CentOS7)(没有这个命令先安装yum install -y redhat-lsb-core)
rpm -qa|grep kernel-devel:查看Kernel-devel版本(安装软件时编译内核用,故需要保持内核一致性)
yum install -y “kernal-devel-uname-r==$(uname -r)”:安装和Linux内核版本匹配的kernel-devel
hostnamectl set-hostname 主机名:修改主机名(包括静态,瞬态和灵活主机名,如有域名解析记得手动更新
/etc/hosts)
date:显示系统日期(date+%Y/%m/%d:显示效果如2018/01/01)
date 070314592018.00:设置时间(格式为月日时分秒)
clock -w:将时间修改保存到Blos
cal 2018:显示2018日历表
clear:清空命令行
ifconfig:显示或者设置网卡(查ip等)(类似windows中ipconfig)
ping -c www.baidu.com:测试百度与本机的连接情况(-c 3表示测试3次)
cat/proc/cpuinfo:显示cpu的信息
cat/proc/cpuinfo|grep “physical id”|sort|uniq|wc -l:查看物理cpu个数
cat/proc/cpuinfo|grep “cpu cores”|uniq:查看每个物理cpu的核数
cat/proc/cpuinfo|grep “processor”|wc -l:查看逻辑cpu个数即线程数

3.系统性能

top:动态实时显示cpu,内存,进程等使用情况(类似windows下的任务管理器)
top -d -p 7427:-d为画面更新的秒数,默认为5秒,-p为指定进程pid的信息
vmstat 2 10:每隔2秒采集一次服务器状态,采集10次(查看内存,io读写状态,cpu)
free -h:查看系统内存及虚拟内存使用情况
df -h:显示磁盘空间的使用情况
iostat:可查io读写,cpu使用情况
sar -u 3 5:查看cpu使用情况(3秒一次,共5次)
sar -d 2 3:评估磁盘性能
ps aux|grep firefox:获取火狐的进程号(PID)(可查看进程占用cpu,内存百分比及进程出发指令的路径)
kill -9 进程号:强制杀死进程
systemctl:查看正在运行的服务

4.文件和目录

cd:是change directory的缩写,用来切换工作目录,语法:cd[相对或者绝对路径或者特殊字符]
?
cd:进入改用户的主目录~(root用户为/root,其他用户为/home/用户名)
cd …:返回上一级目录
cd -:返回上次所在的目录
cd /:返回根目录(绝对路径)
cd ./目录1/目录2:进入当前目录下的子目录(相对路径)
?
pwd:显示工作路径(Print Working Directory的缩写)
ls -a:列出文件下所有的文件,包括以”.”开头的隐藏文件
ls -lh *.log:列出文件详细信息(.log结尾,*为通配符代表任意多个字符)
?
file 文件或目录:显示文件的类型 (目录,text,zip,shell脚本等)
mkdir dir1:创建目录(dir1)(mkdir为make directory的缩写)
mkdir -p ./dir1/dir2:递归创建目录(-p:父目录不存在时,同时建立)
touch a.txt:创建文件a.txt
?
rm 文件:删除文件
rm -r 目录或文件:删除目录(及目录下所有文件)(非空也可以)
rm -rf 目录或文件:强制删除 如:rm -rf * 为删除当前目录下所有文件
find -inum 1842601 -exec rm -rf {}:删除乱码文件或目录(会提示找不到此文件或文件夹但其实已经删除)(上传中文文件会乱码,rm命令删除不了)(先使用ls-i命令找到inode,即文件或目录前面的数字字符串,如1842601;)
?
mv a b :移动或者重命名一个文件或者目录(存在即移动目录或覆盖文件,不存在即改名)
mv /opt/git/g /opt/a :移动g到opt目录下并改名为a(a目录不存在,若存在则为移动g到a目录下)
mv -t ./test a.txt b.txt :移动多个文件到某目录下
?
cp -ai /opt/abc /opt/git/ :复制abc目录(或文件)到git目录下(选项a表示文件的属性也复制、目录下所有文件都复制;i表示覆盖前询问)
?
ln -s /opt/a.txt /opt/git/ :对文件创建软链接(快捷方式不改名还是a.txt)
ln -s /opt/a.txt /opt/git/b :(快捷方式改名为b)(下面的一样可以改名)
ln -s /opt/mulu /opt/git/ :对目录创建软链接
ln /opt/a.txt /opt/git/ :对文件创建硬链接

5.文件权限:

chmod [-R] 777文件或目录 :设置权限(chmod a+rwx a=chmod ugo +rwx a=chmod 777 a)
?
chmod [{ugoa}{±=}{rwx}][文件或目录] :如chmod u-w,g+x,o=r test.txt为user(拥有者)去掉写权限,
group(所属组)加上执行权限,other(其他人)权限等于只读;
?
chown [-R] admin:root /opt/ :变更文件及目录的拥有者和所属组(-R递归处理所有文件和文件夹,admin为拥有者,root为所属者)

6.文件查找

locate a.txt :在系统全局范围内查找文件名包含a.txt字样的文件(比find快);
?
find /home -mtime -2 :在/home下查最近224小时内改动过的文件
find . -size +100M :在当前目录及子目录下查找大于100M的文件
find . -type f :f表示文件类型为普通文件(b/d/c/p/l/f 分别为块设备、目录、字符设备、管道、符号链接、普通文件)
find . -mtime +2 -exec rm {} ; :查出更改时间在2
24小时以前的文件并删除它**
?
grep -i ‘HELLO’ . -r -n :在当前目录及子目录下查找文件内容中包含hello的文件并显示文件路径(-i表示忽略大小写)
?
which java :在环境变量$PATH设置的目录里查找符合条件的文件,并显示路径(查询运行文件所在路径)
?
whereis java :查看安装的软件的所有的文件路径(whereis 只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令)

7.查看文件内容

cat [-n] 文件名 :显示文件内容,连行号一起显示
?
less 文件名 :一页一页的显示文件内容(搜索翻页同man命令)
?
head [-n] 文件名 :显示文件头n行内容,n指定显示多少行
?
tail [-nf] 文件名:显示文件尾几行内容,n指定显示多少行,f用于实时追踪文件的所有更新,常用于查阅正在改变的日志文件(如tail -f -n 3 a.log 表示开始显示最后3行,并在文件更新时实时追加显示,没有-n默认10行)
?
sed -n ‘2,$p’ ab :显示第二行到最后一行;
?
sed -n ‘/搜索的关键词/p’ a.txt :显示包括关键词所在行
?
less a.txt |grep 搜索的关键词 :显示包括关键词所在行
?
cat -n a.txt |grep 搜索的关键词 :显示包括关键词所在行(连行号一起显示)
?
cat filename |grep abc -A10 :查看filename中含有abc所在行后10行(A10)、前10行(B10)内容
?
less a.txt|grep git :显示关键词所在行,管道符”|”它只能处理由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后传递给下一个命令,作为标准的输入;
?
cat /etc/passwd |awk -F ‘:’ ‘{print $1}’ :显示第一列

8.文本处理

ls -l>file :输出重定向>(改变原来系统命令的默认执行方式):ls -l命令结果输出到file文件中,若存在,则覆盖
?
cat file1 >>file :输出重定向之cat命令结果输出追加到file文件(>表示覆盖原文件内容,>>表示追加内容)
?
ls fileno 2>file : 2>表示重定向标准错误输出(文件不存在,报错信息保存至file文件);
?
cowsay ?
sed -i ‘4, d ′ a . t x t : 删 除 第 四 行 到 最 后 一 行 ( d’ a.txt :删除第四行到最后一行( da.txt表示最后一行)(sed可以增删改查文件内容)
?
sed -i ‘$a 增加的字符串’ a.txt :在最后一行的下一行增加字符串
?
sed -i ‘s/old/new/g’ a.txt :替换字符串;格式为sed ‘s/要替换的字符串/新的字符串/g’ 修改的文件
?
grep -o ‘关键词’ test.log|wc -l :统计某个关键词在某个文件中出现的次数(如出现3次输出3)
?
vim 文件:编辑查看文件(同vi)

9.用户与权限

useradd 用户名 :创建用户
?
userdel -r 用户名 :删除用户:(-r表示把用户的主目录一起删除)
?
usermod -g 组名 用户名 :修改用户的组
?
usermod -aG 组名 用户名 :将用户添加到组
?
groups test :查看test用户所在的组
?
cat /etc/group |grep test :查看test用户详情:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
?
passwd [ludf] 用户名 :用户改自己密码,不需要输入用户名,选项-d:指定空口令,-l:禁用某用户,-u解禁某用户,-f:强迫用户下次登录时修改口令
?
groupadd 组名 :创建用户组
?
groupdel 用户组 :删除组
?
groupmod -n 新组名 旧组名 :修改用户组名字
?
su – 用户名:完整的切换到一个用户环境(相当于登录)(建议用这个)(退出用户:exit)
?
su 用户名 :切换到用户的身份(环境变量等没变,导致很多命令要加上绝对路径才能执行)
?
sudo 命令 :以root的身份执行命令(输入用户自己的密码,而su为输入要切换用户的密码,普通用户需设置/etc/sudoers才可用sudo)
?
SSH 免密登录 :
?
#使用OpenSSH生成密钥
ssh-keygen -t rsa
#公钥信息写入authorized_keys文件中并设置权限
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
#生成putty的私钥(Putty使用的私钥格式和OpenSSH生成的有点不同,需要转换一下putty才能使用)
把私钥id_rsa下载到本地后后缀改成.ppk,如id_rsa_ip_commonuser.ppk
使用puttygen工具的“Load”读取id_rsa文件,点击“Save private key”保留私钥;
putty关联私钥文件即可登陆服务器

10.磁盘管理

fdisk -l :查看磁盘信息(可查各个硬盘容量大小、可查各硬盘分区情况)(各硬盘或硬盘下分区必须挂载到某个目录才能被使用)
?
fdisk /dev/sdb :对硬盘sdb创建分区
?
mkfs.ext4 /dev/vdb1 :修改格式化硬盘分区vdb1的文件系统类型为ext4
?
df -TH :显示磁盘的空间使用情况、文件系统类型、挂载点(硬盘挂载了才会显示)
?
df -h /var/log :(显示log所在分区(挂载点)、目录所在磁盘及可用的磁盘容量)
?
du -sm /var/log/ | sort -rn* : 根据占用磁盘空间大小排序(MB)某目录下文件和目录大小
?
mount /dev/sda1 /mnt :硬盘sda1挂载到/mnt目录(mount 装置文件名 挂载点)
?
mount -t cifs -o username=luolanguo,password=win用户账号密码,vers=3.0 //10.2.1.178/G /mnt/usb :远程linux 共享挂载windows的U盘,G为U盘共享名,需设置U盘共享
?
mount -o loop /opt/soft/CentOS-7-x86_64-DVD-1708.iso /media/CentOS :挂载iso文件
?
umount /dev/sda1 :取消挂载(umount 装置文件名或挂载点)

11.压缩,解压和打包备份

file 文件名 :查文件类型(可看是用哪一种方式压缩的)
?
tar -zxvf a.tar.gz -C ./test :解压tar.gz到当前目录下的test目录
?
tar -zcvf /opt/c.tar.gz ./a/ :压缩tar.gz(把当前目录下的a目录及目录下所有文件压缩为 /opt/目录下的c.tar.gz,这样tar -zxvf c.tar.gz解压出来带有目录a)
?
tar -jxvf a.tar.bz2 :解压tar.bz2(到当前目录)
?
tar -jcvf c.tar.bz2 ./a/ :压缩tar.bz2(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.tar.gz2)
?
unzip a.zip :解压zip(到当前目录)
?
unzip -o mdmtest.war -d /opt/mdm :推荐使用unzip解压war包(-o覆盖原有文件,-d指定文件解压后存储的目录)
?
zip -r c.zip ./a/ :压缩zip(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.zip
?
bzip2 -k file1 : 压缩一个 ‘file1’ 的文件(-k表示保留源文件)(bzip2格式,比gzip好)
?
bzip2 -d -k file1.bz2 : 解压一个叫做 ‘file1.bz2’的文件
?
gzip file1 : 压缩一个叫做 ‘file1’的文件(gzip格式)(不能保留源文件)
?
gzip -9 file1 : 最大程度压缩
?
gzip -d file1.gz : 解压缩一个叫做 ‘file1’的文件

12.软件安装

1.二进制(Binaries)包

a.yum安装

yum install epel-releas :安装第三方yum源EPEL(企业版 Linux 附加软件包的简称)
yum repolist enabled :显示可用的源仓库(/etc/yum.repos.d/目录下配置)
yum install yum-fastestmirror :自动选择最快的yum源
yum list installed |grep java :列出已安装的软件(查看已安装的JDK)
yum remove java-1.8.0-openjdk.x86_64 :卸载软件(卸载JDK)
*yum list java ** :列出已安装和可安装的软件(查看yum库中的JDK包)
yum install [-y] java-1.8.0-openjdk :安装软件JDK(-y自动安装)(推荐这种方式安装)
yum install docker-ce-18.03.1.ce :安装指定版本的软件(已知docker-ce.x86_64 18.03.1.ce-1.el7.centos,则rpm包名为docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm)
**yum check-update [kernel] ** :列出所有可更新的软件(检查更新kernel)
yum update tomcat :更新软件(可所有)
rpm -ql 软件名称 :查询yum安装路径(软件名称可通过rpm -qa|grep java)
yum info kernel :查看软件(kernel)的信息
yum clean all :(清除缓存,使最新的yum配置生效)

b.rpm包手动下载安装

wget -P /opt https://网址 :下载到/opt目录
?
rpm -ivh wps-office-版本.x86_64.rpm :安装rpm包(包要先下载)(要先装依赖包)
?
rpm -e wps-office :卸载软件(注意不要软件名不要版本号)
?
rpm -qa |grep wps :查看安装的rpm包(可用于查询rpm包是否被安装)
?
rpm -ql 软件名称 :查看rpm包安装路径(软件名称可通过rpm -qa|grep java)
c.apt方式安装

apt-get install aptitude :安装aptitude工具,实现依赖自动安装,依赖版本自动降级或升级
?
aptitude install 软件 :安装软件(推荐这种方式安装)
?
apt-cache search 软件 :搜索软件
?
apt-get install 软件 :安装软件
?
apt-get purge 软件 :卸载软件(包括配置文件,只删除软件purge换成remove)
?
apt-get upgrade :更新所有已安装的软件包
?
apt-get update :升级列表中的软件包
?
apt-get clean :从下载的软件包中清理缓存

d.deb包安装

dpkg -i package.deb :安装一个 deb 包
dpkg -r package_name :从系统删除一个 deb 包
dpkg -l |grep chrome :查询系统中所有已经安装的 deb 包
dpkg -L 软件名称 :查软件安装的文件

2.源代码(Source)包

a.编译安装

tar -jxvf hello-2.2.tar.bz2 :解压
./configure –prefix=/opt/软件目录名称 :为编译做好准备,加上 prefix 手动指定安装路径
make :编译
make install :安装
make clean :删除安装时产生的临时文件
vim /etc/profile export PATH=$PATH:/opt/目录/bin :手动指定安装路径需要加path
hello :执行软件:看INSTALL和README文件(是否源码包、如何安装、执行都看这两个)
rm -rf 软件目录名称 :卸载软件

13.服务与进程

netstat -ntlp :查看服务器所有被占用端口
netstat -lnp|grep 端口号/进程号/进程名 :根据查端口是否打开确认服务是否启动,配合ps命令可查服务占用的端口
常用参数:
-p:获取进程名、进程号;
-n:禁用域名解析功能,查出IP且速度快;
-l:只列出监听中的连接;
-t:只列出 TCP协议的连接。
示例:ps aux|grep tomcat netstat -lnp|grep 进程号 :查tomcat服务占用的端口;
ps aux|grep 进程号/进程启动命令/服务名 :进程查看命令ps(可查进程状态;进程占用cpu、内存;配合netstat根据某服务端口查出进程号用于杀进程,查服务启动命令及服务路径 )

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91338 人正在系统学习中

来源:java_久孤

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月20日
下一篇 2021年5月20日

相关推荐