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.修改文件所属用户名和组

  chown [-R] username file/directory
   chown [-R] username:groupname file/directory
    -R : 进行递归( recursive )的持续更改,即连同子目录下的所有文件、目录都更新成为这个用户组
8.查看当前用户与组
  whoami //查看当前用户名
  groups username //查看当前用户所属组
  groups //查看当前用户所在组的成员
9. 在目录中查找文件中的字符串
  查找目录下的所有文件中是否含有某个字符串 
  find .|xargs grep -ri "IBM" 
  查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 
  find .|xargs grep -ri "IBM" -l
   详细介绍
10. 监控网络流量
  (1)yum install iptraf
         iptraf-ng 提供了对:链接与端 的流量/包的监控,同时 iptraf-ng 使用了命令行界面形式提供,不用记忆命令了,极好。
    (2)yum install nethogs
     nethogs 提供了针对进程的网络字节流量监控机制,与 iptraf 可以功能互补。
  (3)yum install sysstat
      sysstat 工具提供了丰富的系统检测功能,sar 可以检测网络流量。
         示例:sar -n DEV 5 2 每相隔5秒取一次值,一共2次,然后退出
      rxpck/s:每秒钟接收的数据包
      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:每秒钟接收的多播数据包
11. CentOS 7 防火墙
  systemctl enable firewalld.service // 开启防火墙开机启动
  systemctl disable firewalld.service // 关闭防火墙开启启动
  systemctl start firewalld.service // 启动防火墙
  systemctl stop firewalld.service // 关闭防火墙
12. 防火墙开放端口
  firewall-cmd --zone=public --add-port=123/tcp --permanent // 永久开放 tcp 端口:123,成功返回:success
  firewall-cmd --reload // 重新加载,成功返回:yes
  firewall-cmd --zone=public --query-port=39879/tcp // 查询开放的端口时候成功,成功返回:yes
13. CentOS 7 包管理
  查询包:yum list | grep jdk-devel
  安装包:yum install java-1.8.0.-openjdk-devel.x86_64
14. Linux 文件重定向
  a.out 1>log.txt 2>&1
  将a.out程序的标准输出重定向的log.txt文件,并同时将标准错误重定向到标准输出中。
15. 安装字体文件
  cp yahei consolas hybrid.ttf /usr/share/fonts/
       cd /usr/share/fonts/
  fc-cache -fv
  fc-list | grep yahei
 
 
16. cut
  按照字符/字节对文件进行分割。
    -b 按照字节分割
    -c 按照字符分割
    -d 自定义分割副
    -f 配合-d一起使用
  范围控制:
    n:显示第n项
    n, m:显示第n,m项
    n-m:显示从第n到第m项[n, m]
    n-:显示从第n到行未
    -m:显示从第1到第n
    -:显示正行
  
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

  按照规则对文本进行列过滤

    -F 指定分割符
     $0 当前行
     $1, $2 当前行的第一列、第二列
    NF 当前记录的列数
    NR 当前记录的行数
    FNR 各个文件自己的行号
    RS 输入记录分隔符,默认换行符
    OFS 输出字段分割符,默认空格
    ORS 输出记录分割符,默认换行符
    FILENAME 当前文件名
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
 
  

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`

 

转载于:https://www.cnblogs.com/wanghaiyang1930/p/5146517.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值