Manage-linux

常用命令

查看系统信息

  • linux 版本
    uname -a
  • linux版本
    cat /proc/version
  • 系统
    more /etc/issue

大文件切分与合并

针对大文件传输容易中断的问题,可以将其切分为小文件,传输后再合并。

  • 切分,可以指定每个文件的大小
    split -b 1024M LargeFile.tar prefix_
  • 合并
    cat prefix_* > merged_file

针对rm被禁用的情况,删除文件

rsync -a --delete empty/ target/ 其中empty为空目录,可以将target目录中的文件删除。

远程连接

ssh

  • ssh建立隧道命令,远程服务器没办法开启其他端口,但是想要用tensorboard之类的,可以使用这个方法
    ssh -N -L 本地端口:localhost:服务器端口 -p 服务器ssh端口(默认22可以不用写) 服务器IP

目录管理

grep

查找文件里符合条件的字符串
grep "word" file

wc

利用wc指令我们可以计算文件的Byte数、字数、或是行数
wc -l file

查看目录中的文件数量

通过ls、grep、wc三个命令的组合可以实现查看目录下文件的数量,ls获取目录所有的文件,grep筛选调.和..,wc用于行记数
ls -l | grep "-" | wc -l

应用管理

后台运行程序

  • 使用 “nohup”

    • “nohup ./test.sh &”,忽略hangup信号,防止终端关闭时程序退出。
    • 运行状态可以用 jobs -l 来查看。
    • 输入bg将一个在后台暂停的命令。变成在后台继续运行。假设后台中有多个命令,能够用bg %jobnumber将选中的命令调出。
    • 输入 fg 将后台中的命令调至前台继续执行。
  • 使用 “setsid” 即 “setsid ./test.sh”。
    ps -ef | grep test.sh 查看对应的进程号,可以杀死

  • 最简单,将命令放入括号当中,比如说:(./test &),这样就行了。
  • 按住 Ctrl+z键,即可将一个正在前台执行的命令放到后台,并且暂停
    查看: jobs
    继续执行: bg 1

    查看端口及服务是否启动

  • 查看ssh服务是否启动
    sudo ps -e |grep ssh
  • 使用lsof
    lsof -i:端口号查看某个端口是否被占用
  • 使用netstat
    使用netstat -anp|grep 80

磁盘管理

1.du命令

du会显示指定的目录或文件所占用的磁盘空间。
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][—block-size][—exclude=<目录或文件>][—max-depth=<目录层数>][—help][—version][目录或文件]
参数说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-a或-all 显示目录中个别文件的大小。  
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或--dereference-args 显示指定符号连接的源文件大小。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-k或--kilobytes 以1024 bytes为单位。
-l或--count-links 重复计算硬件连接的文件。
-L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m或--megabytes 以1MB为单位。
-s或--summarize 仅显示总计。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
--max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
--help 显示帮助。
--version 显示版本信息。

sudo du --max-depth=1 -h /

du -sh * (同上)

2. df命令

看到当前系统分区(包括交换分区swap)的”文件系统、容量、已用 、可用、已用% 、挂载点“等实时装况
df -l /home
df -h /home #-h,显示M、G更直观

3.fdisk命令

fdisk -l #查看所有挂着的磁盘

网络管理

查看网关方法

1
2
3
4
5
6
1、route -n
2、ip route show
3、traceroute www.prudentwoo.com -s 100 【第一行就是自己的网关】
4、netstat -r
5、more /etc/network/interfaces 【Debian/Ubuntu Linux】
6、more /etc/sysconfig/network-scripts/ifcfg-eth0 【Red Hat Linux】

检查端口

  • 查看已经连接的服务端口(ESTABLISHED)
    netstat -a
  • 查看所有的服务端口(LISTEN,ESTABLISHED)
    netstat -ap
  • 查看指定端口,可以结合grep命令:
    netstat -ap | grep 8080
    也可以使用lsof命令:
    lsof -i:8888
  • 若要关闭使用这个端口的程序,使用kill + 对应的pid
    kill -9 PID号
    ps:kill就是给某个进程id发送了一个信号。默认发送的信号是SIGTERM,而kill -9发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程。

防火墙管理

UFW是一个主机端的iptables类防火墙配置工具,比较容易上手。一般桌面应用使用ufw已经可以满足要求了。
Ubuntu下安装方法
sudo apt-get install ufw
使用方法

  • 启用
    sudo ufw enable
    sudo ufw default deny
    作用:开启了防火墙并随系统启动同时关闭所有外部对本机的访问(本机访问外部正常)。
  • 关闭
    sudo ufw disable
  • 查看防火墙状态
    sudo ufw status
  • 开启/禁用相应端口或服务举例

    ufw allow 80 允许外部访问80端口
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sudo ufw delete allow 80 禁止外部访问80 端口
    sudo ufw allow from 192.168.1.1 允许此IP访问所有的本机端口
    sudo ufw deny smtp 禁止外部访问smtp服务
    sudo ufw delete allow smtp 删除上面建立的某条规则
    ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 要拒绝所有的流量从TCP的10.0.0.0/8 到端口22的地址192.168.0.1
    可以允许所有RFC1918网络(局域网/无线局域网的)访问这个主机(/8,/16,/12是一种网络分级):
    sudo ufw allow from 10.0.0.0/8
    sudo ufw allow from 172.16.0.0/12
    sudo ufw allow from 192.168.0.0/16
  • 推荐设置
    sudo apt-get install ufw
    sudo ufw enable
    sudo ufw default deny
    这样设置已经很安全,如果有特殊需要,可以使用sudo ufw allow开启相应服务。

设置

解决linux终端路径过长的问题

vim ~/.bashrc
找到61行左右

1
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

\u 表示当前用户名
\h 表示当前主机名(hostname)
\w 表示当前路径
把\w改为\W(小写的w改为大写),不显示全路径,只显示basename(当前文件夹名)
用户名和主机名也没有什么用

Contents
  1. 1. 常用命令
    1. 1.1. 查看系统信息
    2. 1.2. 大文件切分与合并
    3. 1.3. 针对rm被禁用的情况,删除文件
  2. 2. 远程连接
    1. 2.1. ssh
  3. 3. 目录管理
    1. 3.1. grep
    2. 3.2. wc
    3. 3.3. 查看目录中的文件数量
  4. 4. 应用管理
    1. 4.1. 后台运行程序
    2. 4.2. 查看端口及服务是否启动
  5. 5. 磁盘管理
    1. 5.1. 1.du命令
    2. 5.2. 2. df命令
    3. 5.3. 3.fdisk命令
  6. 6. 网络管理
    1. 6.1. 查看网关方法
    2. 6.2. 检查端口
    3. 6.3. 防火墙管理
  7. 7. 设置
    1. 7.1. 解决linux终端路径过长的问题
|