Open guanhui07 opened 5 years ago
Centos常用命令
username:root
password:安装时设置的密码
其它终端登录 $ ssh root@192.168.0.23
cat /etc/redhat-release # CentOS 查看系统信息
uname -a # 查看内核/操作系统/CPU信息
head -n 1 /etc/issue # 查看操作系统版本
cat /proc/cpuinfo # 查看CPU信息
hostname # 查看计算机名
lspci -tv # 列出所有PCI设备
lsusb -tv # 列出所有USB设备
lsmod # 列出加载的内核模块
env # 查看环境变量
dmidecode | grep "Product Nmae" #查看服务器型号
free -m # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
du -sh <目录名> # 查看指定目录的大小
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载
# 查看内存的插槽数,已经使用多少插槽。每条内存多大,已使用内存多大
dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range
# 查看内存支持的最大内存容量
dmidecode|grep -P 'Maximum\s+Capacity'
# 查看内存的频率
dmidecode|grep -A16 "Memory Device"
dmidecode|grep -A16 "Memory Device"|grep 'Speed'
mount | column -t # 查看挂接的分区状态
fdisk -l # 查看所有分区
swapon -s # 查看所有交换分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE # 查看启动时IDE设备检测状况
ifconfig # 查看所有网络接口的属性
iptables -L # 查看防火墙设置
route -n # 查看路由表
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息
ps -ef # 查看所有进程
top # 实时显示进程状态
UTC: 整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。
GMT: 格林威治标准时间 (Greenwich Mean Time)指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。(UTC与GMT时间基本相同)
CST: 中国标准时间 (China Standard Time)。GMT + 8 = UTC + 8 = CST
DST: 夏令时(Daylight Saving Time) 指在夏天太阳升起的比较早时,将时钟拨快一小时,以提早日光的使用。(中国不使用)
硬件时钟: RTC(Real-Time Clock)或CMOS时钟,一般在主板上靠电池供电,服务器断电后也会继续运行。仅保存日期时间数值,无法保存时区和夏令时设置。
系统时钟: 一般在服务器启动时复制RTC时间,之后独立运行,保存了时间、时区和夏令时设置。
timedatectl # 等同于 timedatectl status
timedatectl set-time "YYYY-MM-DD HH:MM:SS" # 设置时间
timedatectl list-timezones # 列出所有时区
timedatectl set-timezone Asia/Shanghai # 设置时区
timedatectl set-ntp yes # 是否NTP服务器同步, yes或者no
# 将硬件时钟调整为与本地时钟一致
timedatectl set-local-rtc 1
hwclock --systohc --localtime # 与上面命令效果一致
# 硬件时间设置成 UTC
timedatectl set-local-rtc 1
hwclock --systohc --utc //与上面命令效果一致
w # 查看活动用户
id <用户名> # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务
# 查看网络接口统计数据的,两种发放
ip link # 或者下面方法
ip -s link
yum install net-tools # net-tools包提供了ifconfig命令
ifconfig -a # 查看IP地址
ip addr # 查看IP地址
route -n # 使用最快的速度查找主机的路由
cat /proc/version # 查看系统信息
uname -a # 方法二
uname -r #方法三
getconf LONG_BIT # 查看系统是64位还是32位
uname -a # 查看内核/操作系统/CPU信息
head -n 1 /etc/issue #查看操作系统版本
cat /proc/cpuinfo #查看CPU信息
hostname #查看计算机名
lspci -tv #列出所有PCI设备
lsusb -tv #列出所有USB设备
lsmod #列出加载的内核模块
env #查看环境变量
arch # 显示机器的处理器架构(1)
uname -m # 显示机器的处理器架构(2)
uname -r # 显示正在使用的内核版本
dmidecode -q # 显示硬件系统部件
hdparm -i /dev/hda # 罗列一个磁盘的架构特性
hdparm -tT /dev/sda # 在磁盘上执行测试性读取操作
cat /proc/interrupts # 显示中断
cat /proc/meminfo # 校验内存使用
cat /proc/swaps # 显示哪些swap被使用
cat /proc/version # 显示内核的版本
cat /proc/net/dev # 显示网络适配器及统计
cat /proc/mounts # 显示已加载的文件系统
lspci -tv # 罗列 PCI 设备
lsusb -tv # 显示 USB 设备
date # 显示系统日期
date 041217002007.00 # 设置日期和时间 – 月日时分年.秒
cal 2007 # 显示2007年的日历表
clock -w # 将时间修改保存到 BIOS
shutdown -h now # 关闭系统(1)
init 0 # 关闭系统(2)
telinit 0 # 关闭系统(3)
shutdown -h hours:minutes & #按预定时间关闭系统
shutdown -c #取消按预定时间关闭系统
shutdown -r now # 重启 (1)
reboot #重启 (2)
logout # 注销
ifconfig # 查看所有网络接口的属性
iptables -L # 查看防火墙设置
route -n # 查看路由表
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息
ps -aux | grep node # 查看`node`进程
ps -ef # 查看所有进程
top # 实时显示进程状态
killall -9 websocket # 干掉`websocket`服务进程
ps aux | grep mysql # 查看mysql进程
kill -9 35562 # 根据进程号杀
w # 查看活动用户
id <用户名> # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务
cat /var/log/messages # 查询日志的全部内容
head -5 /var/log/messages # 查询日志的前5行
tail -5 /var/log/messages # 查询日志的最新5行
sed -n '5,10p' /var/log/messages # 查询日志的5到10行
chkconfig –list # 列出所有系统服务
chkconfig –list | grep on # 列出所有启动的系统服务
rpm -qa
查看所有安装的软件包
man <命令>
获得命令帮助
# 安装下载工具wget
$ yum install wget
# 解压
$ wget https://nodejs.org/dist/v4.4.4/node-v4.4.4-linux-x64.tar.xz
https://nodejs.org/dist/v4.4.5/node-v4.4.5-linux-x64.tar.xz
# 测试安装
# 没有用到`gzip`压缩去掉`z`参数
$ sudo tar --strip-components 1 -xzvf node-v* -C /usr/local
yum错误:Cannot retrieve repository metadata (repomd.xml) for repository解决方法
cd /etc/yum.repos.d/
ls
找到yum.repos.d
这个目录,里面有个文件,以.repo
结尾的,例如zl.repo
删除
然后#yum clean all
http://dl.fedoraproject.org/pub/ http://rpms.remirepo.net/enterprise/
http://mirror.neu.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://centos.ustc.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://mirrors.hust.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://mirrors.zju.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://mirrors.cqu.edu.cn/CentOS/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://mirrors.cug.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://mirrors.neusoft.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://mirrors.skyshe.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://mirrors.nwsuaf.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://mirror.bit.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://mirror.lzu.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://ftp.sjtu.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://mirrors.yun-idc.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso http://mirrors.pubyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso
其它命令
sudo chmod 755 -R node
修改目录权限sudo lsof -nP -iTCP -sTCP:LISTEN
查看本地服务ps -ef | grep websocket
查看websocket进程ps aux | grep mysql
查看mysql进程sudo kill 443
杀掉进程给目录权限
sudo chmod -R 777 目录
搜索
find path -option [-print] [-exec -ok command] { }\;
.
来表示当前目录,用/
来表示系统根目录。-print
: find命令将匹配的文件输出到标准输出。-exec
: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;
,注意{ }
和\;
之间的空格。-ok
: 和-exec
的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。ls
ls最常用的参数有三个: -a -l -F。
ls –a
Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls - a除了显示一般文件名外,连隐藏文件也会显示出来。 ls –l 该参数显示更详细的文件信息。 ls –F 使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数。但是现在基本上所有的Linux发行版本的ls都已经内建了-F参数,也就是说,不用输入这个参数,我们也能看到各种分辨符号。
cd
cd aaa 进入aaa目录 cd 命令后不指定目录,会切换到当前用户的home 目录 cd ~ 作用同cd后不指定目录,切换到当前用户的home 目录 cd - 命令后跟一个减号,则会退回到切换前的目录 cd .. 返回到当前目录下的上一级目录
pwd
mkdir 和 rmdir
两个命令都支持-p参数,对于mkdir命令若指定路径的父目录不存在则一并创建,对于rmdir命令则删除指定路径的所有层次目录,如果文件夹里有内容,则不能用rmdir命令
如下:
mkdir循环创建目录
How do I make multiple directories at once in a directory?
cp
cp 1.txt ../test2
cp 1.txt 2.txt
cp -r a b
cp file_1.txt file_2.txt file_3.txt /home/pungki/office
mv
将一个文件移动到另一个目录:mv 1.txt ../test1 将一个文件在本目录改名:mv 1.txt 2.txt 将一个文件一定到另一个目录并改名:mv 1.txt ../test1/2.txt
rm命令
find
例子:
du、df命令
如果du命令不加任何参数,那么返回的是整个磁盘的使用情况,如果后面加了目录的话,就是这个目录在磁盘上的使用情况。
du -hs
指定目录 查看指定目录的总大小du -hs ./*
查看当前目录下的所有文件夹和文件的大小这两个命令都支持-k,-m和-h参数,-k和-m类似,都表示显示单位,一个是k字节一个是兆字节,-h则表示human-readable,即友好可读的显示方式。
cat命令
cat file1
显示file1文件内容cat file1 file2
依次显示file1,file2的内容cat file1 file2 > file3
把file1, file2的内容结合起来,再“重定向(>)”到file3文件中。>
是右重定向符,表示将左边命令结果当成右边命令的输入,注意:如果右侧文件是一个已存在文件,其原有内容将会被清空,而变成左侧命令输出内容。如果希望以追加方式写入,请改用">>"重定向符。如果">"左边没有指定文件,如: cat >file1,将会等用户输入,输入完毕后再按[Ctrl]+[c]或[Ctrl]+[d],就会将用户的输入内容写入file1。
echo命令
参数:
-n
显示字串时在最后自动换行-e
支持以下格式的转义字符, -E 不支持以下格式的转义字符/a
发出警告声;/b
删除前一个字符;/c
最后不加上换行符号;/f
换行但光标仍旧停留在原来的位置;/n
换行且光标移至行首;/r
光标移至行首,但不换行;/t
插入tab;/v
与/f相同;//
插入/字符;/nnn
插入nnn(八进制)所代表的ASCII字符;示例:
注意事项: 在Linux使用的bash下,单引号’’和双引号是有区别的,单引号忽略所有的转义,双引号不会忽略以下特殊字符: Dollar signs ($),Back quotes (`),Backslashes (/),Excalmatory mark(!)
示例如下:
more,less,clear
less的常用动作命令:
y
向上移动一行;b
向上滚动一屏;d
向下滚动半屏;h
less的帮助;u
向上洋动半屏;w
可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示;g
跳到第一行;G
跳到最后一行;p n%
跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示;/pattern
搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词;v
调用vi编辑器;q
退出less!command
调用SHELL,可以运行命令;比如!ls 显示当前列当前目录下的所有文件;clear
命令 clear命令是用来清除当前屏幕显示的,不需任何参数,和dos下的cls命令功能相同。head,tail
wc命令
该命令用于统计指定文件中的字节数、字数、行数。该命令各选项含义如下:
这些选项可以组合使用。输出列的顺序和数目不受选项的顺序和数目的影响。总是按下述顺序显示并且每项最多一列。 行数、字数、字节数、文件名 如果命令行中没有文件名,则输出中不出现文件名。
例如:
缺省参数为-lcw,即wc file1 file2命令的执行结果与上面一样。
grep 命令
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。 示例:
man,logout命令
管道和xargs
管道
利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。 注意:管道左边命令的输入作为管道右边命令的输入(命令的输入是一定的),不是参数,并不是所有命令都支持管道 例子:ls | grep a 查看当前目录下名称包含a的文件或文件夹
xargs
大多数 Linux 命令都会产生输出:文件列表、字符串列表等。但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file 命令显示文件类型(可执行文件、ascii 文本等);你能处理输出,使其仅显示文件名,目前你希望将这些名称传递给 ls -l 命令以查看时间戳记。xargs 命令就是用来完成此项工作的。 注意:find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去
例子:
basename 和 dirname
basename用于查看文件不含路径的名字,dirname则用于查看文件路径,使用效果我们测试一下便知: