Linux命令

shell

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 后台运行
nohup python3 app.py > ./app.log 2>&1 &
# gunicorn启动flask
# --access-logfile:成功日志
# --error-logfile:错误日志
# -w:进程数
# -b:ip:port
gunicorn --access-logfile /home/python/logs/access_app.log --error-logfile /home/python/logs/error_app.log -w 5 -b 0.0.0.0:8808 app:app
# 你好






k8s

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 搜索所有job
k get job --all-namespaces|grep ***
# 搜索所有pod
k get pod --all-namespaces|grep ***
# 查看job详情
k describe job -n ** ***
# 查看pod详情
k describe pod -n *** ***
# 查看启动pod节点ip

# 查看pod日志
k logs -n *** -f ***
# 进入pod
k exec -it -n *** ***

# 端口映射到主机上
k expose deployment -n ai-engineer feed-deepfm --type=NodePort --port=80

# 多个pod使用一个ip
k expose deployment -n ai-engineer feed-deepfm --type=ClusterIP --port=80

# 删除svc
k delete svc -n ai-engineer feed-deepfm

yarn

1
2
3
4
5
6
7
8
9
# 查看所有任务
yarn application -list -appStates ALL|grep
# 查看任务状态
yarn application -status ID
# 查看yarn日志
yarn logs applicationId ID
# 删除任务
yarn application -kill ID

docker

1
2
3
4
5
6
7
8
9
10
11
export DEVICES=$(\ls /dev/nvidia* | xargs -I{} echo '--device {}:{}')

docker run -it $DEVICES -v /usr/cuda_files:/usr/cuda_files:rw -v /usr/lib64/nvidia:/usr/lib64/nvidia:rw -v /usr/lib64/nvidia:/usr/local/nvidia/lib64 -v /usr/bin/nvidia-smi:/usr/bin/nvidia-smi -v /usr/lib64:/usr/lib64
$image_name bash

# 设置环境变量
-e "a=b"
# 以宿主机的网络启动,启动spark时需要加入
--net=host
# 添加映射
-v /**/**:/**/**:读写

awk

1

hadoop

1
2
3
4
5
6
# 总的文件的限额 剩余的文件限额 文件夹空间的限额 文件夹可用空间的大小 文件夹的个数 文件的个数 文件所占的空间大小(不计算副本)
hadoop fs -count -h -q ./




cd:命令用于切换当前工作目录至 dirName(目录参数)

语法:

1
`cd [dirName]``cd 目录``cd /tmp/test`

实例:

跳转到/tmp/test目录

1
`jingjiandeMacBook-Pro:/ jingjian$ cd /tmp/test``jingjiandeMacBook-Pro:test jingjian$`

跳转到自己的home目录

1
`jingjiandeMacBook-Pro:test jingjian$ cd ~``jingjiandeMacBook-Pro:~ jingjian$`

cat:命令用于连接文件并打印到标准输出设备上

语法:

1
`cat [-nbse]  fileName``cat -参数 文件名``cat -n /tmp/test/txt1.txt`

参数:

  • -n 由 1 开始对所有输出的行数编号
  • -b 和 -n 相似,只不过对于空白行不编号
  • -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -e 在每行结束处显示 $

常用:

  • cat /tmp/test/txt1.txt

实例:

设定原文档内容为

1
`111` `222``333``444`   `555``666``777``888``999`

带行号输出

1
`jingjiandeMacBook-Pro:test jingjian$ cat -n /tmp/test/txt1.txt``     ``1`  `111``     ``2``     ``3`  `222``     ``4`  `333``     ``5`  `444``     ``6``     ``7``     ``8``     ``9`  `555``    ``10`  `666``    ``11`  `777``    ``12`  `888``    ``13`  `999`

忽略空行行号,多行空行合并,行末尾标记,带行号输出

1
`jingjiandeMacBook-Pro:test jingjian$ cat -nbse /tmp/test/txt1.txt``     ``1`  `111``$``$``     ``2`  `222``$``     ``3`  `333``$``     ``4`  `444``$``$``     ``5`  `555``$``     ``6`  `666``$``     ``7`  `777``$``     ``8`  `888``$``     ``9`  `999``$`

ifconfig 命令可用于显示或设置网络设备

语法:

1
2
3
4
ifconfig [网络设备][down up -allmulti -arp -promisc add<地址> del<地址>]
ifconfig 网络设备名 选项

ifconfig eth0 down

参数:

  • add<地址> 设置网络设备IPv6的IP地址。
  • del<地址> 删除网络设备IPv6的IP地址。
  • down 关闭指定的网络设备。
  • <hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址。
  • io_addr<I/O地址> 设置网络设备的I/O地址。
  • irq<IRQ地址> 设置网络设备的IRQ。
  • media<网络媒介类型> 设置网络设备的媒介类型。
  • mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
  • metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
  • mtu<字节> 设置网络设备的MTU。
  • netmask<子网掩码> 设置网络设备的子网掩码。
  • tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
  • up 启动指定的网络设备。
  • -broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
  • -pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。
  • -promisc 关闭或启动指定网络设备的promiscuous模式。
  • [IP地址] 指定网络设备的IP地址。
  • [网络设备] 指定网络设备的名称。

