linux随笔

Git
linux
发行版:
- redhat(收费)
- CentOS *
- Ubuntu *
- Debian
- Suse
-----------------------
MacX 和linux都是从鼻祖Unix中判离出来的,
从Unix中判离的还有FreeBSD
具体到手机上 Android IOS也都是基于linux
------------------------------------------------
与服务器相连使用的是SSH(加密连接协议)

SSH
服务器安装:openssh-server
客户端安装:
如果客户端也是linux系列: openssh-client 只需要执行:ssh itliucheng(账户名)@192.168.1.109(ip)
客户端不是linux系列: Windows端: putty SecureCRT

安装OpenSSh:

sudo apt-get install openssh-server

-------------------------------------------

sudo reboot重启,reboot需要root权限,所以用sudo提升一下权限

---------------------------------------------

服务器端 ifconfig
获取IP地址,打开 putty输入ip连接然后就可以用window登录
断开与服务器的连接:exit

cd / 到达根目录
cd ../ 返回上级目录
ls 显示当前目录中的文件或文件夹
/* 上传文件 */
secureCRT

------------------------------------------------

clear 清空屏幕

----------------------

/* itliucheng是当前登录账户 linux是服务器名字 ~等同于当前登录者的目录 ~ = /home/itliucheng */
[email protected]:~$

---------------------------

pwd   显示当前路径

ls -l   列表的形式显示当前目录所有文件和文件夹 再加一个a 例如: ls -al显示当前包括隐藏文件

drwxr-xr-x  9 kay admin 4096 2011-05-29 06:30 bionic

当前文件的属性 d代表文件夹(l代表链接文件:快捷方式 -代表文件 b代表可供存储的接口设备c代表设备文件中的串口设备例如鼠标键盘)
9代表里面多少个子文件 key代表文件的拥有者,admin是用户组的名字 4096文件大小 bionic文件夹名字

这个文件是我创建的,我就是文件拥有者,我当前所在哪个组,这个我创建的文件也属于该组 
 比如tom1和tom2在g1组,jeck在g2组,tom1建立一个a.txt文件,那么a.txt就属于tom1,属于g1组

----------------------------------------
touch my.txt 新建文件

cat group 查看文件内容
更改文件用户组:用户组的名称需要在/etc/group中存在,可以使用cat group查看group文件的内容

sudo chgrp users install.log 更改install.log文件的用户组为users

sudo chown kay install.log 更改install.log的文件拥有者为kay

chmod 777 mydocument 更改文件的9个属性

/* 使用符号来改变文件权限 */
chmod u=rwx,g=rwx,o=rx mydocument 修改mydocument文件的权限为-rwxr-xr-x
chmod u+w mydocument 给owners 添加w权限
chmod a=rwx mydocument 所有人可读可写可执行
chomd u-w mydocument 给owners减去w权限

chmod -R(大写) 777 img 递归更改img及里面文件或文件夹的权限为可读可写可操作

-----------------------------------------------
sudo reboot重启
sudo init 0 关机
sudo poweroff 关机
/* linux中的压缩文件不是rar文件,rar文件是一个有版权的格式,最好使用tar tar.gz */

对于tar文件的解压:tar xvf fileName.tar.gz 解压文件
对于tar文件的打包:tar cvf fileName.tar.gz DirName 压缩文件
对于zip文件的解压: unzip fileName.zip 解压文件
对于zip文件的打包: zip fileName.zip DirName 压缩文件

--------------------------------
mkdir abc 新建文件夹
mkdir -m 777 abc 新建并设置文件权限
mkdir -p a/b/c 一次建立多个文件夹(父子)
rmdir a 删除空目录
rmdir -p a/b/c 与上一层的空目录一起删除
rm -rf p3(p3不为空) 删除非空目录(f强制删除,r递归删除)

对文件的删除不能用 rmdir a.txt
要用 rm a.txt
对于rm不跟任何参数的时候只能用来删除文件,只有在跟参数的时候才能用来删除文件夹

------------------------------------------------------
vim编辑器

vim a.txt
输入i才能编辑
按一下esc退出insert
在按一下shift+ :
输入wq就是保存并退出(如果只写q就代表只退出不保存这样会报错, q!代表强制退出)

然后cat a.txt就能查看文件内容

-------------------------------------------
拷贝文件
cp a.txt b.txt

-----------------
移动
mv a img 将a移动到img里面
如果当前文件夹里没有img这个文件夹 效果就是重命名这个文件为img

---------------------------------------------------------------------------
安装mysql
sudo apt-get install mysql-server
卸载
sudo apt-get autoremove mysql-server

mysql -uroot -proot 连接mysql

然后就可以正常使用数据库
eg: show databases;

exit 退出

------------------------------------------------------------------------
安装jdk
/* 延伸:比如下载一个图片
wget http://www.xxxx(图片地址)*/
但是对于jdk,这个文件比较大,我们还是取Oracle官网(oracle.com)下载jdk(tar.gz格式)先下载到window端然后用SecureCRT传到虚拟机上

解压: tar xvf jdk-7u71-linux-i586.tar.gz
然后可以重命名解压文件: mv jdkxxx jdk7
移动该文件夹: mv jdk7 /usr/local

