linux 学习心法:
(1)一切接文件
(2)一切没有消息的消息就是最好的消息
安装虚拟机下linux环境:
1,下载vm12或更高版本,获取其秘钥,下载centOS7.iso镜像
2,安装vm,默认安装,路径无中文,输入秘钥。
3,新建虚拟机,自定义下一步,下一步 空白磁盘 linux-版本-CentOS 7下一步,自定义名称、路径(路径磁盘剩余空间大于设定内存。)内核数是本机cpu核数的一半,内存是实际内存的一半,下一步,,下一步,创建新虚拟磁盘,50g,拆分多个文件。下一步。完成。
4,设置虚拟机,dvd使用ISO映射文件。找到linux系统文件镜像。 4,启动虚拟机,挂载磁盘分配,boot 1G,swap 2g,home 15g。剩余磁盘空间全部给/。
1、基本命令
(1)pwd查看当前工作路径
(2)cd切换工作路径。
cd .切换到上一级
cd .. 切换到根目录中,
cd path进入path中。
绝对路径:/path从/开始算
相对路径:. path从当前路径开始算
(3)ls 列出当前工作路径下的文件
-l 列出当前路径下文件的信息和总用量
-i 显示当前路径下文件的inode号
-h 常和l一起使用,显示文件占用磁盘空间大小
-d将目录名像其它文件一样列出,不是列出其内容,通常不单独使用
-a列出目录中所有文件,包括以.开头的文件
(4)查看文件内容
cat filepath 显示文件所有内容
more/ less filepath 按屏显示(需翻页)
/key 搜索内容
q退出
head -n filepath 显示 文件前n行
tail -n filepath 显示文件后n行
(5)复制cp
cp filepath1 filepath2 将1路径下的某个文件 复制到2路径下
cp -r 要复制的文件夹 复制到目标位置
(6)剪切mv
mv 源路径 目标路径
例:mv /root/text/tar /root/
(7)删除rm
rm [-r(目录) -f(强制)] filepath
(8)创建空目录 mkdir [path] dirname
(9)创建空文件touch [path] filename
(10)关机
shutdown -h now
poweroff
init 0
halt
重启
shutdown -r now
reboot
init 6
(11)查看输入历史命令
history
2、文件管理
(1)查看文件属性:
ls -l(部分)
drwxr-xr-x. 3 root root 141 12月 3 11:48 桌面
drwxr-xr-x. 3 root root 39 11月 28 10:24 python1119
stat filepath(具体)
[root@localhost ~]# stat python1119/
文件:"python1119/"
大小:39 块:0 IO 块:4096 目录
设备:fd00h/64768d Inode:33584988 硬链接:3
权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2018-12-03 09:01:34.501382579 +0800
最近更改:2018-11-28 10:24:07.000000000 +0800
最近改动:2018-11-28 22:14:01.176429905 +0800
创建时间:-
(2)文件类型d
不以后缀区分文件类型,,
一共七种文件类型:
- regular 普通文件
d directory 目录文件
c charactor 字符设备文件
b block 块设备文件
l link 符号链接文件
p pipe 管道文件
s socket 套接字文件
(3)文件拥有者和所属组
创建用户:useradd username
给定密码:passwd username
切换用户 su - username
删除用户 userdel -r username
登出用户exit
用户信息:/etc/passwd
组信息:/etc/group
密码: /etc/shadow
创建组:groupadd groupname
删除组:groupdel groupname
用户添加到组内:
gpasswd -a user group
用户从组中删除:
gpasswd -d user group
(4)文件权限
拥有者 所属组 其他用户
u g o a(all)
权限:(0755/drwxr-xr-x)
修改文件权限:
<1>chmod u/g/o/a(+-)r/w/x filepath
<2>chmod 0666 filepath
修改文件的拥有者和所属组:
chown user:(group) filepath
权限的意义:
目录文件:
r ls列出目录中文件
w touch/mkdir/rm对目录中文件创建、删除目录或文件夹
x cd进入目录
非目录文件:
r cat读取
w echo写入
x 执行
防止产生权限过大的文件:
umask
mode&~umask== 文件真正的权限
特殊权限:
u+s 所有由此权限的可执行文件,可以使普通用户在执行此命令期间,将身份切换为文件拥有者
(5)文件硬链接个数 2
硬链接:一个文件,多一个名字
iNode是同一个,同一个分区的唯一标示。
硬链接文件不能跨分区。
ln scrpath dest
cp -l scrpath dest
符号链接(软连接):一个源文件,多个快捷方式
可跨分区,存储的是源文件的路径。
必须使用绝对路径
ln -s srcpath dest
cp -s crcpath dest
(6)文件大小
查看文件大小stat filepath 中,块大小
文件大小(size)!=所占磁盘空间大小(block)
block=512 bytes字节
查看文件所占磁盘空间大小
du -sh filepath
查看磁盘分区占用情况 df -h
(7)文件时间:
最近访问:access time
最近更改modify time ls -l内容改变
最近改动change time 属性改变的
(8)文件的查找
可执行文件的查找:
which cmd 只查找cmd的文件路径
whereis cmd 和cmd相关的帮助文件一起找到
非可执行文件:
遍历数据库 locate filepath
更新数据库 updatedb
find(遍历磁盘空间)
find path options key
options:
-name 按名字
-size 按大小
-mtime 修改时间(天)-mmin分钟数
-type文件类型f/d/c/b/p/s/l
-exec 对与查找到的结果执行
find /etc/ -name hello -exec ls -l{} ;
只对找到的结果执行ls -l结果,不打印路径。
-ok 同上,执行ls -l之前会询问
-print 打印查找的结果
-a连接多个查找的选项
(9)文件的打包
压缩.gz .bz2 .zip
gzip file 压缩为.gz
gunzip file.gz 解压缩
bzip2 file 压缩为bz2
bumzip2 file.bz2
zip xxx.zip file dir1
unzip xxx.zip
tar options xx.tar.xx file1...dir...
options:
-c创建
-v可视化
-f在最后,后跟包名
-j生成bz2压缩格式
-z生成gz压缩格式
-J生成xz压缩格式
-x 解压缩
-C指定解压缩路径
-t不解压不解包情况下查看压缩包中内容
-r向包(不是压缩包)追加新文件
(10)文件重定向
当用户登录成功后,三个文件一次打开:
标准输入stdin(0)、输出stdout(1)、标准错误输出stderr(2)
标准输入重定向:0< 或<
标准输出重定向:1<或<
标准错误输出重定向:2>
追加 >>
(11)|管道:左边输出,右边输入,
将左边输出的结果通过 | 管道输入到右侧
(12)wc [-lwc] filepath
-l line 统计filepath文件的行数
-w word 单词个数
-c charactor 字符个数
(13)grep [-iwn] key filepath 筛选文件内容
-i 忽略大侠写
-w 单词完全匹配
-n 输出行号
3、vim编辑器的使用:
vim filepath---->打开--->一般模式
--->进入编辑模式进行编辑(iIaAoOsS)
--->从编辑模式进入一般模式(Esc / Ctrl+c)
--->从一般模式进入命令行模式(:w保存 :q退出)
一般模式下:
2yy 复制2行
p 粘贴
2dd 剪切2行
u 撤销
Ctrl+r 还原
x/X 删除光标字符
r 替换
R 一直替换到Esc为止
块选择:
ctrl+v 方向键选择
I / A 插入相应内容--->Esc Esc
gg 首行
G 末行
5G 第5行
命令行模式下:
:
w 保存
q 退出
q! 强制退出
w filepath 另存为
saveas filepath 另存为
%s/oldstring/newstring/g 将所有的oldstring替换为newstring
2,5s/oldstring/newstring/g 将第2行到第5行oldstring替换为newstring
set nu 显示行号
set ts=4 将Tab设置为4个字符宽度
4、软件包管理
源码包
.tar.gz .tar.bz2 .tar.xz
(1)下载并解压包
(2)编译make
(3)make install
二进制包(.rpm)
yum 安装:
/etc/yum.repo.d/xxx.repo
yum install xxxx
例如有如下软件包:
coreutils-8.22-21.el7.x86_64.rpm
coreutils包名
yum install coreutils 安装
yum remove coreutils 卸载
yum repolist 查看仓库中有多少软件包
yum list 列出所有的软件包
yum provides /usr/bin/ls 查看文件对应的软件包
yum update coreutils 更新
yum clean all 清除缓存
yum源所在路径
/etc/yum.repos.d/xxx.repo
本地yum源配置:
1.将镜像文件挂载到文件系统
2.创建镜像的挂载点 mkdir /mnt/centos7
3.光盘镜像在/dev/cdrom目录
4.挂载光盘镜像
mount -t iso9660 -o loop /dev/cdrom /mnt/centos7
5.配置镜像的yum源
vim /etc/yum.repos.d/my.repo
[local_centos7]
name=centos7
baseurl=file:///mnt/centos7
enabled=1
gpgcheck=0
已下载的rpm软件包,安装:
xxxx.rpm
rpm -ivh xxxx 安装已下载的rpm包
rpm -e xxxx 卸载
rpm -U xxxx 更新
rpm -qa 查询系统中所有已安装的rpm包
rpm -qf /usr/bin/ls 查询ls对应的软件包
5、网络管理
<1>查看ip, mac, netmask....
ip addr
ifconfig
<2>查看/启动/重启/关闭/自启动/禁用服务
systemctl status/start/restart/stop/enable/disable 服务名字
<3>手动配置静态ip地址
关闭NetworkManager
systemctl stop NetworkManager
配置/etc/sysconfig/network-scripts/ifcfg-xxx
DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
IPADDR=172.16.60.1
PREFIX=24
GATEWAY=172.16.60.254
重启网络服务
systemctl restart network
<4>防火墙
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
<5>vsftpd服务 ---> 文件共享
安装:yum install vsftpd
启动:systemctl start vsftpd
开机自启动:systemctl enable vsftpd
配置文件:/etc/vsftpd/vsftpd.conf
访问共享目录:
下载安装:yum install lftp
lftp 192.168.5.129
lcd --->切换下载路径
get filepath 下载非目录文件
mirror filepath 下载目录文件
bye 退出
<6>nfs远程挂载
下载安装:
yum install nfs-utils rpcbind
启动:
systemctl start nfs
systemctl enable nfs
systemctl start rpcbind
systemctl enable rpcbind
编辑共享路径:
vim /etc/exports
/var/ftp/pub *(ro,sync,no_root_squash)
客户端挂载:
mount 192.168.5.129:/var/ftp/pub /mnt
6、进程管理
查看进程信息
ps aux
终止进程通过kill 发送信号
kill -l查看所有的信号
kill -9 3333 发送9号信号给进程号为3333的进程
top 实时查看系统中进程的运行状态
7、创建pyenv虚拟环境
(sudo) yum install openssl* 安装其所需要的库文件
git clone https://github.com/yyuu/pyenv.git ~/.pyenv 下载pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
exec $SHELL 重启终端运行的程序(shell)
source ~/.bash_profile 重新加载配置文件.bash_profile
pyenv install --list 列出所有我们可以通过pyenv安装的python版本
pyenv install -v 3.6.4 用pyenv命令安装python3.6.4
pyenv versions 查看当前系统中所有的python版本
pyenv version 查看当前所使用的版本
pyenv global 3.6.4 将使用版本切换到3.6.4
pyenv version
python
重启系统
8、git的基本使用
创建仓库
登陆github帐号,创建远程仓库
同步到本地
生成key:
ssh-keygen
cat ~/.ssh/id_rsa.pub 将密钥复制到帐号的key
git clone git@github.com:zhangzongyan/python20181119.git
python20181119---》本地仓库
基本使用命令
git add .file---->追踪
git commit -m "备注" ---->提交到仓库
git push ---->提交到远程仓库
git pull ---->下载到本地仓库
git status ---->查看仓库状态
git log ----->查看仓库日志(id)
git reset --hard id ----->切换到指定版本
git reflog ----->查看最新版本日志
git rm ----->删除
学习疑问:
1,不清楚文件重定向的意义,有什么用处?