常识
root 家目录 /root
lily 家目录 /home/lily
‘#’ 表示用户当前为管理员用户
‘~’ 表示家目录
绝对路径 以/开头 从家目录开始
相对路径 当前路径开始
windows和linux查看当前系统网卡IP地址 ipconfig 和ifconfig
命令帮助 命令±-help ex: ls --help
服务的概率 :一个服务要有IP,然后要有port
基础命令
pwd 查看当前所在目录
clear 清屏
cd 切换所在目录
cd cd~ 切换到家目录
cd - 退回上一次目录
cd ../ 退回上一层目录
cd ../../ 退回上两层目录
ls 打印所在目录的文件和文件夹
ls -l == ll 文件或文件夹的详细列表
ll -a 可查看隐藏文件或文件夹 以.开头
ll -h 大小
ll -rt 按时间排序
mkdir 创建目录
mkdir abc 创建一层目录abc
mkdir -p a/b 创建层级目录
mkdir a b c 并行创建 a b c 三个目录
touch 创建一个空白文件
mv 移动或者改名(始终只有一份)
mv 文件/文件夹 文件/文件夹
cp复制(多份)
echo向控制台输出打印
echo "123" 显示123
echo "123" > a.txt 覆盖显示
echo "123" >> a.txt 追加显示
cat more less tail 查看文件内容
cat 直接输出所有文件内容
more 空格键下翻,不能回退 ,按q退出
less 可按上下键上下翻,:G直接到末尾,按q退出
tail -F a.log 实时查看log日志(F=f+retry)
环境变量
/etc/profile 全局环境变量,所有用户均可使用
~/.bash_profile ~./bashrc 个人环境变量,只有所属用户有效
vi /etc/profile source /etc/profile 生效
vi .bash_profile source .bash_profile 和 ..bash_profile 生效
参考 https://blog.csdn.net/zjy900507/article/details/79579420
alias 别名
alias 显示当前设置的所有别名
alias name 只显示某个别名代表的含义可输入
alias cdtest=“cd /srv/www/app/account” 设置别名
unalias cdtest 取消命令别名
rm删除
rm 只能删除文件
rm -r 递归删除目录和文件
rm -f 强制删除,不询问
rm -rf 不允许使用
设置变量
key=value =前后不能有空格
使用${key}
echo ${key} 输出vlue
echo ${USER} 输出当前执行此脚本的用户
history查看历史命令
history | grep ssh 重启ssh
!4 执行history命令中的第4条指令
echo “ ” > ~/.bash_history 清空历史命令,重开seesion后生效
/home/xxx/.bash_history root用户登录可查看xxx用户所用命令
用户和组
ll /usr/sbin/user* useradd 创建用户 userdel 删除用户 usermod 编辑用户
ll /usr/sbin/group*
useradd boniu 增加用户
ll -a /home/ 创建boniu后,系统会在/home下面创建它的家目录
cat /etc/passwd :
-- lily:x:500:500::/home/lily:/bin/bash 创建用户同有这条记录
--用户lily uid=500 gid=500 lily的家目录为/home/lily 用/bin/bash来执行
--(修改用户登录问题)
--su -ntp 提示 this account is currently not avaiable
--vi /etc/passwd
--/sbin/nologin 修改成 /bin/bash
--su -ntp (成功)
id boniu 查看用户相关id uid gid主组id groops
passwd boniu 设置用户密码
groupadd data 创建组
cat /etc/group 创建组后,查看用户组文件
usermod -a -G data boniu 将boniu用户添加到data组
cat /etc/group | grep data 查看data组内有多少用户
userdel boniu 删除用户,若主组无其他用户,则主组删除
su切换用户
su - lily 在切换用户时加载lily环境变量并切换到lily家目录
su lily 不加-,在切换用户时仅加载用户环境变量
环境变量:如别名,没执行环境变量,就不能使用别名
exit
sudo普通用户临时获取root权限
ls -l /root/ lily用户下访问/root/用户没有权限 Permission denied
su - root 切换到root目录下
vi /etc/sudoers #添加一行
root ALL=(ALL) ALL (原有的)
lily ALL =(ALL) ALL
lily ALL=(root) NOPASSWD:ALL(本次添加)
wq! 只读文件保存
su - lily
sudo ls -l /root/ (可查看)
| 管道符/过滤 grep筛选/过滤
history | grep ssh
#将 | 管道符前面查出来的输出作为后面的输入
grep 然后过滤出包含“ssh”的数据
进程和端口号
ps - ef | grep xxx 显示所有的进程,加上管道符,可以筛选出你想查询的进程,如果想查询的条件有空格,那么可以加上单引号,然后再进行过滤。
ps -ef | grep -v grep : -v 可以去掉含有grep的进程
awk '{print $2}'
--$2:表示第二个字段
--print $2:打印第二个字段
ps -ef | grep xxx | grep -v grep
--root 2425 1779 0 20:39 pts/0 00:00:00 install.log.syslog
--用户 pid ppid 日期时间 进程名
ps -ef | grep xxx | grep -v grep | awk '{print $2}'
--2425
kill -9 pid 查杀进程
kill -9 2425 kill前务必确认是否该杀
netstat -nlp | grep pid 不是所有的进程都有端口号
Connetction refused: #如果你去连接一个服务,发生拒绝错误
1.查看服务器应用进程是否存在 ps -ef | grep xxx
2.查看进程端口是否正确 netstat -nlt | grep $pid
3.查看端口允许访问的服务器地址
--视具体情况而定,上面仅供参考
搜索
* 模糊匹配
find / -name "*ssh *" 全局搜索
locate java
which java
whereis java
参考 https://blog.csdn.net/zhailihua/article/details/78329123
安装软件包 yum
yum search httpd 查看httpd属于哪个安装包
yum install -y httpd
service httpd restart
rpm -qa | grep httpd 查看httpd版本包名称
rpm -e httpd-xxx 删除/卸载httpd版本程序
--可能报错:Failed dependences
--使用--nodeps参数跳过版本关联检测
rpm -e --nodeps httpd-xxx
rpm :只能安装已经下载到本地机器上的rpm包,无法解决软件包的依赖关系。
yum:在线下载并安装rpm包,能更新系统,能自动处理包与包之间的依赖问题。
man命令帮助
yum --help
man yum
vi文本编辑器
命令模式 i键 编辑模式
编辑模式 esc键 命令模式
命令模式 : 尾行模式
尾行模式 backspace键 命令模式
尾行模式下
--wq保存并退出
--q退出,没有修改
--q!强制退出(有修改)
当修改某个生产上的文件时,一般先备份,再对源文件进行修改
--先cp ,再vi
常用编辑命令
--gg #跳转到第一行的第一个字符
--G #跳转到最后一行的第一个字符
--$ #跳转到行尾
--^ #跳转到行首
--dd #删除当前行
--dG #删除光标以下的所有行(包含当前行)
--ndd #删除光标以下的n行 (包含当前行,总共删除n+1行)
场景一 清空文件所有内容
--三种方式
--vi编辑模式 gg dG
--echo " " > text.log 伪清空 还有一字节,shell清空是根据字节判断,所以这时错了
--cat /dev/null > test.log
场景二 文件最后追加内容
G+$
-- i #当前光标位置进行编辑
-- a #当前光标位置后一位进行编辑
-- o #当前光标位置新建下一行进行编辑
场景三 快速定位关键字(error)
方法一
-- /error 尾行模式下
--?error 尾行模式下
--:set nu 显示行号
--:set nonu 不显示行号
方法二
cat test.txt | grep error
方法三
下载文件到本地,再使用工具编辑查找
权限控制
r : 4 读 w : 2 写 x : 1 执行
-rw-r--r--. 1 root root 100033 Jan 19 20:42 install.log
第一位: - 文件 d 文件夹 l 连接
第一组: root这用户对文件有可读可写权限
第二组:root这用户组成员对文件有可读权限
第三组:其他用户组成员对这个文件有可读权限
100033:字节大小
--ll -h 查看文件大小的命令
--du -sh 查看文件和文件夹大小的命令
Jan 19 20:42:最后修改时间
chmod 修改文件或目录权限
--chmod -R参数 #如需修改目录以及其子文件的权限
--chmod 750 test.log
--chmod -R 777 bigdata #文件夹
chown 修改文件或目录所属者和所属组
--chown -R参数 #如需修改目录以及其子文件的所属
--chown lily:lily test.log 改用户有用户组
--chown -R lily:lily bigdata #文件夹,要加-R递归
执行shell脚本
shell脚本也是文本文件,一般后缀名为.sh
执行脚本的两种方法
--./bigdata.sh
--sh bigdata.sh
给文件添加可执行权限
chmod u+x bigdata.sh u代表所有者 x代表执行权限 + 表示增加权限
scp
A机器传B机器
scp 文件名称 B用户@B机器IP:B目录
软链接
软链接:快捷键 删除软链接源文件不会删除,但编辑软链接文件,源文件也会修改
ln -s 源文件 目标文件
ln -s bigdata.sh bat
cat bat 查看
rz/sz上传下载
yum install lrzsz 先安装rpm包 传输工具
rz window ==> linux 从windows系统上传到linux系统
sz linux ==> window 从linux系统下载到windows系统
系统命令
top 监控资源使用率情况
--load average: 0.00, 0.00, 0.00 机器忙不忙就看: 1分钟 5分钟 15分钟
--经验值不可超过10分钟,如果超过10分钟说明机器非常繁忙
--ps -ef | grep pid
free -m 查看内存使用情况
df -h 查看硬盘(文件系统查询)
压缩与解压缩 zip/uzip tar
yum install -y zip unzip 首先安装两个软件包
zip -r test_zip.zip testz_zip/* 表示压缩test.zip文件夹,到test_zip.zp压缩包里。
unzip test_zip.zip 表示解压test_zip.zip这个压缩包
zip/uzip 压缩和解压后,源文件和压缩文件并存
tar
tar -czf 6.tar.gz 6/* 把文件夹6压缩为6.tar.gz
tar -xzf 6.tar.gz 解压6.tar.gz
如果想看压缩和解压缩过程,加个‘V’
tar -czvf 6.tar.gz 6/*
tar -xzvf 6.tar.gz
wget下载URL内容
从网页上下载文件:wget + 链接
如果文件名称有空格,那么cat的时候,要把文件名称用双引号引起来
crontab调度任务/计划任务
crontab -e # vi 编辑模式
crontab -l
参考 https://blog.csdn.net/wyx_wyl/article/details/78307984