Linux基础笔记
- 初始shell命令
(1)命令组成 : 命令 [选项] [参数] (之间用空格隔开)
eg: ls -l /home
ls——命令:整条命令的主题
-l——选项:会影响会微调命令的行为
/home——参数:命令作用的对象
(2)Tab可自动补全命令和文件
(3)快捷键:
^C :终止前台运行的程序 (^C 即 Ctrl+C )
^D :推出 (exit)
^L :清屏
- 常用命令
(1) ls 列出所包含类容
a) –a:(all)查看目录下的所有文件,包含隐含文件
b) –l:(long)吃那个列表显示
c) –i:(inode)显示文件的索引号(inode号)
d) –d:(directory)只列处目录名,不显示其他内容
e) –h:(human)显示单位,以人性化方式显示
(2) cd切换工作路径
绝对路径:从/开始
相对路径:从 . 或 .. 开始(. 当前 , ..上一级)
(3) pwd显示当前工作路径
(4) 查看文件内容
a) cat显示文件内容
b) less显示文件内容(比cat更灵活,可按屏显示,/+关键字 可进行搜索,q退出)
c) head –n 显示文件前n行
d) tail –n 显示文件最后n行
(5) 复制、剪切
a) cp 复制(目录需加 -r)
b) mv 剪贴(目录需加 –r ,强制删除 -f )
(6) 删除
rm ( 目录需加 –r ,强制删除 –f )
(7) 创建文件、目录
a) touch filename 创建空文件
b) mkdir dirname 创建空目录
(8) 关机、重启
a) 关机
i. Shutdown –h now
ii. Poweroff
iii. Half
iv. Init 0
b) 重启
i. Shutdown –r now
ii. Reboot
iii. Init 6
(9) 查看历史命令
history
(10) 查看手册
(11) Linux获得帮助
a) –help
b) man
- 区段1:用户指令
- 区段2:系统调用
- 区段3:程序库调用
- 区段4:设备
- 区段5:文件格式
- 区段6:游戏
- 区段7:杂项
- 区段8:系统指令
- 区段9:内核内部指令
- 区段n:Tcl或Tk指令
- 文件管理
(1) Linux一切皆文件
(2) 显示文件信息
a) stat filepath
b) ls –l 显示内容各个字段解析
i. 文件属性(占10个字符空间)
- 第一个字符:表示文件类型
Linux的七种文件类型
- regular 普通文件
d directory 目录文件
c character 字符设备文件
b block 块设备文件
l link 符号链接文件
p pipe 管道文件
s socket 套接字文件
2. 后九个字符:表示文件权限
拥有着 所属组 其他用用户(3个3位二进制,可用3个八进制表示)
u g o a(all)
权限 |
文件 |
目录 |
r(读取) |
读取文件的内容( cat ) |
列出目录的内容(ls) |
w(写入) |
更改文件内容( echo ) |
创建和删除目录的文件( touch/mkdir/rm ) |
x(执行) |
作为命令执行文件 |
可访问目录文件的内容(cd) |
修改文件权限:chomd
chomd u/g/o/a (- +) r/w/x filepath
chomd 0755 filepath
修改文件的所有者和所属组
chown username:groupname filepath
umask码:用于防止权限过大的文件
文件的真正权限:~umask & mode
ii. 文件的硬链接个数
硬链接:同一个文件多个名字
Inode是同一个分区文件的唯一标识(硬链接文件不能跨分区)
ln srcpath dest 创建硬链接
软连接(符号链接:相当于快捷方式,存储源文件的路径,可跨分区)
创建软连接:
ln –s srcpath dest
cp –s srcpath dest
iii. 文件拥有者、所有者
useradd username 创建用户
passwd username 为用户设置密码
su – username 切换用户
exit 登出用户
groupadd groupname 创建用户
groupdel groupname 删除组
gpasswd –a username groupname 将用户添加到组中
gpasswd –d username groupname将用户从组中删除
/etc/passwd 用户信息
/etc/group 组信息
/etc/shadow 密码
iv. 文件大小
ls –l 中所显示的文件大小不等于文件所占磁盘大小
Linux中磁盘以块为单位,最小单位8block(1block =512bytes)
stat filename
du -sh filepath 查看文件对应的文件所占用磁盘空间的大小
df -h 查看磁盘分区占用情况(包括挂载点)
v. 文件时间
Access time最近访问 |
|
Modify time最近更改(ls –l 所显示时间) |
内容改变 |
Change time最近改动 |
属性改变 |
内容分改变会引起属性的改变(内容改变后字节数会变)
(3) 文件查找
a) 可执行文件
i. which cmd
ii. whereis cmd
b) 非可执行文件
i. locate filepath遍历数据库
ii. updated 更新数据库
iii. find
find path options
-name 按名字找
-size 按文件大小查找
-mtime 修改时间
find /etc/ -mtime n(天)
-type 类型
-exec 对于查找到的结果执行
-ok在执行ls -l之前会询问
-a 连接多个查找选项的
(4) 文件打包压缩
i. 主要tar options xx.tar.xx file1.... dir.....
options:
-c 创建
-v 过程可视
-f 在最后,后跟包名
-j 生成bz2压缩格式
-z 生成gz格式压缩文件
-J 生成xz格式
-x 解压缩
-C 指定解压路径
-t 不解压不解包的情况下查看压缩包中内容
-r 向包中追加新文件
ii. 压缩:
.gz .bz2 .zip
gzip file 压缩为.gz
gunzip file.gz 解压缩
bzip2 file
bunzip2 file.bz2
zip xxx.zip file dir1 dir2
unzip xxxzip
(5) 文件重定向
a) 当用户登陆成功后,三个文件依次打开:
标准输入(stdin 0) 标准输出(stdout 1) 标准错误输出(stderr 2)
i. 0> 标准输入重定向
ii. 1>(可省略1直接使用>)标准输出重定向
iii. 2>标准错误输出重
iv. >> 追加
b) 管道 |
i. wc
wc [-lwc] filepath
-l line 统计filepath文件的行数
-w word 单词个数
-c charactor 字符个数
ii. grep
grep [-iwn] key filepath
-I --ignore-case 忽略大小写
-w --word-regexp 精确查找
-n --line-number在输出的每行前面加上它所在的文件中它的行号
注:find 查找文件;筛选文件内容
- vim编辑器的使用
vim filepath---->打开--->一般模式
--->进入编辑模式进行编辑(iIaAoOsS)
--->从编辑模式进入一般模式(Esc / Ctrl+c)
--->从一般模式进入命令行模式(:w保存 :q退出)
- 软件包管理
a) 源码包
<1>下载并解压解包
<2>编译make
<3>make install
b) 二进制包( .rpm )
yum install xxxx 安装
例如有如下软件包:
coreutils-8.22-21.el7.x86_64.rpm
yum install coreutils (coreutils包名)
yum update xxxx 更新
yum remove xxxx 卸载
yum repolist 查看仓库中有多少软件包
yum list 列出所有的软件包
yum provides /usr/bin/ls 查看文件对应的软件包
yum update coreutils 更新
yum clean all 清除缓存
本地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
c) 已下载的rpm软件包,安装:
xxxx.rpm
rpm -ivh xxxx 安装已下载的rpm包
rpm -e xxxx 卸载
rpm -U xxxx 更新
rpm -qa 查询系统中所有已安装的rpm包
rpm -qf /usr/bin/ls 查询ls对应的软件包
- 网络管理
a) 查看 ip, mac, netmask....
ip addr
ifconfig
查看/启动/重启/关闭/自启动/禁用服务
systemctl status/start/restart/stop/enable/disable 服务名字
b) 手动配置静态ip地址
c) 防火墙
d) vsftpd服务 (文件共享)
e) 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
- 进程管理
a) ps aux 查看进程信息
b) 终止进程通过kill 发送信号
kill -l查看所有的信号
kill -9 num发送9号信号给进程号num号进程
c) top 实时查看系统中进程的运行状态
- 创建pyenv虚拟环境
yum install openssl* 安装其所需要的库文件
(普通用户 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
成功后 重启计算机
- 使用GitHub进行项目管理
a) 创建仓库
登陆github帐号,创建远程仓库
同步到本地
生成key:
ssh-keygen
cat ~/.ssh/id_rsa.pub 将密钥复制到帐号的key
git clone url
b) 基本使用命令
git add .---->追踪
git commit -m "备注" ---->提交到仓库
git push ---->提交到远程仓库
git pull ---->下载到本地仓库
git status ---->查看仓库状态
git log ----->查看仓库日志(id)
git reset --hard id ----->切换到指定版本
git reflog ----->查看最新版本日志
git rm ----->删除
(常用git命令清单参考:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html)
- 新建代码库
- 配置
iii.
增加、删除文件- 代码提交
- 分支
- 标签
- 查看信息
- 远程同步
- 撤销
- 其他