- 常用命令
.当前目录
..上级目录
cp a.txt b.txt 复制并命名
cp -r /home/test /root/test2 复制目录
mv a.txt /home/b.txt 移动并重命名
rm -rf a.txt 删除当前目录下的a.txt,rf强制删除不提示,rm -rf /整个系统删除慎用
mkdir -p /home/mtx/study 若不存在创建目录
touch a.txt 新建文件
./jmeter 执行当前目录下的文件
pwd
- 文件编辑
vi ./a.txt 编辑 vim高级编辑
i进入编辑模式
Esc 退出编辑模式
在非编辑模式下
Ctrl+f: 向上翻页
Ctrl+b: 向下翻页
Ctrl+d: 向上翻半页
Ctrl+u: 向下翻半页
G:移动光标到文件最后
:0 回车:移动光标到文件第一行
:set number :显示行号
:1,$ s/info 52/err 77/g 从第一行到最后一行,将所有的’info 52’替换为’err 77’
:s/info 52/err 77/g 将当前行的的’info 52’替换为’err 77’
^:移动到行首
$:移动到行尾
yy:复制选中内容
p:粘贴
dd:删除光标所在行
/abc:搜索文件中包含abc的行
:wq :保存退出
- 文件查看
cat a.txt 一次查看所有信息
more a.txt 分屏查看,按空格下一页,按b上一页面
less a.txt 分屏查看,按空格下一页,按b上一页面
tail -100 a.txt 查看文件后100行
tail -f a.txt 实时查看文件尾
head -100 a.txt 查看前100行
- 包管理工具yum(相当于苹果的app store)
从指定的服务器自动下载prm包且安装,自动处理依赖关系,且一次性安装所有依赖的软件包,无须繁琐地一次次下载、安装
yum list:列表所有的包(已安装+可安装)
yum list installed:列表已安装的包
yum search 包名:查找指定包
yum install -y 包名:安装指定包(-y 遇到询问自动确认yes)
yum remove 包名:删除指定包
yum update 包名:更新指定包
- 文件压缩、解压缩
zip -r test.zip test 将当前test文件夹压缩为test.zip
unzip test.zip 解压test.zip到当前目录
unzip test.war 解压test.war到当前目录
tar cvf test.tar.gz test 将当前test文件夹压缩为test.tar.gz
tar xvf test.tar.gz 将test.tar.gz解压到当前目录
tar tvf test.tar.gz 不解压直接查看test.tar.gz包含的文件列表
zcat test.tar.gz 直接查看test.tar.gz压缩包里的内容
- l权限控制
chmod +x ./lcx.txt 对当前目录下的lcx.txt文件加执行权限
chmod +x ./* 对当前目录下的所有文件加执行权限
chmod -x ./lcx.txt 去掉当前目录下的lcx.txt的执行权限
chmod 777 ./lcx.txt 对当前目录下的lcx.txt文件设所有人有rwx读写执行权限
chown root:root ./lcx.txt 将当前目录下的lcx.txt拥有者改为root组root用户
chown -R root:root ./* 将当前目录及子目录下文件拥有者改为root组root用户
chattr +i 禁止修改和删除文件
chattr -i 取消限止
lsattr 查看权限
man 帮助
- 文件搜索
find / -name lcx*.txt 从根目录下全局搜索lcx*.txt文件
find / -amin -10 在根目录下全局搜索10分钟内访问过的文件(access time)
find / -mmin -10 在根目录下全局搜索10分钟内修改过的文件(modify time)
find / -atime -1 在根目录下全局搜索24小时内访问过的文件(access time)
find / -mtime -1 在根目录下全局搜索24小时内访问过的文件(modify time)
find / -ctime -1 在根目录下全局搜索24小时内改变过的文件(change time)
find / -user fred 查找用户fred下的文件
find / -size +1000c 查找大于1000字节的文件(c:字节,k:KB,M:MB,G:GB)
find / -size -1000k 查找小于1000KB的文件(c:字节,k:KB,M:MB,G:GB)
- 系统命令
ip addr或ipconfig:查看ip信息
systemctl restart/start/stop network 网卡重启/启动/关闭
systemctl start/stop/status firewalld.service防火墙启动/关闭/查看启动状态
ps -ef|grep tomcat 查看进程并过滤tomcat进程
top -n 10 及时显示进程状态
du -sh 查磁盘空间
kill -9 <pid>|grep <pid> 杀掉进程,pid为进程号
history 查看历史命令
nohup ./xxx.sh & 在后台执行xxx脚本
netstat -anp|grep 3306 查看系统中3306端口所属进程
netstat -nlpt 实时监控网络信息
netstat -i -c 1 每隔一秒一次
rz 本地上传文件
- 设置别名
文件 .bashrc里 设置完生效source .bashrc
alias logs='cd /data/logs/slbbiz'
alias seeser='sh /data/tools/seeser.sh'
显示所有别名:alias -p
- Linux高频面试题目
awk [options] ‘pattern{action}’ file1,file2 #options分隔符,默认为空格;$2列数,从1开始;处理有规律的列
awk '{print $2,$6}' lcx.log|cut -b 2-37^C 打印文件lcx.log中的空格分隔的第二、六列并只显示2-37个字节内容
awk -F '#' '{print $1}' lcx.log 打印文件lcx.log中的以“#”分隔的第二、六列并只显示2-37个字节内容
sort排序:
sort:-r反向排序(reverse),默认正向;-n按数字排序(number)
uniq统计相临行的重复次数,-c显示出现次数
1、某文件有多列数据,空格隔开,统计第n列单词,打印出现频率最高的前5个单词
awk '{print $7}' info.log |sort|uniq -c|sort -rn|head -5
sed :在线流编辑器(只输出到相应的终端),不改变文件内容 格式sed[option][n1,n2]function;行操作包括增删改查
N1,n2
-n:只显示被处理过的行
-i:直接修改读取的文件内容,而不是输出到终端
a:新增一行内容,新增到下面一行
c:替换行,替换n1,n2之间行
d:删除行,
i:插入行,i插入到下面一行
p:打印,通常p会与sed -n一起运行,只打印处理过的行
s:替换同vi里类似,eg: 1,20s/old/new/g
打印2-4行内容:sed -n '2,4p' info.log
删除2-4行内容:sed '2,4d' info.log
在第一行后新增一行,只显示处理过的行:sed -n '1a lcx add' info.log
搜索并打印包含lcx的行:sed -n '/01.208/p' info.log
替换原文本(-i),将所有(g)lcx替换成liucx:sed -i 's/lcx/liucx/g' info.log
2、统计日志中调用前五的进程数
awk '{print $7}' info.log|awk -F '.' '{print $6}'|uniq -c|sort -rn|head -5
3、grep过滤前面结果中的数据;对文件及结果过滤处理,可以重复利用
查看包含指定字符串的行:grep 'Failed to' error.log
-n显示行号:grep -n 'Failed to' error.log
-B n显示匹配字符串的行及前n行:grep -B 5 'Failed to' error.log
-A n显示匹配字符串的行及后n行:grep -A 5 'Failed to' error.log
-C n显示匹配字符串的行及前后各n行:grep -C 5 'Failed to' error.log
-v不包含某些字符串的行