咸鱼

咸鱼是以盐腌渍后,晒干的鱼

0%

Linux(Ubuntu)-常用命令

压缩打包

tar

1
2
3
4
5
6
# 仅打包(不压缩)
$ tar -cvf /tmp/etc.tar /etc
# gzip格式压缩( z参数 .tar.gz 或 .tgz)
$ tar -czvf /tmp/etc.tar.gz /etc
# bzip2格式压缩(j 参数 .tar.bz2)
$ tar -cjvf /tmp/etc.tar.bz2 /etc

zip 打包目录

1
$ zip -r -o -9  test.zip test/

-r 递归 ,-o 输出文件 , -9 压缩比例(1~9)

查看哪个目录占用空间大(比较耗时)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
root@bogon:/# du -s /* | sort -nr
9199072 /usr
1943584 /var
1858812 /root
746372 /home
733020 /lib
104728 /boot
20356 /lost+found
13616 /sbin
12644 /bin
9308 /etc
6068 /run
3952 /lib32
172 /dump
48 /tmp
20 /data
16 /opt
12 /media
8 /srv
4 /mnt
4 /lib64
0 /vmlinuz.old
0 /vmlinuz
0 /sys
0 /proc
0 /initrd.img.old
0 /initrd.img
0 /dev

查看当前目录文件大小情况

1
2
3
4
5
6
7
8
9
10
11
12
$ du -h

8.0K ./.cmake/packages/libwebsockets
12K ./.cmake/packages
128K ./.java
8.0K ./.vim
...省略
16K ./.aptitude
12K ./.w3m
8.0K ./.config/configstore
12K ./.config
54M .

创建一个有sudo权限的用户

参考

1
2
3
4
5
6
root@bogon:~$ adduser user1
root@bogon:~$ passwd user1
root@bogon:~$ usermod -aG sudo user1 #添加到sudo组(必须)
root@bogon:~$ id user1 # 确认组信息
root@bogon:~$ sudo ls -l /root # 测试sudo命令
root@bogon:~$

用户shell环境

通过 adduser 新建的用户,登录之后没有shell环境,终端不会显示用户名和路径,

1
2
root@bogon:~$ vim /etc/passwd # 编辑passwd文件
46 user1:x:1003:1003::/home/user1:/bin/bash #给用户增加 /bin/bash

修改用户所属的组

1
2
root@bogon:~$ usermod -g root user1 #修改到root组
root@bogon:~$ usermod -d /home/samwen samwen #修改用户登入时的目录

文件权限

chmod修改权限

Linux的文件权限

1
2
3
4
5
samwen@bogon:~$ mkdir test
samwen@bogon:~$ vim hello.txt
samwen@bogon:~$ ls -ll
drwxrwxr-x 2 samwen samwen 4096 Aug 7 17:27 test
-rw-rw-r-- 1 samwen samwen 6 Aug 7 17:33 hello.txt
目标 目录 用户 组用户 其他 总值
test d rwx rwx r-x 775
hello.txt - rw- rw- r– 664

r : 只读权限,值等于 4

w : 只写权限,值等于 2

x : 执行权限,值等于 1

-: 无权限,值等于 0

修改权限

1
root@bogon:/home/bogon# chmod -R 760 mydir

760 的意思是:用户读/写/执行权限、组用户读/写权限、其他用户无权限。

常用的权限值:

1
2
3
4
5
6
7
775:默认创建目录的权限
664:默认创建文件的权限
600:只有所有者有读和写的权限
644:所有者有读和写的权限,组用户只有读的权限
666:每个人都有读和写的权限
700:只有所有者有读和写以及执行的权限
777:每个人都有读和写以及执行的权限

查看文件的所有者等信息

1
2
3
4
5
#显示文件夹信息 http://man.linuxde.net/ls
ls -ld mydir/

#显示文件夹内信息
ls -lh mydir/

chown修改文件所有者和组

1
2
3
chown -R 组:用户 目录/

chown -R bogon:bogon mydir

查找软件的目录

1
2
3
# 查找软件的目录
root@openapi:~# whereis iptables
iptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz

查看所有端口和使用者

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#查看所有端口和使用者
root@bogon:~/apache-tomcat/bin# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1007/sshd
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 928/nginx
tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 917/redis_exporter
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 927/prometheus
tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 934/postgres_export
tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 923/node_exporter
tcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 935/ruby
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 928/nginx
tcp6 0 0 :::22 :::* LISTEN 1007/sshd
tcp6 0 0 :::8009 :::* LISTEN 110928/java
tcp6 0 0 :::8080 :::* LISTEN 110928/java
tcp6 0 0 ::1:9168 :::* LISTEN 935/ruby

查看是谁用了某个端口

1
2
3
4
5
# 查看是谁用了某个端口
root@bogon:/etc/init.d# lsof -i:1883
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mosquitto 733 mosquitto 3u IPv4 11835 0t0 TCP *:1883 (LISTEN)
mosquitto 733 mosquitto 4u IPv6 11836 0t0 TCP *:1883 (LISTEN)

管理启动服务

1
2
# 通过sysv-rc-conf 管理启动服务
#sudo apt-get install sysv-rc-conf

开机启动脚本目录

1
2
3
4
5
6
7
8
9
10
11
12
13
# 开机启动脚本目录(/etc/init.d)
root@bogon:/etc/init.d# ls
acpid glances postfix reboot sudo
apparmor grub-common postgresql redis-server udev
apport halt pppd-dns resolvconf umountfs
atd irqbalance procps rsync umountnfs.sh
console-setup killprocs rabbitmq-server rsyslog umountroot
cron kmod rc screen-cleanup unattended-upgrades
dbus mysql rc.local sendsigs urandom
dns-clean netdata rclocal.backup single x11-common
emqttd.dpkg-new networking rcS skeleton
friendly-recovery ondemand README ssh
root@bogon:/etc/init.d#

每个开发人员都应该知道的 10 个 Linux 命令

来源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

10. file

返回一个指定文件的信息。例如,你可以用它来输出一个图片文件的尺寸信息。

file logo.png

输出结果:

> PNG image data, 16 x 16, 8-bit/color RGBA, non-interlaced

9. iotop, powertop, nethogs

你如何监控Linux系统中发生了什么?这三个命令可以帮上大忙;

* iotop: 将进程按磁盘写次数排序,并且显示程序写磁盘的次数和频率。

* powertop: 将进程按能量消耗列表显示。这是一个重要的命令,尤其是当你在外面不能为你的电脑充电的时候。

* nethogs: 将进程按网络流量列表显示。

8. tee

tee 将程序的输出结果重定向,使得我们可以同时显示和保存结果,例如,添加一个新的条目到hosts文件中:

echo "127.0.0.1 foobar" | sudo tee -a /etc/hosts

7. pidof, kill and pkill

这三个重要命令帮助你控制系统中运行的程序。

pidof 打印出正在运行程序的进程ID。例如,下面的命令将输出nginx的进程ID:

pidof nginx

你可以把nginx的进程ID输入到 kill 命令来终止它。

kill -USR2 $(pidof nginx)'

pkill 是一个快捷命令,可以终止匹配的进程:

pkill -f nginx

6. tmux

如果还你没有安装tmux,请一定安装它。 tmux是你终端的优秀窗口和会话管理器。

5. tree

以树状格式列出目录的内容。它有简洁的选项,比如只显示目录;

tree -d
6. dpkg -L
查看某个软件安装了哪些文件,比如查看vsftpd:dpkg -L vsftpd |tac