*jar和shell脚本配置路径尽量是全路径。
1.clear 清理屏幕
2.mv 移动(其文件始终是一份),运行速度快
cp 复制(重新生成一份),运行速度慢(复制文件夹需要加参数-r,文件则不需要)
[注]:标准的操作必须满足以下两点:
①移动或拷贝原始文件名或文件夹名;
②目标端的路径
如:cp -r 原路径 目标路径
标准命令:
mv xx 1/xx #将xx移动到文件夹1
mv xx 1/xxx #将xx移动到文件夹1并改名(可以用于同目录下文件改名字:mv xx xxx)
cp -r xx 1/xx #将xx复制到文件夹1
cp -r xx 1/xxx #复制并改名文件夹
cp -r x.log xx.log #复制并改名文件
练习:
rm -rf *
clear
mkdir kunge1
mkdir 1
ll
mv kunge1 1
cd 1
ll
mkdir kunge2
cp kunge2 1 ❌
cp kunge2 1/kunge2 ❌
cp -r kunge2 1/ kunge2
cd 1
ll
mkdir kunge3
cp -r kunge3 1/kunge33
mkdir kunge4
mv kunge4 1/ kunge44
cd 1
ll
mkdir kunge5
cp -r kunge5 1
3.创建文件
创建一个空文件:
①touch 1.log (0字节,真正的"空")
②vi 2.log
③cat /dev/null > 3.log #将已有的文件变为空文件
④echo "" > 4.log #将空自己打印进4.log(并不是真"空",里面有一个占位符)
[高危命令1]:(千万不要把>>输入成>)
> 代表覆盖,将文本内容覆盖掉
>> 代表追加,将文本内容追加进去
规避风险:提前拷贝(养成及时备份的习惯cp mysql.cnf mysql.cnf20010105)
创建新文件夹的一般思路:先清理内容,再判断是否为空。假如为空就继续执行脚本文件,否则退出。
练习:
rm -rf *
ll
clear
touch 1.log
ll
vi 2.log
www.comer_liu.com
ll
cp 2.log 3.log
ll
cat /del/null > 3.log
ll
cp 2.log 4.log
ll
echo "" > 4.log
ll
echo ""
echo "1"
cat 2.log
echo "" > 2.log
ll
cat 2.log
echo 2 > 2.log
echo 3 >> 2.log
echo 4 >> 2.log
cat 2.log
4.1查看文件内容
cat 文件内容全部显示,用“Ctrl+C”中断(适合内容比较少的文件,不适合内容比较多的)
more 文件内容一页一页的下翻,“空格”翻页,用“Ctrl+b”回退往上翻,“q”退出(适用于内容较多的文件)
less 文件内容按“↑↓”键按照“行”翻动,“q”退出。
练习:
cd /var/log
ll
cat Xorg.q.log
more Xorg.q.log
less Xorg.q.log
4.2 tail实时查看文件内容
tail -f 实时查看文件内容。假如文件被移除,然后重命名,就无法再监控到文件。
tail -F 实时查看文件内容。假如文件被移除,然后重命名,会不断地“retry”尝试去监控文件,直到文件被监控到位。
[高危命令2:](千万不能把“tail -f"写成“tail -F")
!!!规避风险:tail --help (仔细阅读命令帮助)
练习:
touch 1.log 2.log
ll
(新建两个会话窗口,分别输入:)
tail -f 1.log
tail -F 2.log
(此时在原会话窗口输入:)
echo 1 >> 1.log(观察新建窗口2的变化)
echo 2 >> 2.log(观察新建窗口3的变化)
#说明tail -f 和tail -F都能实时查看文件内容
(在原会话窗口继续输入:)
mv 1.log 1.log1
touch 1.log
echo 3 >> 1.log(观察新建窗口2的变化,此时没有任何变化,说明tail -f已经监测不到了)
(在原会话窗口继续输入:)
mv 2.log 2.log1
touch 2.log
echo 4 >> 2.log(观察新建窗口2的变化,说明tail -F能够不断尝试监测文件,直到监测到)
tail -100f 1.log #查看文件内容倒数100行,并实时监控,用“Ctrl+C”退出(用于定位问题,可在查看问题上使用)
练习:
cd /var/log
ll
tail -100f Xorg.q.log
[附:]log4j 日志组件 规则:大小100M,保留10份
例如:exp.log 当其满了100M时,执行:
mv exp.log exp.log1
touch exp.log #生成空的exp.log和100M的exp.log1
当空的exp.log又满100M时,又执行:
mv exp.log exp.log2
touch exp.log #生成空的exp.log和100M的exp.log2
一直这样直到生成10个100M的exp.log.x文件(x:1~10),然后循环滚动。
☞当文件内容特别多时,如何快速定位到“ERROR”等关键信息?
cat 文件.log |.grep ERROR(或其他关键词) #打印文件内容;"|":管道符(把上一个命令输出结果作为下一个命令输入)
①cat 文件.log | grep -A 10 ERROR
#显示当前关键词" ERROR"出现后的后10行
②cat 文件.log | grep -B 10 ERROR
#显示当前关键词" ERROR"出现后的前10行
③cat 文件.log | grep -C 10 ERROR
#显示当前关键词" ERROR"出现后的前后各10行,共21行
当ERROR很多时,成千上万,可用以下命令:
④cat 文件.log | grep -C 10 ERROR > 1.log
#把查看到的" ERROR"内容(即关键词ERROR的前后各20行(输入并覆盖到文件1.log里面
more 1.log #用more查看1.log文件内容
练习:
vi error.log
cat error.log | grep ERROR
cat error.log | grep -A 10 ERROR
cat error.log | grep -B 10 ERROR
cat error.log | grep -C 10 ERROR
touch 1.log
cat error.log | grep -C ERROR > 1.log
cat 1.log
当文件内容很大时,通过进入编辑模式操作:
⑤vi 文件.log 然后"shift+ : "
输入"/ ERROR"(/:匹配符)回车,再按"n"上下翻进行查找
⑥通过将日志文件下载到Windows电脑再进行搜索、定位、分析:
yum install -y lrzsz #安装上传下载包
接着使用rz、sz进行上传下载,见5
【坑:】假如xxx.log原文件很大,那么从生产下载到公司网络是不是要走外网带宽10M的,
问:会不会影响公司服务?
答:肯定会影响公司服务的
[建议]:假如下载文件很大,业务高峰期或者工作日白天尽量不要做。如果非要做,那就限速!(通过下载工具FTP,而不能使用sz)
5.上传下载
yum install -y lrzsz #执行安装命令(此命令需要root用户权限)
sz 将文件从Linux下载到Windows
rz 将文件从Windows上传到Linux
[注意!:]上传文件时要检查文件名是否有重复,否则上传失效
上传之前需要获取root用户权限,visudo 进入编辑模式配置:
root ALL=(ALL) ALL
comer ALL=(ALL) ALL
练习:
cd /var/log
su
visudo 进入编辑模式配置:
root ALL=(ALL) ALL
comer ALL=(ALL) ALL
yum install -y lrzsz
touch 1.log
vi 1.log
sz 1.log
cd ~
rz
cat abc.txt
6.别名 alias(用来简化常用命令或复杂命令)
[说明:]别名"alias"命令仅在当前会话窗口有效,在另一个会话窗口无效(因为未设置全局生效)
如果在另一个窗口输入别名后的命令,会报错:
bash:klog:command not found...(命令找不到)
原因:①未正确安装软件
②未配置环境变量
练习:
alias klog='cd /var/log'
pwd
cd
klog
pwd
7.创建新用户和设置密码
useradd kk
id kk
passwd kk
设置密码:8位(这里一定要8位,因为系统默认的,后面可以修改默认的)
确认密码:8位
8." table"键
Tab 按一次,匹配只有一个自动补齐
按两次,显示出所有匹配的字符
9.环境变量(全局变量、个人变量)
(1)全局变量
/etc/profile 默认文件在这里,通过"vi"操作 source /etc/profile #使生效
[易错点:]"source /etc/profile"只在当前的会话窗口和新的会话窗口生效(新开启的窗口自动生效),已经开启的会话窗口不会跟着生效,若想跟着生效,则需要再那个会话窗口输入" source /etc/profile"重新执行。
练习:
vi /etc/profile
alias klog='cd /var/log'
source /etc/profile
klog
pwd 新建会话窗口输入:
klog
pwd 在某一个已经开启的会话窗口输入:
klog
pwd
(2)个人变量
~/.bash_profile或者:~/.bashrc 二者都在家目录下,都是隐藏文件
cd ~
source .bash_profile
. .bash_profile
[场景:]ssh远程B机器,启动服务命令
报错:java command not found
但是直接登录B机器,命令是找到的(which java)
原因:配置环境变量文件在. bash_profile是不正确的,应该配置在.bashrc文件里面。
参考网站:
http://blog.csdn.net/whitehack/article/details/51705889
练习:
cd
vi ~/. bash_profile
alias tt='cd /tmp'
source . bash_profile
. . bash_profile
tt
pwd
10.history 历史命令
history 显示历史命令(用"↑↓"键查看之前的命令)
!57 #执行第57行命令
history -c #清空历史命令
对于直连服务器,清空历史命令,OK;
对于跳板机( VPN)服务器,清空历史命令,OK;
对于堡垒机,每敲一个命令,都会记录在堡垒机系统,Web界面一定位就出来了。
同步更新自:
1.Linux基础命令2(一) - 简书 (jianshu.com)