常用:

  • ifconfig
  • ifconfig eth0 down
  • ifconfig eth0 up

示例:

查看所有网卡信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ ifconfig

eth0 Link encap:Ethernet HWaddr 00:50:56:0A:0B:0C
inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fe0a:b0c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:172220 errors:0 dropped:0 overruns:0 frame:0
TX packets:132379 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:87101880 (83.0 MiB) TX bytes:41576123 (39.6 MiB)
Interrupt:185 Base address:0x2024

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2022 errors:0 dropped:0 overruns:0 frame:0
TX packets:2022 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2459063 (2.3 MiB) TX bytes:2459063 (2.3 MiB)

关闭/启动指定网卡

1
2
3
$ ifconfig eth0 down   // 关闭eth0网卡

$ ifconfig eth0 up // 开启eth0网卡

为网卡配置和删除IPv6地址

1
2
3
$ ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡设置IPv6地址

$ ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址

用ifconfig修改MAC地址

1
2
3
4
5
6
7
8
9
$ ifconfig eth0 down //关闭网卡

$ ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址

$ ifconfig eth0 up //启动网卡

$ ifconfig eth1 hw ether 00:1D:1C:1D:1E //关闭网卡并修改MAC地址

$ ifconfig eth1 up //启动网卡

配置IP地址

1
2
3
4
5
$ ifconfig eth0 192.168.1.56 //给eth0网卡配置IP地址

$ ifconfig eth0 192.168.1.56 netmask 255.255.255.0 // 给eth0网卡配置IP地址,并加上子掩码

$ ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255 // 给eth0网卡配置IP地址,加上子掩码,加上个广播地址

启用和关闭ARP协议

1
2
3
$ ifconfig eth0 arp //开启

$ ifconfig eth0 -arp //关闭

设置最大传输单元

1
$ ifconfig eth0 mtu 1500  //设置能通过的最大数据包大小为 1500 bytes

ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)

语法:

1
2
3
ls [-alrtAFR] [name...]
ls -参数 目标路径
ls -l /tmp/test

参数:

  • -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为”.”的视为隐藏档,不会列出)
  • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • -r 将文件以相反次序显示(原定依英文字母次序)
  • -t 将文件依建立时间之先后次序列出
  • -T 显示完整的年月日时分秒时间
  • -A 同 -a ,但不列出 “.” (目前目录) 及 “..” (父目录)
  • -F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/“
  • -R 若目录下有文件,则以下之文件亦皆依序列出

常用:

  • ls
  • ls -l
  • ls -A

实例:

列出/tmp/test目录下的所有的文件及目录(包括.和..)

1
2
jingjiandeMacBook-Pro:/ jingjian$ ls -a /tmp/test
. .. .ssh folder1 folder2 txt1.txt txt2.txt

按创建时间先后顺序展示区分目录下所有的目录及文件的详情

1
2
3
4
5
6
7
jingjiandeMacBook-Pro:/ jingjian$ ls -ltrFA /tmp/test
total 0
drwxr-xr-x 6 jingjian wheel 192 6 17 15:00 .ssh/
-rw-r--r-- 1 jingjian wheel 0 6 17 15:00 txt1.txt
-rw-r--r-- 1 jingjian wheel 0 6 17 15:00 txt2.txt
drwxr-xr-x 2 jingjian wheel 64 6 17 15:01 folder2/
drwxr-xr-x 4 jingjian wheel 128 6 17 15:01 folder1/

mkdir 命令可用于创建一个新的文件夹

语法:

1
`mkdir [-p] [dirname]` `mkdir -参数 文件夹` `mkdir -p /tmp/test`

参数:

  • -p 确保目录名称存在,不存在就创建一个

常用:

  • mkdir text
  • mkdir -p text1/text2/text3

示例:

创建文件夹

1
2
$ mkdir text 
$ ls text/

一次性创建多层文件夹

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ mkdir -p text1/text2/text3 

$ ls
text/ text1/

$ cd text1/

$ ls
text2/

$ cd text2/

$ ls
text3/

ping 命令可用于检测主机于目标主机之间网络是否通畅

语法:

1
`ping [-dfnqrRvciIlpst] [addressname]` `ping -参数 地址` `ping www.baidu.com`

