查看自己的身份
id或者whoami
查看日期
date
查看资源占用
top (q退出,c安装cpu排列,m按照运行内存排列)
查看空闲的运行内存
free -h
查看系统负载
uptime
当前服务器时间 当前服务器运行时长 当前用户数 当前负载情况(分别取1min,5min,15min的均值)
查看进程
ps
查看ip地址
ip a或者ifconfig
查看外联
netstat -auptl
查看系统版本
uname -a
查看cpu详情
cat /proc/cpuinfo
查看运行内存详情
cat /proc/meminfo
查看现在登录的账户
w who
查看上次登录的账户
last
历史执行命令
history
清除历史记录
history -c
查看当前路径
pwd
切换路径
cd (~表示家 ./表示当前 ../表示上一级 空默认是~)
查看当前目录文件
ls
第1位表示存档类型
【d】,则是目录
【-】,则是文件
【l】,则表示为链接文件(link file)
【b】,则表示为设备文件中可供存储的接口设备
【c】,则表示为设备文件中的串行端口设备,例如键盘、鼠标
第2~4位表示当前用户的权限(属主权限)
第5~7位表示同用户组的用户权限(属组权限)
第8~10位表示不同用户组的用户权限(其他用户权限)
第11位是一个半角句号.,表示SELinux安全标签
用户权限每组三位,rwx分别表示读、写、执行权限,对应八进制表示为4、2、1。
使用root权限
sudo -s su 用户名 切换用户
查看passwd文件
cat /etc/passwd
注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序shell
查看shadow文件
sudo cat /etc/shadow
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
查找文件
which whereis
查找系统中所有文件权限为7755的普通文件,并列出它们的完整路径
find / -type f -perm 7755 -exec ls -alh {} \;
分页查看
more 文件名
less 文件名
查看文件头
head 文件名,默认查看十行
查看文件尾
tail -n3 xx,默认查看十行,tail xx -f 实时查看xx文件的更新
创建文件
touch 文件名
新建文件夹
mkdir 文件夹名
mkdir -p a/b/c/d/e
设置阿里源
也可以编辑源文件,添加对应源
apt安装vim软件
sudo apt update //更新索引
sudo apt install 软件名 //安装软件
vim编辑文件
vim 文件名
启动的时候是普通模式,左下角没有任何提示
j下一行
k上一行
h左移
l右移
i进入编辑模式(还有I/A/a/o/O)
yy复制当前行
3yy复制当前3行
p粘贴
u 撤销操作
dd 删除光标所在行
ZQ不报错退出
ZZ保存退出
G到最后一行
gg到第一行
编辑模式,左下角提示插入(insert)
esc返回普通模式
Enter 回车换行
Backspace 删除光标前的一个字符
del 删除
home/end 光标移动到行首/行尾
PgUp/PgDn 上/下翻页
命令模式,左下角有:
:!强制
:set nu 在每行的行首显示行号
:wq保存退出
q 退出不保存
q! 强制退出,不保存
/搜索
:s/old/new 替换当前首个old字符成new字符
:s/old/new/g 替换一整行的old字符成new字符
:%s/lod/new/g 替换全文的old字符成new字符
输出
echo hello
重定向
cat xx > tt,>覆盖,>>追加
统计行数,字数,字节数
wc -l /etc/passwd
-l 只显示行数
-w 只显示单词数
-c 只显示字节数
比较文件
cmp或者diff
显示文件类型
file 文件名
-b 列出辨识结果时,不显示文件名称
-c 详细显示指令执行过程,便于排错或分析程序执行的情形
-f<名称文件>指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称
-L 直接显示符号连接所指向的文件的类别
-v 显示版本信息
-z 解读压缩文件的内容
文本文件处理命令
grep
grep -c localhost /etc/hosts
ps -ef | grep sshd
-c或--count 计算符合样式的列数
-d recurse或-r 指定要查找的是目录而非文件
-e [范本样式] 指定字符串做为查找文件内容的样式
-E 或 --extended-regexp 将样式为延伸的正则表达式来使用
-F 或 --fixed-regexp 将样式视为固定字符串的列表
-G 或 --basic-regexp 将样式视为普通的表示法来使用
-i 或 --ignore-case 忽略字符大小写的差别
-n 或 --line-number 在显示符合样式的那一行之前,标示出该行的列数编号
-v 或 --revert-match 显示不包含匹配文本的所有行
sed
sed 's/SELINUX=disabled/SELINUX=enforcing/' /etc/selinux/config.bck
sed '$a admin:x:1000:1000:admin:/home/admin:/bin/bash' /etc/passwd.bck
sed '1c abcdefg' /etc/passwd.bck
-e [script] 执行多个script
-f [script文件] 执行指定script文件
-n 仅显示script处理后的结果
-i 输出到原文件,静默执行(修改原文件)
a 在行后面增加内容
c 替换行
d 删除行
i 在行前面插入
p 打印相关的行
s 替换内容
awk
ifconfig eth0 |awk '/inet/{print $2}'
df -h |awk '/\/$/{print $4}'
awk -F: '$3<1000{x++} END{print x}' /etc/passwd
awk -F: '$7!~/nologin$/{print $1,$7}' /etc/passwd
head -3 /etc/passwd | awk 'BEGIN{FS=":";print "name\tuid"}{print $1,"\t"$3}END{print "sum lines "NR}'
-F fs 指定以fs作为输入行的分隔符,awk 命令默认分隔符为空格或制表符
-f file 读取awk脚本
-v val=val 在执行处理过程之前,设置一个变量var,并给其设置初始值为val
FS 字段分隔符
$n 指定分隔的第n个字段,如$1、$3分别表示第1、第三列
$0 当前读入的整行文本内容
NF 记录当前处理行的字段个数(列数)
NR 记录当前已读入的行数
FNR 当前行在源文件中的行号
管道符|,将前面执行的输出作为后面的输入
ps aux | grep top
查看指定服务的PID
pidof 服务名
杀死指定pid
kill -9 PID
杀死指定进程所有pid
killall 进程名
删除文件
rm 文件名
无需确认直接删除文件
rm -rf 文件名
删除文件夹
rmdir 文件夹名
无需确认直接删除目录TT及其目录下所有子目录和文件
rm -rf TT
复制文件
cp 源 目的
-d 复制时保留链接
-f 覆盖已经存在的目标文件而不给出提示
-i 覆盖前询问
-p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-r 复制目录及目录内的所有项目
移动或改名
mv 源 目的
-i 若指定目录已有同名文件,则先询问是否覆盖旧文件
-f 如果目标文件已经存在,不会询问而直接覆盖
rename 源 目的
新建用户
useradd 用户名
修改用户密码
passwd 用户名
修改文件权限
chmod 755 x.sh
chmod u+x x.sh
u+x表示增加属主的执行权限,u表示属主,g表示属组,o表示其他,a表示所有用户
修改文件的属主和属组
chown 属主用户 文件名
-R参数以递归方式对子目录和文件进行修改
修改文件的属组
chown 属组用户 文件名
检查磁盘空间占用
df
du
磁盘分区
fdisk