目录
参考:
视屏:linux命令大全
1.系统信息
uname
#可以显示电脑以及操作系统的相关信息
uname -a
# 显示主机、内核等系统信息
hostname
# 显示系统主机名
hostname -i
# 显示系统Ip地址
cal
# 显示本月的日历
date
# 显示当前时间
uptime
# 显示运行时间
whereis XXX
# 显示XXX程序可能的位置
which XXX
# 显示XXX命令对应执行的程序
2.硬件使用情况
硬件:
cat /proc/cpuinfo
# 显示CPU信息
cat /proc/meminfo
# 显示内存信息
free
# 显示系统的内存使用情况,包括物理内存、交换内存(SWAP)和内核缓冲区内存等,单位为Kb
free -m
# -m表示用MB为单位显示内存信息
man XXX
#显示XXX命令的帮助手册信息
cat /proc/cpuinfo|grep name|cut -f2 -d:|uniq -c
# 查看CPU型号
cat /proc/cpuinfo|grep "physcial id"|sort|uniq|wc -l
# 查看物理cpu个数
cat /proc/cpuinfo|grep "cpu cores"|uniq
# 查看每个物理CPU中core的个数(核数)
cat /proc/cpuinfo|grep "processor"|wc -l
# 查看逻辑CPU个数
3.磁盘使用情况
df
#显示磁盘空间信息
df -h
#以容易阅读的方式显示磁盘使用情况
df -i
#显示文件系统上的空闲索引节点(inode)
拓展:
inode就是索引节点的意思,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部分,一部分是inode,一部分是Block,Block是用来存储数据用的。inode是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相应的文件。而服务器的block计算还有剩余,但是inode已经用满时,在创建目录或者文件时,系统仍然提示磁盘空间不足。
解决办法:删除文件占用多的目录。
du
#显示目录和文件的大小,逐级进入指定目录的每一个子目录并显示该目录站用文件系统数据块(1024字节)的情况。若没有给出指定目录,则对当前目录进行统计。
du /home
#指定为home目录
du -sh
#-s参数是求得总大小的意思,-h是用一个比较好阅读的方式显示
fdisk -l
#显示磁盘和分区信息
findmnt
#显示当前挂载的文件系统列表,以树状的格式显示
mount device-path mount-point
挂载设备到目录(光盘iso,移动硬盘,U盘,NFS文件共享)
一个文件创建,就新生成了一个inode节点,且inode节点的引用计数为1.当文件被一 个进程打开,则在内存中缓冲建立此inode节点缓存,且其引用计数加1。一个文件可以被多次打开,创建多个文件描述符,但对应的inode节点只有一个,对应的磁盘存储只有一个,只是引用计数每打开一次加1。
当文件被rm,目录项被删除,如果其对应的inode节点的引用计数为0,则删除对应的inode节点,其对应磁盘可被再申请;但如果此文件被其他进程打开,则其对应的inode节点的引用计数不为0,则不会删除对应的inode节点,其对应磁盘不能被再申请:只有当前文件被所有使用进程close后,系统才会删除对应的inode节点,其对应磁盘可被再申请。
一个被某进程打开的文件被rm后,其期录项被删除了,在du命令下是不能被统计到,而其inode没有被删除,在df命令下是可以被统计到的,这就是在du和df存在差别的原因。
4.文件和目录操作
ls
#list 显示当前工作目录所含文件和子目录
ls -al
#-l(简写为ll)查看详细的信息
#-a显示普通文件和隐藏文件的详细信息
pwd
#显示当前工作目录的绝对路径--print working directory(pwd)
cd XXX
#转到XXX目录 --Change directory(cd)
cd ..
#转到上一级目录
cd
#转到当前目录的家目录 ==cd ~
mkdir dir1
#创建dir1目录 --make directory
rm file1
#删除file1文件 --remove
rm -r dir1
删除dir1目录及内含文件
rm -f file1
#强制删除file1文件 ---f ()force
rm -rf dir1
#强制删除dir1目录及内含文件
~当前目录的家目录,其实就是root目录
复制:copy
cp file1 file2
#复制file并命名为file2,若file2存在则内容覆盖(需要确认)
cp -r dir1 dir2
#递归拷贝dir1并命名为dir2,若dir2存在,则复制dir1目录中文件到dir2
移动:move
mv file1 file2
#将file1重命名为file2,若file2存在,则覆盖内容
软连接:--对应windows创建一个快捷方式
ln -s file1 link
#创建文件1文件的软连接 --目标目录或者文件 软连接地址
例如:ln -s /home/test/dir1 dir
结果如下图所示
新建文件:
touch file1
#file1不存在时,创建file1;若存在,则修改文件的时间属性为当前时间。
以上测试可以在xftp上面验证。
查看文件:
cat file1
#查看file1文件类容
cat file1 > file2
#将file1的文件内容输入到file2文件中
more file1
#按页查看file1文件内容,从前向后翻看文件,按回车键一行一行打印,按空格键一页一页打印。
less file1
#按页查看file1文件内容,可以往前往后翻看文件--上下键翻看 -q键退出查看模式
head -n 5 file1
#显示file1文件的前5行,不加5行,就默认为10行
tail -n 5 file1
#显示file1文件的后5行,和head一样
tail -f file1
#实时显示file1文件的最新增加内容,通常用来查看动态更新日志文件
#ctrl+C退出
wc/path/file
#输出file文件的行数,单词书数和字节数
5.用户相关操作
查看:
whoami
#显示当前登录用户
w
#用来查看登陆者的信息及他们的行为
添加:
groupadd admin
#添加admin用户组
cat /etc/group
#查看用户组是否添加成功
adduser tom
#添加一个tom用户
cat /etc/passwd
#查看用户是否添加成功
passwd tom
#修改tom用户的密码
切换: change user
su tom
#切换到tom用户,#号提示符为超级管理员,¥为普通用户提示符。
删除:
userdel tom
#删除tom用户,删除之前先exit,退出用户
家目录: 用户的家目录用于存放用户的文件;包括文本文档、音乐、图像或视频等,也可能包括一些记录用户使用偏好、软件首选设置的配置文件:如浏览器书签,喜爱的桌面壁纸和主题、特定软件为访问外部服务而保存的密码等。用户可以在该目录中安装可执行软件,但这些软件只能向拥有该目录权限的用户开放。 家目录可以进一步组织子目录来使用。
用户家目录的内容由文件系统权限保护,一般默认只有用户自身和管理人员有访问的权限。 任何获得管理权限的用户都有权访问文件系统上任意受保护的内容,包括其他用户的家目录。Linux系统在 /home 中。
6.搜索命令
在文件中查找内容:
grep "被查找的字符串" files
#在文件中搜索特定的字符
grep -r "被查找的字符" dir
#在目录中递归搜索特定的字符并打印下来
XXX|grep "被查找的字符串"
#在XXX命令的输出结果中查找匹配的信息,相当于过滤的作用
查找文件:
find /home -name "index*"
#在/home目录中查找以“index”开头的文件名==*-匹配所有,“*log”以log为结尾的文件
find . -name "字符串"
#从当前目录里面查找文件目录
find /home -size + 10000k
#在/home目录中查找大于10000k的文件----查找磁盘里面的大文件删除用
7.文件权限命令
change mode:
chmod XXX file
#修改文件权限属性:4-可读(read),2-可写(write),1-可执行(execute)
#顺序:文件所有者/组成员/其他人
chmod 777 file
#修改文件权限为所有用户可读可写可执行,其他人可读可执行
chmod -R XXX file
#对目录的权限进行修改
change owner:
chown owner-user file_name
#修改该文件所属用户
chown owner-user:owner-group file_name
#更改文件的所属用户和所属组
chown owner-user:owner-group directory
#更改目录的所属用户和所属组
8.进程命令
查看进程:
ps
#显示当前活动的进程
ps aux
#显示详细进程信息
ps aux|grep tomcat
#搜索进程tomcat的进程信息
ps -ef | grep tomcat
#用标准的格式显示tomcat的进程信息
user:用户
%CPU:CPU的占用情况
%MEM:内存的占用情况
VSZ:进程使用虚拟进程的量,单位为KB
RSS:进程站用内存的固定量
STAT:S表示休眠;R表示正在运行,<表示进程优先级比较高的进程,+表示在后台的进程
PID:进程ID
TTY:终端号
TIME:时间
CMD:命令
杀死进程:
kill pid
#杀掉进程id为xxx的进程
killall proc
#杀死所有名称为proc的进程
top
#用于实时显示所有进程的状态 ctrl+c退出
bg
#将一个在后台暂停的命令调度到后台继续运行
fg
#将后台中的命令调至前台继续运行
#扩展:
#1.ctrl+z可以将一个正在前台执行的命令放到后台,并且暂停
#2.在运行的指令末尾添加“&”可以让命令在后台运行
pgrep ssh
#获取ssh进程的进程id
pstree
#将所有进程以树状图显示
9.网络操作
ifconfig
#显示网络设备信息
IP addr show
#显示网卡配置信息
ping host
#ping主机--确定网络通畅--ctrl-c
ping www.baidu.com
#检测能不能通信,前三种,我试了云主机不能用
whois domain
whois google.com
#获取域名信息====yum install -y whois #用这个,命令先安装下
dig domain
#获取域名的DNS信息-+short展示精简结果
dig -x host
#反向查找主机--PTR
hostname -i
#获取本地IP地址
wget file_url
#下载一个文件
wget -c file_url
#断点继续下载文件
wget -r file_url
#从url一次下载文件
#-r 表示递归下载,会下载所有的链,不过要注意的是,不要单独使用这个参数
#因为如果你要下载的网站也有别的网站的链接,wget也会不把别的网站的东西
#下载下来,所以要加上-np这个参数,表示不下载别的站点的链接。
netstat -apn
#查看所有进程和所有端口的使用情况
netstat -apn | grep 8080
#查看8080端口的占用情况
10.解压缩命令
tar命令提示符:
-c
#打包
-t
#内容目录
-x
#解压
-z
#使用zip或者gzip压缩
-v
#显示详细信息
-f
#指定文件
tar -cf XXX.tar files
#把文件打包成XXX.tar
tar -xf XXX.tar
#在当前目录下解压XXX.tar文件
tar -tf XXX.tar
#显示tar文件的内容
tar -zcvf XXX.tar.gz source-filder
#从源文件夹创建tar.gz格式的压缩归档文件
tar -zxvf XXX.tar.gz
#在当前目录解压XXX.tar.gz文件,并显示解压过程
gzip XXX
#压缩XXX文件并命名成XXX.gz
gzip -d XXX.gz
#解压XXX.gz文件---decompress
11.shh连接
ssh user@host
#使用user连接host主机
ssh -p port user@host
#使用指定端口和指定用户连接主机
ssh -D port user@host
#绑定本地端口,通过ssh连接和传送数据至远程主机--本地socks5代理
#ssh会建立一个socks5服务,去监听本地8080端口。一旦有数据传向8080端口,
#通过本地的socks5代理的数据会通过ssh链接发往远程主机。
ssh host
#通过ssh默认端口22安全链接到主机
12.rpm包安装和卸载&源码编译安装
rpm包安装和卸载:
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe
rpm -i XXX.rpm
#安装一个rpm包
rpm -e pkg_name
#卸载一个rpm包
源码编译安装:–压缩包、源码包–安装
./configure
#生成Makefile,为下一步的编译做准备==shell
make
#编译程序--用到Makefile文件
make install
#安装程序 --也从Makefile中读取指令,安装到指定位置
make clean
#清除编译痕迹