以下命令总结于《Linux就该这么学》
#常用系统工作命令
man #帮助命令
echo $SHELL (HOSTNAME #回显主机名 LANG #语言格式 RANDOM #随机数 KEY #按键) #查看当前shell
date #显示当前时间
reboot #重启
wget -O #下载到指定目录
ifconfig #网络状态
uname -a #系统内核版本信息
uptime(watch -n 1 uptime) #系统负载情况
free -m(free -s 1) #内存使用情况
who #查看登入主机的用户
last #查看所有所有登入记录
history(-c #清空记录) #当前用户在系统中执行过的命令 #cat ~/.bash_history
pwd(~ #家目录 - #切换到上次目录 .. #上级目录) #当前工作目录
ls(-a #包括隐藏文件 -d #回显目录 -l #详细 -ldh /etc #查看文件夹etc权限、属性、大小) #查看目录文件
#文本文件编辑命令
cat -n main.cpp #查看短文本包,显示行号
more -1000 main.cpp #显示1000行
head -n 10 main.cpp #显示前10行
tail -n 10 main.cpp #显示后10行
wc(-l #行数 -w #单词数 -c #字节数) #统计文本
cut -d: -f1 /etc/passwd #通过列提取文本,以“:”作为分隔符,提取第1列文本
#文件目录管理命令
touch test.txt #创建文件
touch -t 1823031453 test.txt #修改时间
mkdir -m 666 -p a/b/c/d/e #创建多层目录,属性7666
cp -a 123.txt a/ #-a相当于-pdr,p保留原始文件属性,d保留连接文件属性,r递归复制用于目录。-i询问
mv 123.txt 456.txt #移动文件或重命名
rm -rf a/ #删除一切,r删除文件夹,f忽略警告
rmdir #仅删除空目录,有文件报错
passwd #修改密码
tar -czvf a.tar.gz a/ #c创建压缩文件,z用Gzip压缩,v显示过程,f目标文件名
tar -xzvf a.tar.gz (b/ #解压到文件夹b下) #x解压
grep(-n #显示行数 -i #忽略大小写 -c 显示次数 ) abcdefg test.txt (>> grep_test.txt #输出到文件中) #查看test中出现的"abcdefg"
find . -name "main*" #查找当前目录的文件名开头为main的文件
#管道命令符
grep b test.txt | wc -l #找到文件test中出现的b,作为管道的输入,统计输入的行数
#输入输出重定向
echo "e,E" >>(> #清空原文件) 123.txt #在123.txt中追加e,E
#通配符
ls test* #(? [0-9])
alias cp="cp -i" #命令别名,每次复制都会询问用户
unalias cp #取消别名
#修改PATH路径
PATH=$PATH:/home/losingsang/workdir #这样修改只能在该shell起作用
echo $PATH
#Vim
#输入模式 a\i\o
#命令行模式 Esc
dd #删除整行
5dd #删除光标以下5行
yy #复制
p #粘贴
/ #由上至下搜索
? #右下至上搜索
n/N #下/上个结果
#末行模式 :
:w #保存
:q! #强制退出不保存
:wq! #强制保存退出
:set nu(nonu) #显示行号
#主机名称
vim /etc/hostname
#网卡配置信息
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
sudo systemctl restart network #重启network服务
#手动修改IP
HWADDR="00:0C:29:36:70:6B"
TYPE="Ethernet"
#默认dhcp,改为none,以便手动修改ip
BOOTPROTO="none"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="4ca9d8b1-fb39-4d4c-bbf5-f073358da3c6"
ONBOOT="yes"
#添加如下内容
IPADDR="192.168.1.201"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS1="8.8.4.4"
#Shell
cat /etc/shells #查看所有shell
vim shell_test.sh
#!/bin/bash
#使用哪种shell
echo "当前脚本名称为$0"
echo "共有$#个参数,分别是$*"
echo "第2个参数为$2"
pwd
ls -al
chmod u+x shell_test.sh #执行权限
./shell_test.sh one two three (sh shell_test.sh source shell_test.sh)
[ -d /etc/fst ] #[]前后有空格。
#测试参数,d是否目录,f是否文件,e是否存在,rwx是否有相应权限。
#不返回结果,0表示肯定。
echo $? #查看上条命令返回值
[ 10 -gt 5 ] #数值比较,eq等于,ne不等,gt大于,lt小于,le小于等于,ge大于等于
[ -z $ABC ] #字符串比较,=相等,!=不等,-z是否为空
#shell if语句
vim shell_ping_grede.sh
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 #c发包数,i多久一个包,W超时3s
if [ $? -eq 0 ];then
echo "Host $1 is up."
else
echo "Host $1 is down."
fi
read -p "输入分数(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ];then
echo "优秀"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ];then
echo "通过"
else echo "不通过"
fi
#看一堆URL中是否能连通
vim shell_ping.sh
#!/bin/bash
HLIST=$(cat ./ipadds.txt)
for IP in $HLIST
do
curl $IP & > /dev/null
if [ $? -eq 0 ];then
echo "成功:$IP" >> ipaddsOK.txt
else
echo "失败:$IP" >> ipaddsOK.txt
fi
done
#计划任务服务
#一次性计划
echo "systemctl stop network" | at 13:50
atq #显示任务列表
atrm #移除任务
#长期计划
crontab -e
#输入,分,时,日期,月份,星期
57 * * * * systemctl stop network
crontab -l #查看计划
crontab -r #删除计划
#隐藏权限
echo "for Test">chattr_test
chattr +a chattr_test #添加仅追加隐藏权限
lsattr chattr_test #显示隐藏权限
chattr -a chattr_test #删除仅追加隐藏权限
#磁盘管理
fdisk /dev/sda
p #查看分区表
n #新建分区
w #保存并退出
q #退出不保存
mkfs.xfs /dev/sdb1 #格式化磁盘
mount /dev/sdb1 /newFS/ #挂载到目录下
vim /etc/fstab #系统启动自动挂载磁盘
----------------------------------------------------------------------------------------------------------------
#Ubuntu18.04开启ssh,可以被远程连接。CentOS7貌似可以直接连
sudo apt-get install openssh-server