压缩打包 tar 1 2 3 4 5 6 $ tar -cvf /tmp/etc.tar /etc $ tar -czvf /tmp/etc.tar.gz /etc $ 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:/ 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 root@bogon:~$ id user1 root@bogon:~$ sudo ls -l /root 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@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