配置环境变量:sudo vim /etc/profile
修改配置: 点击i进入insert模式: 在最上面(#代表注释,在#号下面配置就行)配置两句话

/* 导入java_home 是自己的修改名字之后并移动之后的jdk的路径 */
export JAVA_HOME=/usr/local/jdk7
/* 并导入到linux中,.表示当前的 冒号跟window中的分号作用一样(多个路径以分号分隔开) java_home/bin连接起来 */
export PATH=.:$JAVA_HOME/bin:$PATH

esc
shift+:
wq

退出来后要让环境变量生效
执行: source /etc/profile

在执行java javac的时候就能看到以前装jdk的效果

---------------------------------------------------
安装tomcat
同理先上传进来apache-tomcat-xxx.tar.gz,
解压:tar xvf apache-tomcat-xxx.tar.gz
重命名: mv apache-tomcat-xxx tomcat7

cd tomcat/到达tomcat里
cd bin/到bin中
startup.sh 启动tomcat

然后浏览器输入: 连接的IP地址+:8080可以看到tomcat的页面

shutdown.sh 关闭tomcat

部署自己的项目:
将项目打成war包
上传进来
移动war:mv xxx.war(如hello.war) tomcat7/webapp/

然后执行启动
bin/startup.sh
浏览器输入:

连接的IP地址+:8080/hello

配置路径
cd conf/
里面有个server.xml文件
vim server.xml
在这里面端口号最好不要改

? 配置虚拟目录
/* 注掉host然后重新配置
docbase是当前hello.war运行之后产生的hello文件夹的路径 autoDeploy自动部署*/

<Host name="localhost" autoDeploy="true">
<Context docBase="/home/itliucheng/tomcat7/webapps/hello" path="" reloadable="false"/>
</Host>

修改完成保存后退出,执行startup.sh后
浏览器只需要 当前ip:8080就行

--------------------------------------------------------
对于端口号的修改就要使用nginx(http服务器) nginx.org

安装nginx
sudo apt-get install nginx
/* 启动和关闭 */
sudo service nginx stop
sudo service nginx start
sudo service nginx restart

/* 客户端→nginx(80)→tomcat(8080) */
// 进入这个目录
cd etc/nginx/
/* 里面有个sites-enabled */
cd sites-enabled
删除default文件,他是默认的欢迎页
/* 新建文件 */
sudo touch web(名字随便取)

/* 编辑它 */
vim web

/* 编辑的内容
server代表是个服务器
listen 80 监听80 当用户请求80端口的时候来到这里*/
server {
listen 80 ;
/*监听80端口,当请求过来而同时请求的name是www.mmm.com的时候
这时候就代理到location里面设置的 http://localhost:8080/shop/;
*/
server_name www.mmm.com; # Replace with your domain

root /usr/share/nginx/html;
index index.html index.htm;

client_max_body_size 10G;

location / {
proxy_pass http://localhost:8080/shop/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
}
}

/* 保存后退出 */
/* 然后重启nginx
sudo service nginx restart */

/* 为什么通过www.xyz.com就能访问呢,我们现在没有域名,就只能通过host文件意淫一下
c/windows/system32/drivers/etc/hosts
xxx.xxx.xxx.xxx www.xyz.com
*/

----------------------------------------------------------------------
部署自己的项目的另一种方法

上面的是打成的war包拖到服务器上,解压,然后通过ip+:8080/hello
然后通过配置虚拟目录就能改成ip+:8080就能访问

这里的做法是通过在线管理工具:
当请求ip+:8080的时候首先来到的是tomcat的页面,这时候点击 manager App然后提示要账户和密码
那么这个账户和密码从哪里来呢?

/* 来到tomcat7 */
cd tomcat7
/* 来到conf里 */
cd conf
/* 编辑tomcat-users.xml */
vim tomcat-users.xml
/* 按照他的规则创建一个用户 */
<user username="chengge" password="chengge" roles="manager,admin,manager-gui,manager-status"/>
/* 保存,退出 */

/* 然后关闭tomcat 然后启动 */
bin/shutdown.sh
bin/startup.sh

/* 然后ip+:8080 点击 manager App登陆 */

有一个选项
war file to deploy (把war文件进行部署)
选择导出的shop.war文件,部署
这时候请求
ip+:8080/shop就能进入当前的项目中
这个时候nginx就又可以出场了....

cd etc/nginx/
/* 里面有个sites-enabled */
cd sites-enabled

/* 新建文件 */
sudo touch mmm(名字随便取)
/* 编辑它 */
vim mmm

/* 编辑的内容
service代表是个服务器
listen 80 监听80 当用户请求80端口的时候来到这里*/
server {
listen 80 ;
/*监听80端口,当请求过来而同时请求的name是www.mmm.com的时候
这时候就代理到location里面设置的 http://localhost:8080/shop/;
*/
server_name www.mmm.com; # Replace with your domain

root /usr/share/nginx/html;
index index.html index.htm;

client_max_body_size 10G;

location / {
proxy_pass http://localhost:8080/shop/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
}
}

这样就完成了

当然,如果你觉得每次新建一个mmm这样的文件很麻烦
那就在外面建好,然后上传进去
记得导入到
sudo mv ~/mmm /etc/nginx/sites-enable/

sudo service nginx restart

/* 你可以到host里再设置一下 */

------------------------------------------------

对于部署项目并不难,难的是修改一个项目还要部署一遍?NONONO
服务器上是可以装svn的

sudo apt-get install subversion

这样修改的项目就不用部署,只需要提交svn,然后在这里

svn checkout

时间: 2025-01-18 12:01:07

linux随笔的相关文章

Linux 随笔1

使用fork()系统调用产生的子进程对父进程中数据的修改不会影响到父进程,因为fork()采用的是写时复制机制,就是在fork产生的子进程没有修改父进程的值时,父子进程共享同一块内存,包括栈区.当子进程修改父进程的数据时,系统会给子进程单分出一块和父进程相同的内存区并将新的修改的值写入.所以父子进程完全在两块内存中不会互相干扰. uid 为0的用户名就是超级用户 echo "12345" | md5sum   //通过 md5加密输出“12345” 查看系统内核版本 方法一: 命令:

我的Linux随笔目录

现在整理博客的时间少了,大多是在用为知笔记收藏和整理,一次集中发点Linux相关随笔整理和一个目录,是按时间顺序来的.每一篇都是自己用过之后整理的,应用场景已经尽可能的说明了,不明白的可以Q我,上班时间请尽量避免. ========目录========= centos6.5安装mongodb2.6 Linux下DB2数据库安装教程 [Installing Metasploit Framework on CentOS_RHEL 6]在CentOS_RHEL 6上安装Metasploit的框架[翻译

linux随笔(13)---touch和mkdir

一.目的 本文将介绍linux下新建文件或目录.删除文件或目录命令. touch可以新建文件,mkdir用来新建目录:rm用来删除文件或目录. 本文将选取ubuntu14.04发行版做为描述基础. 二.touch命令 linux下新建文件的方式有很多,例如:使用vi新建文件.使用cp命令拷贝一个文件.但是最常用的还是使用touch命令新建一个文件. 语法:touch [options] filename -a:改变访问时间 -m:改变修改时间 -t timestamp:改变访问时间和修改时间为t

linux随笔(11)---umask和chmod

一.目的 本文将介绍linux环境下有关文件访问模式相关的命令. umask用来设置默认的文件访问模式屏蔽值:chmod用来修改文件的访问模式. 本文将选取ubuntu14.04发行版做为描述基础. 二.文件访问模式 linux使用文件访问模式保证文件的安全性,通过一个12bit的数据结构表示文件访问模式的4组属性: 1.SUID.SGID.Sticky属性 :也叫特殊属性. 2.用户的读.写.可执行属性:也叫用户属性. 3.用户所属组的读.写.可执行属性:也叫用户所属组属性. 4.组内其他用户

linux随笔(12)---chown和chgrp

一.目的 本文将介绍linux的chown和chgrp命令. chown用来设置文件的拥有者:chgrp用来设置文件的所属组. 本文将选取ubuntu14.04发行版做为描述基础. 二.chown命令 语法:chown user filename 将filename文件的拥有者设置为user. 例如,README.md文件当前的拥有者是zsy,使用chown命令将文件的的拥有者设置为root. 三.chgrp命令 语法:chgrp group filename 将filename的所属组设置为g

linux随笔(9)---mount和umount

一.目的 本文将介绍文件系统的挂载和卸载命令mount和umount. mount命令负责把设备上的文件系统挂载到系统的挂载点上:umount命令负责把挂载点上的文件系统卸载掉. 本文将选取ubuntu14.04发行版做为描述基础. 二.fstab文件 linux系统中的/etc/fstab配置文件记录了文件系统信息,linux在启动时挂载该文件中记录的所有文件系统.在/etc目录下还有一个叫做mtab的配置文件,该文件记录了系统中已经挂载的文件系统,注意该文件于fstab的区别. 该文件一共包

linux 随笔-001

Linux: 创始人:Linux Benedict Torvalds(芬兰的) 时间:1991年4月 常见版本: RedHat (最常见,centos为其社区版,yum免费:基本无区别). Gentoo Debian SUSE ubantu(桌面很炫酷) Android也是linux的,苹果的是unix的

linux 随笔

Linux: 创始人:Linux Benedict Torvalds(芬兰的) 时间:1991年4月 常见版本: RedHat (最常见,centos为其社区版,yum免费:基本无区别). Gentoo Debian SUSE ubantu(桌面很炫酷) Android也是linux的,苹果的是unix的

linux随笔(10)---find等查找命令

一.目的 本文将介绍linux环境下常用的各种查找命令.这些查找命令包括which.whereis.find.locate. which使用环境变量查找可执行文件的路径:whereis查找可执行文件.源代码.man文件的路径:find命令能够查找文件系统中的任何文件,支持正则表达式查找:locate命令通过之前建立的索引查找文件,所以比find快,但是不适合查找最近新建或者重命名的文件. 本文将选取ubuntu14.04发行版做为描述基础. 二.which命令 which在当前用户的PATH变量