参数:

  • -d 使用Socket的SO_DEBUG功能。
  • -c<完成次数> 设置完成要求回应的次数。
  • -f 极限检测。
  • -i<间隔秒数> 指定收发信息的间隔时间。
  • -I<网络界面> 使用指定的网络接口送出数据包。
  • -l<前置载入> 设置在送出要求信息之前,先行发出的数据包。
  • -n 只输出数值。
  • -p<范本样式> 设置填满数据包的范本样式。
  • -q 不显示指令执行过程,开头和结尾的相关信息除外。
  • -r 忽略普通的Routing Table,直接将数据包送到远端主机上。
  • -R 记录路由过程。
  • -s<数据包大小> 设置数据包的大小。
  • -t<存活数值> 设置存活数值TTL的大小。
  • -v 详细显示指令的执行过程。

常用:

示例:

测试主机是否与外部网络连通

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@bufan ~]#  ping www.baidu.com

PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=1 ttl=128 time=8.50 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=2 ttl=128 time=10.9 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=3 ttl=128 time=10.4 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=4 ttl=128 time=10.2 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=5 ttl=128 time=10.8 ms

--- www.a.shifen.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 8.501/10.209/10.965/0.897 ms

//需要手动Ctrl+c终止

指定接收包的次数

1
2
3
4
5
6
7
8
[root@bufan ~]# ping -c 2 www.baidu.com
PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=1 ttl=128 time=13.6 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=2 ttl=128 time=10.5 ms

--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1005ms
rtt min/avg/max/mdev = 10.582/12.098/13.615/1.520 ms

多参数使用(-i:每3秒发送一次,-s:包大小为1024)

1
2
3
4
5
6
7
8
9
10
11
[root@bufan ~]# ping -i 3 -s 1024 www.baidu.com
PING www.a.shifen.com (180.101.49.12) 1024(1052) bytes of data.
1032 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=1 ttl=128 time=10.9 ms
1032 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=2 ttl=128 time=12.2 ms
1032 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=3 ttl=128 time=13.7 ms
1032 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=4 ttl=128 time=14.1 ms
1032 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=5 ttl=128 time=16.7 ms
^C
--- www.a.shifen.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 12048ms
rtt min/avg/max/mdev = 10.977/13.569/16.732/1.945 ms

rm命令用于删除一个文件或者目录

语法:

1
`rm [-ifr] name...``rm -参数 目录/文件``rm -rf /`

参数:

  • -i 删除前逐一询问确认
  • -f 强行删除,无需逐一确认
  • -r 将目录及其下所有亦逐一删除

常用:

  • rm
  • rm -r

实例:

逐一删除/tmp/test下的所有目录/文件 并取消

1
`jingjiandeMacBook-Pro:/ jingjian$ rm -ir /tmp/test/*``examine files in directory /tmp/test/folder1? n``examine files in directory /tmp/test/folder2? n``remove /tmp/test/txt1.txt? n``remove /tmp/test/txt2.txt? n`

强制删除/tmp/test/folder1下面的所有文件及目录

1
`jingjiandeMacBook-Pro:/ jingjian$ rm -rf /tmp/test/folder1/*``jingjiandeMacBook-Pro:/ jingjian$ ls /tmp/test/folder1``jingjiandeMacBook-Pro:/ jingjian$`

注意点:

rm -rf 使用需谨慎再谨慎

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件

语法:

1
`tail [-fn] [filename]``tail -参数 文件``tail -f /tmp/test/txt1.txt`

参数:

  • -f 循环读取
  • -n <行数> 显示文件的尾部 n 行内容

常用:

  • tail -f /tmp/test/txt1.txt
  • tail -n 5 /tmp/test/txt1.txt

示例:

持续查看/tmp/test/txt1.txt文件最新内容

1
`jingjiandeMacBook-Pro:/ jingjian$ tail -f /tmp/test/txt1.txt``333``444`   `555``666``777``888``999`

查看/tmp/test/txt1.txt文件末五行内容

1
`jingjiandeMacBook-Pro:/ jingjian$ tail -n ``5` `/tmp/test/txt1.txt``555``666``777``888``999``jingjiandeMacBook-Pro:/ jingjian$`

torch 命令可用于创建一个新文件

语法:

1
`touch [-acdfmrt] [filename]` `touch -参数 文件` `touch /tmp/test/txt1.txt`

参数:

  • -a 或–time=atime或–time=access或–time=use  只更改存取时间。
  • -c 或–no-create  不建立任何文档。
  • -d  使用指定的日期时间,而非现在的时间。
  • -f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
  • -m 或–time=mtime或–time=modify  只更改变动时间。
  • -r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
  • -t  使用指定的日期时间,而非现在的时间。

常用:

  • torch text.txt
  • torch text1.txt text2.txt

示例:

创建单个文件

1
$ touch text.txt $ ls text.txt

一次性创建多个文件

1
2
3
$ touch text1.txt text2.txt 
$ ls
text.txt text1.txt text2.txt

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 zoubinbf@163.com

×

喜欢就点赞,疼爱就打赏