Linux 常用命令笔记
Linux 常用命令笔记
1. locate
locate:用来定位文件的位置,如:locate a.txt 但是这个命令有延迟,也就是新建的文件不一定能搜索到,如果非要找到新建的文件可以使用 updatedb 命令来强制更新locate依赖的数据库。
2. 查询文本文件行数
wc -l filename
3. 列举一级子目录的大小
du -h --max-depth=1
3. top 使用技巧
在top环境中,大写字母E可以用来改变显示界面中的单位。
3.远程Linux服务器
ssh username@192.168.1.1
或
ssh username@hostnme
使用主机名需要在本地进行主机名与IP地址映射:
在/etc/hosts文件中添加一行:192.168.1.1 hostname.domain
5.远程传送文件
传送文件:
scp /home/Download/filename username@host_ip:/home/Download/
在后面增加文件名可以用来重命名
传送目录:
scp -r /home/Download/foldername uesername@host_ip:/home/Download/
远程传送都需要对方用户的密码。
6.添加用户和组
添加组:groupadd name
删除组:groupdel name
注意:一般在为daemon程序添加用户时经常把主目录设置在/var/lib/name/
添加用户:useradd -d /var/lib/name -m mongo -g mongo -s /sbin/nologin
-d:指定主目录
-m:指定自动创建不存在的目录
-g:指定用户组
-s:非登录用户
usermod -d /home/new mongo // 更改用户目录
useradd mongo -s /sbin/nologin //不指定home目录,自动建立home目录
7.修改文件所属用户名和组
find .|xargs grep -ri "IBM"
查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名
find .|xargs grep -ri "IBM" -l
txpck/s:每秒钟发送的数据包
rxbyt/s:每秒钟接收的字节数
txbyt/s:每秒钟发送的字节数
rxcmp/s:每秒钟接收的压缩数据包
txcmp/s:每秒钟发送的压缩数据包
rxmcst/s:每秒钟接收的多播数据包rxpck/s:每秒钟接收的数据包
txpck/s:每秒钟发送的数据包
rxbyt/s:每秒钟接收的字节数
txbyt/s:每秒钟发送的字节数
rxcmp/s:每秒钟接收的压缩数据包
txcmp/s:每秒钟发送的压缩数据包
rxmcst/s:每秒钟接收的多播数据包
echo 'test' | cut -c2 e echo 'test' | cut -c2-3 es echo 'x y z' | cut -d ' ' -f 3
z
cut -d ' ' -f 3 test.txt
z
17. egrep
按照规则过滤文本文件
-c 统计匹配行数
-n 显示行号
-v 过滤带有关键字行
-A 2 额外显示匹配行的后2行
-B 2 额外显示匹配行的前2行
-C 2 额外显示匹配行的前后2行
-o 只显示匹配关键字
egrep -o 'role=[0-9]+' test.log | sort | uniq -c egrep -o '\btoken:\S*\b' test.log | sort | uniq -c
18. awk
按照规则对文本进行列过滤
echo 'linux shell test' | awk '{print NR, $1}' 1 linux ls -lh | awk '{sum+=$5} END {print sum}' 1081.4 ls -h | awk 'BEGIN{pv=0} {pv++} END{print "pv:"pv}' pv:11 ls -lh | awk '{sum[$2]+=1} END{for(i in sum)print i "\t" sum[i]}' 288K 1 1 5 2 2 3 2 9 2
awk -F: '{if ($1 == "root") {print $1;print $6}}' /etc/passwd
root
/root
注意:; 可以起到换行的作用。
注意:
awk '{if($1>0) {print NR, $1} else {print NF, $2}}' data.txt
和
awk '{if($>0)} print NR, $1; else print NF, $2}' data.txt
这两种方式任选一种,}和;不可以同时出现,如下是错误的。
// 错误:awk '{if($1>0) {print NR, $1}; else {print NF, $2}}' data.txt
// awk分割字符串
awk 'BEGIN{begno=123;split(begno,str,"");print str[1],str[2],str[3]}'
// awk print tab
awk -F: '{print $1,"\t",$7}' /etc/passwd
// awk 数值和字符串比较问题
// awk 自动将 $1,$2转化成了数值型,已经越界,
echo "10025350462330387914 10025350462330388480" | awk '{if ($1"" == $2"") print $1 " = " $2; else print "NO"}'
egrep 'GetLinkById' a.txt | awk 'BEGIN{start_time=""; stop_time=""; start=0; stop=0; num = 0; total_count=0; total_cost=0} {split($2"", str, "."); if ($7"" == "start") {start=str[2]; start_time=$2""} if ($7"" == "stop") {stop=str[2]; stop_time=$2""}; num++; if (num == 2){ num = 0; total_count++; total_cost+=stop-start; print $9 "\t" start_time "\t" stop_time "\t" start "\t" stop "\t" stop-start}} END{print total_count, total_cost}'
awk 'BEGIN{count=0; total=0} {split($8, str, "="); count++; total+=str[2]; print $8, str[1], str[2]} END{printf("%d %f %f\n", count, total, total/count)}' new_stop.log
19. 查看处理器核数
grep 'model name' /proc/cpuinfo
20. 命令替换
一个命令想用上一个命令的输出值作为入参,可以使用命令替换来实现。
格式:命令1 '命令2'
示例:cd 'pwd'
其中命令2的输出作为命令1的参数,注意这里的符号是指反引号,被它括起来的内容作为命令执行,执行的结果作为命令1的参数。例如以下命令将 pwd 命令列出的目录作为 cd 命令的参数,结果仍停留在当前目录下。
21. 时间转换
date Tue Jun 4 14:06:25 2019 # Unix标准时间化 date +%s 1559628467 # 反解Unix标准时间 date -d @1559628467 Tue Jun 4 14:07:47 2019 #高级操作(注意反引号) date -d @`date +%s`
22. FTP
ftp ip
input name
input password
下载文件:get /work/data/d1.txt /home/app/d1.txt
上传文件:put /home/app/d1.txt /work/data/d1.txt
23. 解压缩
tar.gz tar.bz2 tar gz bz2
压缩:tar -czvf filename.tar.gz dir/file
解压:tar -xzvf filename.tar.gz
查看:tar -tzvf filename.tar.gz
-c:压缩(同时支持文件和文件夹)
-t :查看压缩包
-x :解压,可以搭配-C(大写)在特定目录解开
-j : 适用于bz2
-z :适用于gz(gzip)
-v :显示文件名
-f:(路径+文件名+后缀名)
-C:解压特定目录
-p:保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
--exclude=FILE:在压缩的过程中,不要将那些文件打包
24. 系统信息查询
#查询Linux内核版本 uname -a #查询Linux系统版本 cat /etc/issue # 查询GLIBC版本 strings /lib64/libc.so.6 |grep GLIBC
25. 远程文件同步
# Start rsync service: # For Ubuntu sudo systemctl restart rsync.servcie sudo systemctl status rsync.service # Update config file for rsync: read only = no # Sync local directory to remove directory(If the Doc is not exist in destination, rsync will create a new directory named Doc): rsync -av ./Doc wanghaiyang@10.1.0.31:/home/workspace # Sync remove directory to local directory: rsync -av wanghaiyang@10.1.0.31:/home/workspace/Doc ./
posted on 2016-01-20 21:00 wanghaiyang1930 阅读(343) 评论(0) 编辑 收藏 举报