一、linux主题
1、 安装zsh(我这里是ubuntu系统):apt install zsh
(centos下:sudo yum install zsh
)
2、百度搜索:oh my zsh,首页找到Install oh-my-zsh now,复制命令至命令行
$ sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
3、若提示Error: git is not installed
,那么需要安装git:apt install git
,centos下:install git
4、安装完成后再次输入$ sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
命令就OK了。
二、文件和目录管理
1、创建一个新的单个test目录:mkdir test
2、创建一个多级目录:mkdir -p test/test1/test2
3、创建一个test文件:touch test
4、删除一个空目录test(假设test目录下不存在任何子目录以及文件):rmdir test
5、删除一个存在子目录或者存在文件的目录(不提示任何信息):rm -r test
6、删除一个存在子目录或者存在文件的目录(提示是否确认删除):rm -ri test
7、删除一个存在子目录或者存在文件的目录(有些情况下目录会默认提示你是否删除,此时我们不想要它提示,ps:有些危险,使用需谨慎,可能需要坐牢):rm -rf test
8、复制命令:
创建一个文件:touch xing.txt
编辑此文件:vim xing.txt
将xing.txt复制一份新的并命名为jia.txt:cp xing.txt jia.txt
创建一个demo目录:mkdir demo
将demo复制一份并命名demo_1:cp -r demo demo_1
9、查看文件内容:
cat test.txt
查看文件内容,并且可以使用上下按键进行 翻页:less test.txt
查看文件内容前五行:head -5 test.txt
查看文件内容后五行:tail -5 test.txt
10、新增用户、用户组、赋予权限
新增用户租:groupadd xingVIP
新增用户:useradd fujiaxing
将tests目录所属组更改为xingVIP组下:chgrp xingVIP tests
查看tests所属组:ls -al
[root@instance-3uldysh5 opt]# ls -al
total 32
drwxr-xr-x. 8 root root 4096 Apr 20 11:08 .
dr-xr-xr-x. 18 root root 4096 Mar 31 16:13 ..
drwxr-xr-x 3 root root 4096 Dec 18 15:18 avalokita
drwxr-xr-x 8 root root 4096 Dec 18 15:18 bcm-agent
drwxr-xr-x 3 root root 4096 Apr 1 14:07 HellpWorld
drwxr-xr-x 12 root root 4096 Apr 1 00:25 hosteye
drwxr-xr-x 3 root root 4096 Mar 31 16:23 python_code
-rw-r--r-- 1 root root 0 Apr 2 17:17 test
drwxr-xr-x 2 root xingVIP 4096 Apr 20 11:08 tests
将test所属用户由root更改为fujiaixng:chown fujiaixng tests
查看tests所属用户:ls -al
[root@instance-3uldysh5 opt]# chown fujiaxing tests
[root@instance-3uldysh5 opt]# ls -al
total 32
drwxr-xr-x. 8 root root 4096 Apr 20 11:08 .
dr-xr-xr-x. 18 root root 4096 Mar 31 16:13 ..
drwxr-xr-x 3 root root 4096 Dec 18 15:18 avalokita
drwxr-xr-x 8 root root 4096 Dec 18 15:18 bcm-agent
drwxr-xr-x 3 root root 4096 Apr 1 14:07 HellpWorld
drwxr-xr-x 12 root root 4096 Apr 1 00:25 hosteye
drwxr-xr-x 3 root root 4096 Mar 31 16:23 python_code
-rw-r--r-- 1 root root 0 Apr 2 17:17 test
drwxr-xr-x 2 fujiaxing xingVIP 4096 Apr 20 11:08 tests
将tests赋予权限(所有可读可写可执行):chmod 777 tests
drwxrwxrwx 2 fujiaxing xingVIP 4096 Apr 20 11:08
11、查找文件
使用which查找文件(只能查找PATH环境变量中出现的路径下的可执行文件,有时候我们不知道某个命令的绝对路径,使用which就可以了):which ls
[root@instance-3uldysh5 bin] #which ls
alias ls='ls --color=auto'
/usr/bin/ls
使用whereis命令查找文件,预先生成一个文件列表库查找与给出的文件名相关的文件,格式为whereis [-bms] [文件名称](-b:只查找二进制文件、-m:只查找帮助文件(在man目录下的文件)、-s:只查找源代码文件)
[root@instance-3uldysh5 bin]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
[root@instance-3uldysh5 bin]# whereis -b ls
ls: /usr/bin/ls
[root@instance-3uldysh5 bin]# whereis -bm ls
ls: /usr/bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
[root@instance-3uldysh5 bin]# whereis -bms ls
ls: /usr/bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
使用find命名进行查找,可以根据名称进行查找,格式为find -name [文件名字] (注意:这个文件名字得是文件名称或后缀名都匹配才可以被查找到)
使用find命令进行查找,也可以根据类型进行查找,格式为 find -type d (文件类型有:f、b、c、d、l、s等类型)
[root@instance-3uldysh5 bin]# find -name test
./test
[root@instance-3uldysh5 bin]# find -type d
.
三、磁盘管理
1、查看磁盘使用情况:df -h
(以合适的方式展示,可以使用-k,-m,-b,-hc(总用量的汇总,不常用))
[root@instance-3uldysh5 bin]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 974M 0 974M 0% /dev
tmpfs 989M 0 989M 0% /dev/shm
tmpfs 989M 596K 988M 1% /run
tmpfs 989M 0 989M 0% /sys/fs/cgroup
/dev/vda1 40G 4.5G 33G 12% /
tmpfs 198M 0 198M 0% /run/user/0
2、查看总用量:du -sh
[root@instance-3uldysh5 bin]# du -sh
95M .
3、查看当前分区磁盘的基本信息:fdisk -l
4、新建分区:首先要在当前系统中创建一个磁盘(大小自己定),然后进行一系列分区(以下操作在ubuntu系统下完成);
pyvip@Vip:~$ sudo fdisk -l #查看当前磁盘信息
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x046d2b38
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 39845887 39843840 19G 83 Linux
/dev/sda2 39847934 41940991 2093058 1022M 5 Extended
/dev/sda5 39847936 41940991 2093056 1022M 82 Linux swap / Solaris
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors #这个磁盘就是我们新建的磁盘
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/cryptswap1: 1021.5 MiB, 1071120384 bytes, 2092032 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
pyvip@Vip:~$ sudo fdisk /dev/sdb #选择该磁盘的路径,并进入
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x4c80da65.
Command (m for help): m #获取帮助信息
Help:
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
Command (m for help): n #选择新建分区
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p #选择主分区
Partition number (1-4, default 1): 3 #1-4随便选择就好
First sector (2048-20971519, default 2048): 2048 #可以手动输入,也可以默认
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519):
Created a new partition 3 of type 'Linux' and of size 10 GiB. #成功创建一个分区
Command (m for help):
成功分区后,并未显示出来,还需要进行格式化操作;
pyvip@Vip:~$ sudo mke2fs -t ext4 /dev/sdb #格式化,设置为一个ext4格式的磁盘
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: d1177e9b-863b-4300-8e0f-3c375d048da3
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
此时我们已经完全创建好了一个新的磁盘,但是这个新的磁盘所在路径很复杂,所以我们需要将它进行挂载,我这里将这个磁盘挂载至/home下的/GuaZai目录中;
pyvip@Vip:/home$ sudo mount /dev/sdb /home/GuaZai/ #mount命令为挂载命令
pyvip@Vip:/home$ ls
GuaZai pyvip
pyvip@Vip:/home$ sudo df -h
Filesystem Size Used Avail Use% Mounted on
udev 482M 0 482M 0% /dev
tmpfs 100M 3.2M 97M 4% /run
/dev/sda1 19G 3.9G 14G 23% /
tmpfs 500M 4.0K 500M 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 500M 0 500M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user/1000
/home/pyvip/.Private 19G 3.9G 14G 23% /home/pyvip
/dev/sdb 9.8G 23M 9.2G 1% /home/GuaZai
不需要时可以卸载:unmount /dev/sdb
补充:当我们创建好新的磁盘并挂载成功后,重启系统后这个磁盘会消失,因此我们需要进行配置:
进入/etc目录下:cd /etc
编辑fstab文件:vim fstab
#
# /etc/fstab
# Created by anaconda on Mon Jun 22 02:56:36 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=decd9e73-2b1d-4286-98be-8b15dfc92ccb / ext4 defaults 1 1i
#加入下面的命令
/dev/sdb /home/GuaZai ext4 defaults 0 0
四、linux系统文件的压缩与打包
linux下最常见的压缩文件通常是tar.gz、此外还有.tar、.gz、.zip、.bz2;linux下的文件后缀名可加可不加,但是压缩文件最好加上,因为需要判断使用哪种压缩工具进行压缩,才能正确的压缩该类型的文件;
常见压缩文件的种类与压缩工具:
1、.gz:表示由gzip压缩工具压缩的文件;
2、.bz2:表示由bzip2压缩工具压缩的文件;
3、.tar:表示由tar打包程序打包的文件(tar并没有压缩功能,只是把一个目录合并成一个文件)
4、.tar.gz:可以理解为先由tar打包,在由gzip压缩
5、.tar.bz2:可以理解为先由tar打包,在由bzip2压缩
6、.tar.xz:可以理解为先由tar打包,然后由xz压缩
1、压缩文件(gzip):gzip -[1-9] [压缩文件]
(gzip只能压缩文件,不能压缩目录,1-9为压缩等级,9为最高,1为最低,正常我们使用6就可以)
解压:gzip -d [压缩后的文件]
[root@instance-3uldysh5 opt]# gzip -6 index.js
[root@instance-3uldysh5 opt]# ls
avalokita bcm-agent HellpWorld hosteye index.js.gz python_code
[root@instance-3uldysh5 opt]# gzip -d index.js.gz
[root@instance-3uldysh5 opt]# ls
avalokita bcm-agent HellpWorld hosteye index.js python_code test tests
2、压缩文件(bzip2):bzip2 -z [文件名称]
(bzip2不能压缩目录)
解压:bzip2 -d [压缩后的文件]
[root@instance-3uldysh5 opt]# bzip2 -z index.js
[root@instance-3uldysh5 opt]# ls
avalokita bcm-agent HellpWorld hosteye index.js.bz2 python_code test tests
[root@instance-3uldysh5 opt]# bzip2 -d index.js.bz2
[root@instance-3uldysh5 opt]# ls
avalokita bcm-agent HellpWorld hosteye index.js python_code test tests
3、压缩文件(xz):xz -z [文件名称]
(xz只能压缩文件)
解压:xz -d [压缩后的文件名称]
[root@instance-3uldysh5 opt]# xz -z index.js
[root@instance-3uldysh5 opt]# ls
avalokita bcm-agent HellpWorld hosteye index.js.xz python_code test tests
[root@instance-3uldysh5 opt]# xz -d index.js.xz
[root@instance-3uldysh5 opt]# ls
avalokita bcm-agent HellpWorld hosteye index.js python_code test tests
4、压缩目录(zip):zip -r [手动输入压缩后的名称(自己定)] [压缩的目录]
(前后不覆盖之前的目录,压缩只是压缩目录,目录里面的子目录或文件不压缩,全部压缩需要加-r)
解压:unzip [压缩后的名称]
[root@instance-3uldysh5 opt]# zip -r fujiaxing.zip fujiaxing/
adding: fujiaxing/ (stored 0%)
[root@instance-3uldysh5 opt]# ls
avalokita bcm-agent fujiaxing fujiaxing.zip HellpWorld hosteye index.js python_code test tests
[root@instance-3uldysh5 opt]# unzip fujiaxing.zip
Archive: fujiaxing.zip
[root@instance-3uldysh5 opt]# ls
avalokita bcm-agent fujiaxing fujiaxing.zip HellpWorld hosteye index.js python_code test tests
5、先将目录打包合并为一个文件:tar -czvf [打包后的名称(自己定)] [需要打包的目录]
之后进行压缩:gzip -6 [打包后的名称]
最后进行解压:tar -xzvf [压缩后的名称]
(先进行解压,然后进行解包)
[root@instance-3uldysh5 opt]# tar -czvf sss.tar fujiaxing/
fujiaxing/
fujiaxing/jiaxing/
fujiaxing/jiaxing/fu.txt
[root@instance-3uldysh5 opt]# ls
avalokita bcm-agent fujiaxing HellpWorld hosteye index.js python_code sss.tar test tests
[root@instance-3uldysh5 opt]# gzip -6 sss.tar
[root@instance-3uldysh5 opt]# ls
avalokita bcm-agent fujiaxing HellpWorld hosteye index.js python_code sss.tar.gz test tests
[root@instance-3uldysh5 opt]# gzip -d sss.tar.gz
[root@instance-3uldysh5 opt]# ls
avalokita bcm-agent fujiaxing HellpWorld hosteye index.js python_code sss.tar test tests
[root@instance-3uldysh5 opt]# tar -xzvf sss.tar
fujiaxing/
fujiaxing/jiaxing/
fujiaxing/jiaxing/fu.txt
[root@instance-3uldysh5 opt]# ls
avalokita bcm-agent fujiaxing HellpWorld hosteye index.js python_code sss.tar test tests
五、安装RPM包或源码包
1、wget:从互联网链接中下载RPM包;
下载vscode:wget -O vscode.rpm https://az764295.vo.msecnd.net/stable/3c4e3df9e89829dce27b7b5c24508306b151f30d/code-1.55.2-1618307357.el8.x86_64.rpm
(该链接需要在浏览器中下载内容中复制链接地址;-O vscode.rpm 意思为将新下载的rpm包更名为vscode.rpm)
2、安装RPM包:rpm -ivh vdcode.rpm
注意:当出现下方错误时候,需要安装依赖环境;
warning: vscode.rpm: Header V4 RSA/SHA256 Signature, key ID be1229cf: NOKEY
error: Failed dependencies:
libXcomposite.so.1()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libXcursor.so.1()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libXdamage.so.1()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libXfixes.so.3()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libXi.so.6()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libXrandr.so.2()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libXss.so.1()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libXtst.so.6()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libasound.so.2()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libatk-1.0.so.0()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libgbm.so.1()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libgdk-x11-2.0.so.0()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libgtk-3.so.0()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libpango-1.0.so.0()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libpangocairo-1.0.so.0()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
libxkbfile.so.1()(64bit) is needed by code-1.55.2-1618307357.el8.x86_64
解决方法:1、安装依赖环境yum install libXScrnSaver*
解决方法:2、加入参数,安装时不再分析依赖环境而直接安装rpm -ivh vscode.rpm --nodeps --force
检查vscode是否被安装:rpm -qa | grep nodejs
卸载vscode:rpm -e nodejs
3、安装系统下所有包:yum list
查看系统下是否存在node包:yum search node
安装node包:yum install nodejs
卸载node包:yum remove nodejs
4、举例列出常用的rpm命令:
# 安装
rpm -ivh your-package # 直接安装
rpm --force -ivh your-package.rpm # 忽略报错,强制安装
rpm -ivh --noscripts your-package # 在安装过程不执行脚本
rpm -ivh --replacepkgs your-package.rpm # 覆盖、替换安装
>在安装过程可能出现依赖错误,如A包依赖于B包,那么在A包安装之前,需要先安装好B包
# 查询
rpm -q tree # 查询指定的包是否安装
rpm -qa # 列出所有安装过的包
rpm -qf /bin/ls # 查询指定文件来自于那个安装包
rpm -qif /bin/ls # 返回软件包的有关信息
rpm -qlf /bin/ls # 返回软件包的文件列表
rpm -qi tree # 查询包元数据
rpm -ql tree # 获取rpm包中的文件安装的位置
rpm -qd tree # 查询包相关文档
rpm -qc bash # 查询包配置文件
rpm -q --scripts bash # 查询安装、卸载前后执行的脚本
rpm -q --changelog tree # 查询包更新信息
rpm -qpR file.rpm # 查看包依赖关系
# 卸载
rpm -e tree # 卸载
rpm -e --noscripts tree # 不执行脚本卸载
# 升级
rpm -Uvh your-package # 升级
rpm -Fvh your-package # 升级