linux

who 查看所有的当前登录用户信息 who am i 查看当前身份的所有信息
whoami 查看当前身份 clear 清除已经查看过得信息
last 显示最近使用过的用户信息 cal 查看今天日历
cal 2018 今年全年日历 cal 2 2019 查看2019年2月日历
date 查看系统时间

useradd hellokitty 创建一个名为hellokitty的普通用户 userdel 删除用户
passwd hellokitty 创建密码 su 切换用户
logout/exit --退出登录 reboot/init6 -重启服务器
shuttdown/init 0 --关机 init 0 没有提示就关机了
shutdown 10 10分钟后关机 shutdown now 立马关机
shutdown -c 取消关机

文件的操作
pwd 打印当前工作目录
cd 切换目录(){cd / 进入最根的目录,即系统根目录}
cd ~(进入用户根目录)
ls -a(当前文件夹下所有的目录) 列出目录下的内容(list directory contents)
cat /etc/centos-release 查看etc(配置文件)目录下的内容
目录 opt(软件目录) proc(正在运行的进程) usr(一般软件的安装目录)
cd .. (一个点表示当前目录,两个点表示上级目录)
ls -la(常格式查看,第一位是d的就是文件夹,-是文件,)
ls -l /etc etc目录下问件的常格式查看
ls -lR /etc etc目录下的递归查看
ctrl + c 终止正在运行的程序
man -manuals-差看帮助手册
命令 --help -

write hellokitty 给指定用户hellokitty发消息,消息写完,ctrl+d 发送
mesg n/y 是否接收消息
wall - 给所有人发出广播消息

文件夹(文件)的操作指令:
mkdir 创建文件夹
rmdir 删除空文件夹
mkdir -p abc/hello 创建了一个hello子文件夹,同时也创造了一个abc父文件夹
touch hello.txt 创建一个txt文件
echo 回升,相当于一个打印语句
echo 今天晚上请你吃饭 > readom.txt 将该句话写进random.txt里面
wget http://www.sohu.com/ 联网通过URL获取指定文件
cat -n 文件名 输出有多少行内容

rm -f 文件名 强制删除
rm 文件名 交互式删除
rm -rf 文件夹名 删除文件夹
history 查历史命令
!历史命令编号 --重新执行历史命令

cp 文件名1 文件名2 把1拷贝,新文件名叫2
cp 文件名1 路径
cp -r 文件夹1 文件夹2
mv hello.txt def/readme.md 把hello.txt 剪切到def文件夹下,改名为readme.md
mv index.html index2.html 在同一个文件夹下面移动,改文件名字
less / more 文件名 ----分屏查看
head -5 文件名 -----看文件的前5行
tail -10 文件名 -----看文件的后10行
wc 文件名 ---查看行数,单词数量,字符量
wc -l/-w 文件名 行/单词数量
sort 文件名 ---排序
sort -r 文件名 ---倒序排序
uniq 文件名 ---去重(只會去重響鈴的)
sort 文件名 | uniq 连接管道,连接两个进程,把前一个进程的输出作为下一个的输入

gzip /gunzip 压缩/解压缩
xz -z / xz -d 压缩/解压缩

