linux - 命令总结
一、快捷键
ctrl + c 取消
ctrl + l 清屏
ctrl + d 退出当前用户
esc + . (点) 使用上一个命令的最后一个东西
vi / vim:
D 删除光标所在位置的内容到行尾
G 移动到文件的最后一行
gg 移动到文件的第一行
o 在当前的下一行插入一个空行并进入到编辑模式
:set nu / :set nonu
二、特殊符号
> 输出重定向
>> 追加重定向
< 输入重定向
<< 追加输入重定向
* 所有
. 当前目录
.. 当前目录的上一级目录
~ 当前用户的家目录
补充:
正则表达式(三剑客grep sed awk)
-
^ ^oldboy 以oldboy开头的行
-
| 或者 高级正则里面的 egrep grep -E
三、命令
-
whoami 当前用户名
-
hostname 当前主机名
-
pwd 当前的位置
-
ifdown eth0 关闭网卡
-
ifup eth0 开启网卡
-
ifconfig 查看网卡信息 ip地址
-
ping 10.0.0.200 ping服务器的ip,查看道路是否通畅
-
telnet 10.0.0.200 22 查看服务器是否提供服务
-
man 查询帮助 eg: man ls
-
man ls
-
linux内置命令
-
man cd
-
help cd 简介
sudo su 转到root用户下
su - alice 转到alice用户下
CentOS关机命令:
重启命令
reboot
shutdown -r now 立刻重启
shutdown -r 10 过10分钟自动重启
shutdown -r 20:35 在时间为20:35时候重启
shutdown -c 取消重启
关机命令
halt
poweroff 立刻关机
shutdown -h now 立刻关机
shutdown -h 10 10分钟后自动关机
补充
tar命令
解包:tar zxvf FileName.tar
打包:tar czvf FileName.tar DirName
上传
scp deploy.tar root@10.0.0.200:/data/
1.压缩命令:
命令格式:tar -zcvf 压缩文件名.tar.gz 被压缩文件名
可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。
2.解压缩命令:
命令格式:tar -zxvf 压缩文件名.tar.gz
解压缩后的文件只能放在当前的目录。
ps -ef|grep (uwsgi)(***)
kill -9 ***
chmod 777 /data/
service nginx end
service nginx start
-
mkdir 创建目录 -p 创建多层目录
-
mkdir /data
-
mkdir -p /oldboy/test
-
mkdir -pv /oldboy/test/a/b
-
ls list 列表 显示目录里面得内容
-
ls
-
ls -l
-
ls -l /data/
-
-l 显示详细信息 ls -l == ll
-
ls -l |grep "^d"
-
ls -l |awk '$2>1'
-
ls -l $(find -type f -name "*.log" -mtime +7)
-
-F 给不同类型得文件加上不同得尾巴 目录/
-
ls -F |grep '/'
-
-r 逆序
-
-t 按照文件的修改时间进行排序
-
ls -lrt # 逆序查询最近修改的文件
-
ll -lrt
-
cd 进入到目录中
-
cd /data
-
cd ../
-
cd - 回上一次打开的目录
-
cd - == cd $OLDOWD
-
cd . 当前目录 cp /etc/hosts .
-
cd .. 当前目录的上一级目录
-
cd ~ 当前用户的家目录
-
root用户 ~ == /root root用户
-
普通用户 ~ == /home/
-
cd == 回家目录
-
touch 创建文件 更新文件的时间戳
-
touch /data/oldboy.txt
-
touch /tmp/test.txt /mnt/test.txt # 创建多个文件
-
vi / vim 编辑器 vi - 记事本;vim - notepad++ emeditor word
-
vim /data/oldboy.txt
-
vim /etc/profile
-
vim /root/.bashrc
-
i # 编辑(插入)模式
-
ESC
-
:wq # 保存退出
-
:q # 退出
-
:q! # 退出,不保存
-
:wq! # 退出,保存,强制
-
vim快捷键
-
G # 移动光标到最后一行
-
gg # 光标移到文件的第一行
-
o # 光标所在的位置,下一行,插入一个空行,并进入编辑模式
-
:?xxx 查找
-
n
-
shift + n
-
:noh 取消查找
-
快捷键:
-
D 删除光标所在位置的内容到行尾
-
G 移动文件到最后一行
-
gg 移动文件到第一行
-
o 在当前的下一行插入一个空行并进入到编辑模式
-
cat 查看文件的内容
-
cat /data/oldboy.txt
-
cat >>/data/oldboy.txt <<EOF
-
I
-
am
-
studing
-
linux
-
EOF
-
cat /etc/redhat-release
-
CentOS release 6.9 (Final)
-
-n 显示文件的内容和行号
-
cat -n nginx.conf
-
echo 把echo后面的文件显示出来 默认显示到屏幕上
-
echo hello oldboy linux
-
echo hello oldboy linux >>/data/oldboy.txt
-
ech hello >>/data/oldboy.txt 2>>/data/oldboy.txt # 对的错的都放进文件中
-
echo helloo >>/data/oldboy.txt 2>&1 # 对的错的都放进文件中
-
echo $LANG
-
echo $PATH
-
cat /etc/sysconfig/i18n
-
cp /etc/sysconfig/i18n /etc/sysconfig/i18n.bak
-
echo 'LANG=en_US.UTF-8' >/etc/sysconfig/i18
-
source /etc/sysconfig/i18n 生效
-
echo '$LANG $(hostname) `pwd`'
-
echo "$LANG $(hostname) `pwd`"
-
漏斗家族
-
> 1> 标准输出重定向,先把内容清空,在把内容放到最后一行
-
echo hello world >/data/oldboy.txt
-
2> 标准错误重定向,把内容清空了,在把错误内容放进去了
-
ech hello 2>/data/oldboy.txt
-
>> 1>> 追加重定向,把内容放到文件的最后一行
-
echo hello world >>/data/oldboy.txt
-
2>> 错误,追加重定向
-
ech world 2>>/data/oldboy.txt
-
< 输入重定向
-
echo 1 2 3 4 5 >/data/num.txt
-
xargs -n2 </data/num.txt
-
1 2
-
3 4
-
5
-
<< 追加输入重定向
-
cat >>/data/oldboy.txt <<EOF
-
I
-
am
-
studing
-
linux
-
EOF
-
xargs 分组的 -n 分为几组
-
xargs -n2 </data/num.txt
-
cp 复制 备份 复制目录
-
cp /data/oldboy.txt /tmp/
-
cp /data/oldboy.txt /data/oldboy.txt.bak
-
条件
-
cp -r /data/ /tmp/ # 递归复制
-
cp -p /data/ # 复制的时候保持属性不变
-
cp -a /data/ /opt/ # 复制所有(-p / d / r)
-
cp /mnt/test.txt /tmp
-
提示:cp: overwrite `/tmp/test.txt'? ^C; 因为 之前:touch /tmp/test.txt /mnt/test.txt;所以询问是否覆盖;
-
\cp /mnt/test.txt /tmp # 加反斜杠就不会询问了。
-
\cp -i /mnt/test.txt /tmp # -i 会询问; 因为其实 alias cp='cp -i'
-
/bin/cp /mnt/test.txt /tmp # 使用cp的绝对路径也不会询问了。
-
which
-
which cp
-
alias cp='cp -i'
-
/bin/cp
-
which mkdir
-
/bin/mkdir
-
mv 移动搬家
-
mv /data/ /root/
-
rm 删除
-
rm oldboy.txt
-
rm -f oldboy.txt
-
rm data # 不能删目录
-
rm -r data
-
rm -rf data # 强制删除,很危险!
-
rm data -rf # 也行,强制删除
-
条件
-
-r 递归删除
-
-f 强制删除
-
find -type 找文件 找目录
-
find
-
find /oldboy -type f
-
find /root/ -type f -name "oldboy.txt"
-
find /root/ -type f -name "*.txt"
-
find /root/ -type d
-
条件
-
find 哪里找 什么类型 什么名字
-
-type
-
f file文件
-
d directory 目录
-
-name
-
find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g'
-
find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g' -i # 真实的,查找并替换了
-
find 查找文件
-
find 哪里 什么类型 什么名字
-
-maxdepth 最大得深度
-
find -maxdepth 1 -type d
-
find -maxdepth 1 -type d ! -name "."
-
-type 找什么类型
-
f file文件
-
d directory 目录
-
-name 什么名字
-
! 非 取反
-
-mtime 根据修改时间找出对应的文件
-
find -type f -name "*.log" -mtime 7 # 前第7天的
-
find -type f -name "*.log" -mtime +7 # 7天之前的文件
-
find -type f -name "*.log" -mtime +7 |xargs ls -l
-
find -type f -name "*.log" -mtime +7 -exec ls -l {} \;
-
|xargs 管道
-
find /root/ -type f -name "oldboy.txt"|xargs ls -l
-
head 取文件的前几行 默认是前 10行 -n数字 == 数字取前几行
-
head -n2 test.txt
-
head -2 test.txt
-
tail 取文件的最后几行 默认时最后10行
-
tail -n3 test.txt
-
tail -3 test.txt
-
-f 显示文件的实时更新
-
tail -f === tailf
-
tail -f /var/log/secure
-
head + 管道 + tail
-
head -30 /oldboy/ett.txt|tail -11 # 查找,第20-30行的内容
-
seq
-
seq 10 # 生成1-10个数字
-
seq 100 >/oldboy/ett.txt
-
grep 三剑客老三 过滤的 -v
-
grep "oldboy" test.txt # 过滤,查找
-
grep "ol" test.txt # 过滤,查找
-
grep -v "oldboy" test.txt # 查找,去除 "oldboy"
-
grep "20" /oldboy/ett.txt # 过滤,查找,含20的...
-
grep -A10 "20" /oldboy/ett.txt # -A 显示之下的10个,-B显示之上的 -C显示上下的
-
-v 排除
-
-A数字 显示grep过滤的内容及接下来的几行
-
-n 给grep找出的行加上行号
-
grep -n "stu" nginx.conf
-
grep -n "." nginx.conf
-
egrep 支持高级正则 === grep -E
-
egrep "3306|1521" /etc/services
-
sed 三剑客老二 取行 -n 取消默认输出 一般与p一起使用 ‘10p’ '10,20p' 替换 -i 修改文件的内
-
sed '/oldboy/d' test.txt #查找,去除'oldboy'
-
sed -n '20p' /oldboy/ett.txt #查找,第20行的内容
-
sed -n '20,30p' /oldboy/ett.txt #查找,第20-30行的内容
-
sed 's#oldboy#oldgirl#g' /oldboy/t.sh #替换,将oldboy替换成oldgirl
-
sed 's#oldboy#oldgirl#g' /oldboy/t.sh -i #替换(真实的替换),将oldboy替换成oldgirl
-
sed '=' nginx.conf |xargs -n2
-
sed 's#I am##g' oldboy.txt | sed "s#, my qq is##g"
-
sed 's#,# #g' oldboy.txt |awk '{print $3,$7}'
-
's###g'
-
's@@@g' # 也行
-
awk 三剑客老大 擅长取列 NR 表示行号
-
awk "/oldboy/" test.txt #过滤,查找
-
awk '!/oldboy/' test.txt #查找,去除'oldboy' 单引号
-
awk "NR==20" /oldboy/ett.txt #查找,第20行的内容
-
awk "NR==20,NR==30" /oldboy/ett.txt #查找,第20-30行的内容
-
NR 表示行号
-
$数字 某一列
-
$0 表示一整行内容
-
{print 显示}
-
awk '{print NR,$0}' nginx.conf
-
awk -F "," '{print $1}' oldboy.txt
-
awk -F "[, ]" '{print $3,$8}' oldboy.txt
-
-F 指定分隔符或多个分隔符
-
-F "[, ]" 表示以逗号或者空格作为菜单 分隔符
-
alias 设置命令 alias 别名 = '命令'
-
alias # 查看别名
-
alias rm cp mv
-
alias rm='rm -i'
-
alias cp='cp -i'
-
alias mv='mv -i'
-
alias rm='echo do not use rm'
-
alias rm
-
alias rm='echo do not use rm'
-
source 生效 /etc/profile
-
source /etc/profile # 类似签字画押,生效
-
uname 显示系统信息
-
-r 显示系统内核版本
-
-m 显示系统32 位 64位的
-
uname
-
Linux
-
uname -r
-
2.6.32-696.el6.x86_64
-
uname -m
-
x86_64
-
cat /etc/redhat-release (补充一个)
-
CentOS release 6.9 (Final)
-
useradd oldboy 添加用户
-
id oldboy 检查用户
-
passwd oldboy 设置密码
-
su - oldboy 切换用户
-
logout(ctrl + D) 退出当前用户
-
cat /etc/redhat-release 系统版本 CentOS release 6.9 (Final)
-
uname -r 内核 2.6.32-696.el6.x86_64
-
uname -m x86_64
-
echo $PS1 查看系统变量
-
[\u@\h \W]\$
-
\u 当前用户名 whoami
-
\h 当前主机名 hostname
-
\W 当前的位置 pwd
-
PS1控制命令行得样子
-
[root@oldboyedu-01 ~]# PS1='[\u@\h \W \t]\$'
-
[root@oldboyedu-01 ~ 09:15:36]#
-
echo $LANG 查看系统得字符集
-
export LANG=zh_CN.UTF-8 修改字符集(但是一般不这样做)
-
cat /etc/sysconfig/i18n 永久修改字符集(但是一般不这样做)
-
source /etc/sysconfig/i18n 字符集生效
-
getenforce 查询selinux状态
-
setenforce 临时关闭selinux
-
setenforce 0
-
vim /etc/selinux/config 永久关闭selinux
-
/etc/init.d/iptables status 查看防火墙得状态
-
/etc/init.d/iptables stop 关闭防火墙,关两次, 临时关闭
-
chkconfig 管理开机自动运行的软件查看进程得状态 3:on 开启 3:off 关闭
-
chkconfig |grep ipt 过滤查出来 iptables
-
chkconfig iptables on 永久开启防火墙
-
chkconfig iptables off 永久关闭防火墙
-
chkconfig |grep iptables
-
chkconfig --level 指定运行级别进行操作
-
chkconfig --level 3 iptables on
-
/etc/sysconfig/network-scripts/ifcfg-eth0 网卡的配置文件
-
/etc/init.d/network restart 重启所有网卡 (一般用这种)
-
/etc/resolv.conf 配置DNS
-
/etc/hosts 对主机名进行解析
-
/etc/sysconfig/network 修改主机名
-
/etc/fstab 开机的时候自动挂载的文件 开机的时候给每个磁盘分区开一个入口
-
/etc/rc.local 开机自动运行的软件
-
/etc/inittab 开机运行级别的配置
-
/etc/init.d 服务管理的命令
-
/etc/profile 系统环境变量
-
/etc/bashrc 别名
-
/usr/local 编译安装的软件默认的位置
-
/var/log/messages 系统默认日志信息
-
/proc/meminfo 内存信息 == free -h
-
/proc/cpuinfo 查看cpu信息 == lscpu == cat /proc/cpuinfo
-
/proc/loadavg 系统的负载 w
-
/proc/mounts 显示系统的挂载信息 df -h == findmnt == cat /proc/mounts
-
ll /dev/cdrom 光盘查看
-
mount /dev/cdrom /mnt/ 把光盘挂载到系统里面
-
alias ll 查看ll的别名
-
yum install tree 安装软件
-
ping www.baidu.com 是否能上网
-
ping 223.6.6.6 DNS是否有问题
-
ifdown eth0 && ifup eth0 重启某一块网卡
-
hostname 主机名
-
hostname oldboy-nb 临时修改主机名-重启服务器失效
-
vim /etc/sysconfig/network 永久修改主机名-重启服务器生效
-
blkid 查看开机自动挂载文件
-
runlevel 运行级别
-
init 5 设置运行级别
-
rpm -qa |grep tree 查看软件是否安装成功
-
grep "Failed password" /var/log/secure 查看谁在 恶意登录
-
hostname 显示或设置主机名
-
df 显示磁盘的使用情况
-
-h 以人类可读的形式显示大小
-
yum 软件包管理工具--软件管家--
-
yum install tree
-
yum install tree -y
-
free 显示系统内存使用情况
-
-h 以人类可读的形式显示大小
-
lscpu 显示系统cpu信息
-
w 显示系统负载信息
-
tree 以树形显示目录结构
-
-L 显示层级
-
tree -L 1 最多显示几层目录
-
-d 显示目录
-
tree -d 只显示目录
-
tree -dL 1 /oldboy/
-
rpm rpm包管理命令
-
-qa 查询
-
rpm -qa |grep tree 查询某个软件是否安装
-
-ql 查看内容
-
rpm -ql tree 查看软件包里面的内容
-
date 显示系统的时间
-
date -s "20170520" 修改系统的时间
-
tar 打包压缩
-
z --- 通过gzip工具进行压缩
-
c --- 表示create创建压缩包
-
v --- 表示verbose 显示执行过程
-
f --- 表示file 接上压缩包存放的位置
-
t --- 表示list 显示压缩包的内容
-
x --- 从tar包把文件提取出来
-
-C -- 解压到指定目录
-
--exclude= 排除指定文件
-
tar zcvf /tmp/etc.tar.gz /etc/
-
创建压缩包 压缩包存放的位置 压缩哪个文件/目录 ...
-
tar zcvf /tmp/etc.tar.gz /etc/ # zcvf === zcf 创建
-
tar ztf /tmp/etc.tar.gz # ztf === tf 查看
-
tar zxvf etc.tar.gz # zxvf === xf 解压
-
tar xf etc.tar.gz -C /opt 解压到指定目录
-
tar zcf /tmp/etc-paichu.tar.gz /etc/ --exclude=/etc/services 打包文件排除某个文件
-
tr 替换
-
tr "a" "b" <oldboy.txt
-
tr "," " " <oldboy.txt |awk '{print $3,$7}'
-
wc: 查看有多少行
-
wc -l /etc/services
-
ps -ef 查看系统中正在运行的进程
-
ps -ef |grep "/sshd"
-
ps -ef |grep "/sshd"|wc -l # 统计出现的次数
-
env 查看环境变量
-
level
-
init 3 临时修改运行级别
-
/etc/inittab 永久修改运行级别
-
runlevel 查看运行级别
file 显示文件的常用类型
file /tmp/etc.tar.gz
file /bin/ls
id 查询用户信息
id oldboy id查询用户信息 属于哪个用户组
ls
ls - i 查看文件indoe号码
ls -lhi /etc/hosts 每一列的含义
df
df -h 查看block
df -i 查看系统里面inode用了多少剩余多少
du
du -sh /* |grep G
du -sh /var/log/* |grep G
etc
/etc/passwd 存放的是用户的信息
/etc/shadow 用户密码的信息
/etc/group 用户组的信息
ln
ln -s oldboy.txt oldboy.txt-soft 创建软链接
ln oldboy.txt oldboy.txt-hard 创建硬链接
lsof |grep delete
找出硬链接数量为0,进程调用数不为0
/etc/init.d/rsyslog restart 重启软件,就恢复了
stat oldboy.txt
查询文件修改,访问,改变时间
history
查看之前的命令
history |grep awk
cat -A oldboy.txt # 显示每一行的结束
ifdown eth0 && ifup eth0
man grep
info grep
find
find -type f -name "*oldboy*"
echo
echo {1..10}
echo A{,C}
echo oldboy.txt{,.bak}
echo 123456|sed -r 's#(.*)#<\1>#g'
echo 123456|sed -r 's#.(.)..(.)(.)#\3#g'
grep、egrep
grep --color=auto "3306" /etc/services
alias grep="grep --color=auto"
source /etc/profile
egrep "^[0-9X]+$" id.txt
grep '.' oldboy.txt
grep -o '.' oldboy.txt # 正则执行过程,每次执行了
grep '.$' oldboy.txt
grep '0' oldboy.txt
grep -o '0*' oldboy.txt # 正则的执行过程
grep "^.*o" oldboy.txt
grep "^m.*m$" oldboy.txt
grep [abc] oldboy.txt
grep -on [abc] oldboy.txt # a b c
grep '[a-f]' oldboy.txt # a到f
grep '[a-zA-Z0-9]' oldboy.txt
grep '[^abc]' oldboy.txt # 表示排除 排除a 或b 或c
grep '^[mno].*[mg]$' oldboy.txt
grep -E '0+' oldboy.txt
egrep '0' oldboy.txt -o
egrep '0+' oldboy.txt -o
egrep [a-z] oldboy.txt
egrep '[a-z]+' oldboy.txt -o
egrep 'oldboy|linux' oldboy.txt
egrep '[ab]' oldboy.txt
egrep 'a|b' oldboy.txt
egrep 'oldb(o|e)y' oldboy.txt
egrep '0{3,4}' oldboy.txt
egrep -o '0{3,4}' oldboy.txt
egrep '0{3,}' oldboy.txt # 连续出现3次以上
egrep '0{3}' oldboy.txt # 连续出现3次
egrep '[0-9]{5,}' oldboy.txt # 数字连续出现5次以上的
egrep 'go?d' li.log
egrep 'go*d' li.log
补充
sed:
'2s#oldboy#oldgirl#gp'
显示 替换
删除
'/找谁/d'
sed -n '1p'
sed -n '1,10p'
sed -n '10,$p'
sed -n '//p'
awk:
擅长取行 取列 计算
! 表示取反 排除
awk 'NR==1'
awk 'NR==1,NR==10'
awk '//'
ntpdate 根据时间服务器(找他校对时间)修改系统时间
which 显示命令的绝对路径
whereis 显示命令相关的信息
locate 根据一个列表(数据库)查找在系统中的文件
w 显示系统负载信息 系统中谁登录了,他们在干啥
last 显示什么时候从哪里登录的 登录了多久
lastlog 显示系统中所有用户最近的一次的登录信息
powoff 关机
halt 关机,需要手动切换电源(物理机)
reboot 重启
shutdown 关机或重启
-h 时间 关机
-r 时间 重启
四、图片
vmware 给虚拟机拍摄快照