码迷,mamicode.com
首页 > 系统相关 > 详细

linux随笔

时间:2015-11-27 23:35:46      阅读:386      评论:0      收藏:0      [点我收藏+]

标签:

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 */
itliucheng@linux:~$

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

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


 

linux随笔

标签:

原文地址:http://www.cnblogs.com/itliucheng/p/5001889.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!