tar是Linux系统下的归档文件(类似于windows下的rar文件)
tar -xvf 解归档文件夹
tar -cvf 归档文件的名字 ./* ---归档

Linux发行版本:
-Redhat
-CentOS
-Ubuntu
-Fedora
-SUSE
-Debian

Linux系统安装软件:
1.使用包管理工具 -yum(黄狗更新器) / rpm/apt /deb
2.源代码构建安装 -下载源代码用C语言构建工具进行构建
3.直接下载二进制程序 - 配置环境变量之后才能使用

Apach (httpd)
Nginx ------http服务器------提供web应用

yum search nginx 查询Nginx
yum -y install nginx
yum info nginx -查看名为nginx
yum list installed -查看已经安装的软件包

gcc --version

yum -y install nginx 安装Nginx
systemctl start nginx 启动Nginx
systemctl restart nginx 重启Nginx
systemctl stop nginx 停止Nginx
systemctl status nginx 查看Nginx状态
systemctl enable nginx -设置Nginx开机自启
systemctl disable nginx -禁用Nginx开机自启

Internet是基于TCP/IP模型的四层架构
应用层--http/ftp/ssh/qq/smtp/pop3
传输层-- tcp / udp 端到端传输服务
网络层 ---ip --寻址和路由
物理链路层(网络接口层) --分贞和校验

端口是用来区分不同的服务,服务端口是对IP地址的扩展

redis.io 数据库代码下载

PyPy-python解释器是用python语言实现的

sftp [email protected]
SFTP常用命令:
quit/exit/bye -退出sftp
cd /lcd -切换远端工作目录/切换本地工作目录
pwd /lpwd -查看远端工作目录/查看本地工作目录
ls /lls -查看远端工作目录的内容/查看本地工作目录下的内容
mkdir /lmkdir -在远端创建目录/在本地创建目录
put -上传文件(-r 递归效果可以用来上传文件夹)
get -下载文件(-r 递归效果可以用来下载文件夹)

硬连接-相当于给问价增加了了一个有用计数(不复制数据的备份)
软连接(符号连接) --相当于是windows下的快捷方式
可以为常用的文件和文件夹在用户主目录下创建软连接方便操作

alias rm='rm -f' (别名,重新定义,减少代码量)
unalias rm='rm -i' (反别名)

ls(已经被别名过了 ls --color=auto)
ll --(ls -l)
重新别名同一个命令是,会被覆盖

make && make install (只有第一个成功才会执行第二个)
make;make install (第一个不成功也能执行第二个)
data || cal || echo hello (第一个失败执行第二个 ,第一个成功就不会执行第二个)
who | wc -l (查看有多少人登录服务器)

输出重定向
cal > a文件 (日历将覆盖a文件的内容)
cal >>a文件 (追加)

ls -R / > ok.txt 2> erroe.txt (输出重定向和错误输出重定项)

ctrl + w 命令输错时,进行回撤

wget http://www.sohu.com -O sohu.html (-O大写的,重命名)

vim的工作模式:
1.命令模式 按a或i进入编辑模式 按/?进入进入末行模式
ZZ 退出
2.编辑模式 按Esc进入命令模式
3.末行模式 按回车回到命令模式:

常用命令:
h j k l移动光标
dd d0 d$ dw -删行 删到首行 删到末尾行 删单词
yy - 赋值
p -粘贴
u -撤销
3yy 复制3行
yy / p 复制/粘贴
q!强行退出

快捷键
ctrl + y(向上翻一行)
ctrl + e (向下翻一行)
ctrl + b(向上翻一页)
ctrl + f(向下翻一页)
ctrl + r 重做
ctrl + w 按两下 --切换窗口

vim 安装一个名为YouCompleteMe插件

末行模式:
set nu /set nonu -设置显示/取消行号
set =4 -设置制表的空格数
syntax on /off -打开/关闭高亮语法
ls 显示打开的问件
sp 水平拆分
vs 垂直拆分

-rw-r--r-- 1 root root 97 Nov 14 11:42 hello.py
第一个字符
d -文件夹
l -软连接

  • -文件

第2~4个字符:文件的所有者对文件有何种操作权限
r -读
w -写
x -execute -执行

第5~7个字符:和文件所有者同组的用户对文件有何种操作权限
第8~10个字符:其他用户(不是所有者也不同组)的用户对文件有何种操作权限

chmod U+x hello.py (加上执行权限)(相当于chmod 100 hello.py)
chmod g+x,o+x hello.py 【chmod 111 hello.py】
chmod U+rw
chmod u-x,g-x,o-x hello.py (去掉所有的执行权限)

chown hellokitty hello.py
2to3 -w hello.py (进去之后把解释器改成python3)
./hello.py 执行程序
/usr/bin/ 软连接放在下面,二进制

vim .vimrc 配置文件,每次会自动生效

map 映射 快捷键

vim -d 文件1 文件2 (比较版本)
vs 垂直分割
sp 水平分割
:q 退出一个
:q a 全部退出

查找文件 find
查找替换
1,10s/self/shit/ci 第1行到第10行的self(这里可以是正则表达式)替换成shit /c 提示是否替换 i 忽略大小写 e忽略错误

符号常量优于字面常量, 枚举类型是定义符号常量的最佳类型
录制宏

1、单一职责原则 --一个类只做该做的事情不做不该做的事情
2、依赖倒转原则
3、开闭原则
4、里氏替换原则
5、接口隔离原则
6、合成聚合服用原则 --优先考虑强关联关系而不是继承关系来复用代码
7、最少知识原则(迪米特法则)
Gof设计模式:23种经典场景----大多数在python中被弱化了

if True -- 命令模式 q a

ln 源文件 目标文件
ln -s 源 目标 (软连接)
进程命令:
ps -查看进程状态(processes)
ps -ef |grep nginx
ps -ef |grep nginx |grep -v grep
kill -9 编号(强杀进程)

kill 19

kill 编号 (普通杀)
ps -auf

top 查看进程

系统登录成功之后进入shell(壳程序)交互式环境
大多数linux系统默认的shell都是bash

网络相关命令:
以太网(Ethernet)
ping - 检测可达性 (ttl存活时间)
tracepath 检查数据路由
ifconfig -检查网络接口(网络适配器)
ip -查看配置网络接口相关信息
netstat -查看网络状态(端口占用,进程,已建立的连接)
netstat -nap | grep 3306 (-nap具体查看整个网络状态,
3306(加上该参数可以直接查看3306端口状态))
sftp -安全网络文件传输
scp - 安全文件拷贝
scp fish.py [email protected]:/root/lll.py 把fish.py 拷贝去另一台服务器root下面

redis-server & (加上&,可以让程序去后台运行 ,输出还是在前台)
redis-server >redis.log & (把输出写在redis.log文件里)
jobs (查看正在后台运行的程序)
fg %1 (把后台编号为1的程序拿到前台运行)
ctrl + z (把正在在前台运行的状态转去后台,暂停下来)
bg %1 (把后台编号为1的已经停止的的程序启动)

chgrp 改变用户组

版本控制
1990s --锁定模式
CVS -Concurrent Version System
VSS -Visual Source Safe

2000s --合并模式
-SVN -Subversion -集中控制式

分布式版本控制系统 -BitKeeper
2005s - Git / Mercury

你可能感兴趣的:(linux)