安装 Ubuntu Desktop
注意事项一:进入BIOS
最近在lenovo电脑上安装,连进BIOS都是那么的费劲,别人的差不多都是F12,而你看lenovo的,进入BIOS之后还得,关闭安全启动模式,设置开机启动的传统模式
注意事项二:分区的设置
如果是为了省心的话,直接弄个4G的swap(交换分区),然后将所有的空间给/(根目录)
但这次我给/boot可以单独分成一个区,大小为200M
注意事项三; /boot空间不足
/boot文件里面存放的是系统引导文件和内核的一些东西,这些东西100M是足够容纳的。而大家都知道linux内核一直在更新,跟新后,旧的内核就不在使用,但旧的内核文件还在boot里面,占据着空间,更新几次过后boot文件就会被占满,显示boot磁盘空间不足。这时为了更新需要将不用的内核文件删除,释放空间
1 2 3 4 5 6
| df -h uname -a sudo apt-get remove linux-image- (按两次tab键) df -h sudo /usr/sbin/update-grub
|
注意事项四:设置主屏和副屏
1 2 3 4 5 6 7 8
| xrandr xrandr --output HDMI2 --auto --primary xrandr --output eDP1 --right-of HDMI2 --auto
|
不需要记住所有的命令,使用man info查看帮助文档:
1 2 3 4 5 6
| ls --help man ls man -k passwd man -k nautilus info ls
|
用户与权限
用户:是限制使用者或进程可以使用,不可以使用哪些资源.
用户组:用来方便组织管理用户GID
UID:每个用户拥有一个,操作系统实际使用的是UID,而不是用户名.每个用户属于一个主组,属于一个或多个附属组(最多有31个),每个可登陆用户拥有一个指定的shell.
特别注意:每个进程以一个用户身份运行,并受到该用户可访问的资源限制.所以进程的权限与该用户的权限一样.
UID:用32位的二进制,用十进制查看,但系统为了兼容老式系统,用户ID限制在16位(65535个用户上限).root用户:ID为0,系统用户(1~499):没有一个登陆的shell,为某些服务创建的,比如说WEB服务,共享服务,ftp服务打印服务,这些用户仅仅是做为 这些进程去使用的,普通用户(500以上)
Linux权限基于UGO模型进行控制,权限rwx对目录的影响:
r:可列出目录内容,w:可在目录中创建删除文件,
x:可访问目录内容(进入目录),目录必须拥有X权限,否则无法进入目录
rwx(4+2+1)
默认权限:umask的值会从对象的全权限值中减掉
普通用户的umask:0002,root用户的为0022
目录的全权限 777-002
文件的全权限 666-002
umask: 显示 12位长的权限 UGO占用9bite
umask 0022 : 去设置默认权限
但一个目录,只能属于一个组,当多个组需要共同使用这个目录时,UGO模型的权限就不行了.
ACL(Access Control List)是一种高级权限机制,允许我们对一个文件或目录进行灵活的复杂的权限设置.
允许针对不同用户,不同组对一个目标文件或目录进行权限设置,不受UGO模型限制.
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
| who whoami id passwd username groupadd femnGroup groupdel femnGroup useradd -G femnGroup femn1 useradd -d /home/femn1 -u 1000 femn1 sudo usermod -d /home/femn1 -s /bin/bash femn1 userdel femn1 userdel -r femn1 chmod -R 777 文件名 chmod u+rw,g+o chmod go+rw chmod a-x chown -R name:name 文件 chown femn(用户名)learn.txt(文件名,如果是目录,则加上 -R参数) chgrp -R femnGroup learn.txt chmod u+s 文件: chmod g+s 目录: chmod o+t 目录: mount -o acl /dev/sda5 /mnt setfacl -m u:name:rwx linux setfacl -m g:name:rw linux setfacl -x u:name linux getfacl 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
| df -h df -at du -sh du -sh ~/* | sort -nr fdisk -l fdisk /dev/sda dumpe2fs -h /dev/sdb3 mkfs -t ext4 /dev/sda4 mkfs.ext4 /dev/sda4 mke2fs -j -L "partition-label-name" -b 4096 -i -c 128 /dev/sda4 mount /dev/sdc1 /home/name/usb mount -o remount,rw,auto /dev/sdc1 umount /home/name/usb or /dev/sdc1 挂载点或设备文件名 lsof |grep /dev/sdc1 mount -o loop /home/name/ubuntu-16.04-desktop-amd64.iso \ /hame/name/usb sudo dd if=xxxxx.iso of=/dev/sdc && sync nautilus .
|
传统的磁盘管理问题:
当分区大小不够用时无法扩展其大小,只能通过添加硬盘,创建新分区来扩充空间,但是新添加进来的硬盘是作为独立文件系统存在的,原有的文件系统并未得到扩充,上层应用很多时候只能访问一个文件系统,只能让现有磁盘下线,换上新的磁盘之后,再将原始数据导入.
LVM逻辑卷管理(Logical volume Manager)
PE(physical extend)物理扩展:逻辑卷空间管理的最基本单位,默认是4M
PV(physica volume)物理卷:将底层磁盘格式化成物理卷,可以是物理硬盘上的分区,也可以是整块物理硬盘
VG(volume group)卷组:空间池是给来装PE的,我们可以将一个或多个PV,加入到VG当中,当创建好了VG会有/dev/vgname的目录
LV(logical volume)逻辑卷(操作系统最终使用的是逻辑卷格式化之后的数据)/dev/vgname/lvname的目录,每个的逻辑卷空间有可以来自不同的物理磁盘
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
| 1. 创建PV sudo pvcreate /dev/sd[b-c] fdisk /dev/sdb1 使用t将分区类型改成8e(LVM) partprobe sudo pvcreate /dev/sdb1 sudo pvs 2. PV创建好了就可以创建VG了 sudo vgcreate vg0 /dev/sdb1 sudo vgs sudo pvs 3. 创建好卷组池就能从池中划分容量给逻辑卷(LV)了 sudo lvcreate -n lv0 -L 10G vg0 4. 创建好lv后就可以格式化它,成为文件系统使用 sudo mkfs.ext4 /dev/vg0/lv0 5. 挂载和使用 sudo mount /dev/vg0/lv0 /mnt 6. 扩充VG sudo pvcreate /dev/sdd sudo vgextend vg0 /dev/sdd 7. 扩充LV sudo vgs sudo lvextend -L +5G /dev/vg0/lv0 sudo resize2fs /dev/vg0/lv0
|
安装和下载
源的选择
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| ubuntu官方有自身的软件源,也可以通过software&update的设置中的other去选择Best server去选择源 我选择的是Main server 软件包会比较全(国内的选择清华镜像) sudo vim /etc/resolvconf/resolv.conf.d/base sudo vim /etc/resolvconf/resolv.conf.d/head nameserver 8.8.8.8 nameserver 8.8.4.4 sudo resolvconf -u sudo service networking restart sudo rm -r /var/lib/apt/lists/ sudo proxychains4 apt-get update
|
apt-get
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| sudo apt-get -y update sudo apt-get -y upgrade sudo apt-get -f install sudo apt-get install chromium-browser sudo apt-get remove firefox sudo apt-get purge firefox sudo apt-get clean apt-get autoremove apt-cache search chromium apt-cache show chromium-browser sudo apt-get check cat /etc/*release sudo lsb_release -a sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor sudo apt update sudo apt install indicator-sysmonitor sudo dpkg -i libaio1_0.3.110-4_amd64.deb dpkg -L libaio1 sudo dpkg -i **.deb dpkg -l |grep minitube dpkg -L minitube sudo dpkg --purge minitube sudo dpkg -i gdebi-core_0.9.5.7+nmu1ubuntu3_all.deb sudo dpkg -i gdebi_0.9.5.7+nmu1ubuntu3_all.deb gdebi --version sudo gdebi *.deb
|
apt-get的代理问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| apt-get -o Acquire::http::proxy="http://127.0.0.1:8087" update sudo vim /etc/apt/sources.list deb http://linux-packages.resilio.com/resilio-sync/deb resilio-sync non-free sudo vim /etc/resolv.conf nameserver 8.8.8.8 sudo service networking restart proxychains4 wget -qO - https://linux-packages.resilio.com/resilio-sync/key.asc | sudo apt-key add - sudo proxychains4 apt-get update sudo apt-get -f install sudo proxychains4 apt-get install resilio-sync
|
其它方式
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
| vim /proc/meminfo 文件来观察LINux系统上虚拟内存的当前状态. curl https://wordpress.org/latest.tar.gz | tar -zxvf - curl url/install.sh | sh wget -O redis.tar.gz \ http://download.redis.io/releases/redis-3.2.0.tar.gz tar -zxvf redis.tar.gz -C /usr/src make -C /usr/src/redis \ && make -C /usr/src/redis/src install mkdir ./jdk8 && tar -xzvf jdk8.tar.gz -C ./jdk8 --strip-components 1 wget https://ghost.org/zip/ghost-latest.zip unzip -uo ghost-latest.zip -d /var/www/ghost wget -qO- url/install.sh | sh wget --no-check-certificate url/install.sh -O ./install.sh curl -LOk https://ghost.org/zip/ghost-latest.zip unzip ghost-latest.zip -d ghost-temp curl http://localhost:8000/wrap?name=femn& get() http://localhost:8000/wrap -d name=femn post()方法请求 siege http://localhost:8000/?q=pants -c10 -t10s
|
文件和目录操作
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
| ll linux.md ll |grep -v linux.md history | grep -c rar touch file1 file file1 cp -Rf source destination \cp -R dir1 dir2 \cp -R content/themes/casper ../ghost/content/themes rm -rf file1 tail -f -n 20 /etc/passwd sudo ln -s /home/femn/file /usr/share/nginx/html/file mkdir ~/file mv !(vimrc_config) vimrc_config rm命令类似 sort -t ':' -k 3 -n /etc/passwd scp -r -P 22 root@ip:/server/app/main/handlers \ ./main/handlers/ scp -P 22 ./1.txt python@ip:/usr/share/nginx/html/file/ rsync -av -e "ssh -p 22" /home/python/app1.6/main/ \ root@ip:/server/app1.6/main/ rsync -av -e "ssh -p 22" /home/python/oldapp_8000/ \ root@ip:/server/app/main/ import screenshot.jpg gnome-screenshot -a ffmpeg -i source.mpg -s 960x540 -c:a copy destination.mp4
|
解压缩
1 2 3 4 5 6 7 8 9 10 11
| tar -zcvf /home/name/conclusion.tar.gz ./conclusion tar -zxvf ./conclusion.tar.gz tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩 rar x file.rar zip test.zip test unzip test.zip
|
环境变量
1 2 3 4 5 6 7 8 9 10 11 12 13
| printenv set vim ~/.profile export JAVA_HOME=/home/name/jdk1.8.0_92 export ANT_HOME=/home/name/apache-ant-1.9.7 PATH=${PATH}:/home/name/jdk1.8.0_92/bin:/home/name/apache/bin femn='hello,my name is femn' export femn unset femn
|
ubuntu ip
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
| vim /etc/modprobe.d/blacklist.conf sudo ifconfig enp0s3 192.168.1.101 netmask 255.255.255.0 sudo route add default gw 192.168.1.254 sudo vim /etc/network/interfaces auto enp0s3 iface enp0s3 inet static address 192.168.1.101 gateway 192.168.1.254 netmask 255.255.255.0 sudo vim/etc/resolv.conf nameserver 127.0.1.1 search DHCP HOST sudo /etc/init.d/networking restart sudo hostname python-Vostro-3901 sudo hostnamectl set-hostname intl.aliyun.centos7 vim /etc/hostname
|
centos7 ip
1 2 3 4 5 6 7
| vim /etc/sysconfig/network-scripts/ifcfg-网卡名字 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.107 GATEWAY=192.168.1.254 NETMASK=255.255.255.0 service network restart
|
查看开启端口
1 2 3 4 5 6
| sudo nmap -sTU localhost sudo nmap -PS 192.168.1.222 nc -zv 45.76.0.178 22 22334
|