Linux命令(各類型操作詳解)

sudo chmod 777 *.sh    對.sh文件開啓管理員權限(*文件名)
sudo ***            以管理員身份運行命令
sudo chown -R finance:bbd /home/finance    爲finance用戶賦予操作/home/finance目錄的權限
ps -ef  | grep xxx        ps -ef(查看進程 ) | 是管道連接符 grep 篩選條件
kill ***            結束進程
java -jar ***.jar        運行jar
kill -HUP pid         如果想要更改配置而不需停止並重新啓動服務,請使用該命令 
route add -p 160.161.12.0 mask 255.255.255.0 188.178.168.1    命令行窗口修改路由規則
tailf XXX.log        打印日誌,並且持續跟蹤日誌
su username        切換用戶username
netstat -ano        查詢端口列表詳情

#################文件操作、文件夾操作(命令後面加上 -r )######
./            當前目錄
ls            當前文件目錄列表
ll            當前文件目錄列表詳細信息
pwd            當前工作目錄路徑
clear            清屏
mkdir test            創建文件夾名稱爲test
cd test            進入test文件夾
touch test.java        創建一個test.java的文件
vim test.java            編輯文件test.java   (:wq保存並退出編輯,:q退出不保存,:q!強制退出)
cat test.java            查看文件test.java
./***.sh            運行腳本文件
rm test.sh            刪除文件
sudo find / -name "文件名"    快速查找文件

scp /home/1.test [email protected]:/home/    發送主機文件到遠程節點目錄(複製本機/home/1.test文件,以遠程節點root用戶保存在遠程節點/home目錄下)
scp -r [email protected]:/home/test /home    拉取遠程節點目錄到本機目錄(以root用戶複製遠程節點目錄192.168.1.107:/home/test,保存到本機目錄/home)

cp file /usr/men/tmp/file1    將文件file複製到目錄/usr/men/tmp下,並改名爲file1(所有目標文件指定的目錄必須是己經存在的,cp命令不能創建目錄)
cp -r /usr/men /usr/zh    將目錄/usr/men下的所有文件及其子目錄複製到目錄/usr/zh中

mv aaa bbb        將文件 aaa 更名爲 bbb 
mv info/  logs         將info目錄放入logs目錄中。注意,如果logs目錄不存在,則該命令將info改名爲logs。
mv  /usr/student/*   ./    再如將/usr/student下的所有文件和目錄移到當前目錄下

#################rpm命令#######################
rpm命令是RPM軟件包的管理工具

rpm -ivh your-package                # 直接安裝
rpmrpm --force -ivh your-package.rpm # 忽略報錯,強制安裝
rpm -ql tree                查詢tree包文件安裝的位置
rpm -e tree        卸載tree包
rpm -qa            列出所有安裝過的包
rpm -q tree        獲取tree軟件包的文件全名


###################tar命令#####################
tar -zxvf Python-2.7.3.tgz    解壓tar包
tar -zcvf app.tar.gz --exclude=*.log  --exclude=test ./app    將當前目錄下app目錄打一個tar包,並用gzip壓縮,包名爲app.tar.gz,並忽略所有.log文件、名爲test的文件名及目錄名


##############下載升級安裝python並啓動###########
wget http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz    下載安裝包
tar -zxvf Python-2.7.3.tgz            解壓tar包
cd Python-2.7.3                進入解壓後的文件夾
mkdir /usr/local/python27            在/usr/local建一個文件夾python27(作爲Python的安裝路徑,以免覆蓋老的版本)
./configure                編譯
make && make install            安裝
mv /usr/bin/python /usr/bin/python_old        再將原來/usr/bin/python鏈接改爲別的名字
ln -s /usr/local/python27/bin/python2.7 /usr/bin/python    再建立新版本python的鏈接
python -V                    檢查修改後的python版本

ip:0.0.0.0
映射當前網絡下所有ip(如一個tomcat配置文件中,如果監聽的IP地址設置了 0.0.0.0 就表示你的這個tomcat服務器監聽在本機的所有IP地址上,通過任何一個IP地址都可以訪問到;如果本地的IP地址有 192.168.1.10, 172.16.2.10,那麼訪問你這個tomcat就可以 http://192.168.1.10:8080/http://172.16.2.10:8080/ 都可以訪問)

在本地運行程序python manager.py runserver訪問地址:http://127.0.0.1:5000;此時,默認只能本地訪問網站,如果需要其他人也可以訪問,需要指定0.0.0.0這個ip,就要再加入參數:--host 0.0.0.0。其他人訪問的時候就要輸入電腦的ip地址加上端口5000就OK了。
python manager.py runserver --host 0.0.0.0 --port 7000    運行python,--host指定ip,--port指定端口(默認端口是5000)


##############oracle操作##################
su - oracle        轉爲Oracle用戶
sqlplus / as sysdba        進入sqlplus操作
imp 數據庫用戶名/密碼@orcl file=dmp的路徑(事例:/var/test.dmp) full=y(全部導入、整個庫)    導出數據庫(imp換成exp導入)
創建表空間

create tablespace test datafile '/data/dbms/test.dbf' size 100M autoextend on next 100M;

創建用戶

create user test identified by test123 default tablespace test;

賦予權限

grant connect,resource,dba to test;

刪除用戶

drop user test cascade;

刪除表空間

drop tablespace test including contents and datafiles cascade constraint;

################Nginx####################
reload,重新加載的意思,reload會重新加載配置文件,nginx服務不會中斷,而且reload時會測試conf語法等,如果出錯會rollback用上一次正確配置文件保持正常運行。
restart,重啓,會重啓nginx服務。這個重啓會造成服務一瞬間的中斷,當然如果配置文件出錯會導致服務啓動失敗,那就是更長時間的服務中斷了。
sudo nginx -s reload        使用重載命令使nginx生效
/etc/init.d/nginx restart    使用命令重啓nginx生效
sudo nginx -t        輸出正在使用的配置文件

Nginx項目配置:

server{
  listen 8000;  

  server_name cp.test.com;
  client_header_buffer_size 128k;
  client_body_buffer_size 1m;
  proxy_buffer_size 32k;
  proxy_buffers 64 32k;
  proxy_busy_buffers_size 1m;
  proxy_temp_file_write_size 512k;
  location  / {

    ##前端部署路徑
    root /home/finance/web/test;
    index index.html;
    proxy_set_header         X-Real-IP $remote_addr;
    proxy_set_header         X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_read_timeout 600s;
    #### kill cache
    add_header Last-Modified $date_gmt;
    add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
    if_modified_since off;
    expires off;
    etag off;
  }
  location /api/ {
    rewrite ^/api/(.*)$ /$1 break;   #所有對後端的請求加一個api前綴方便區分,真正訪問的時候移除這個前綴
    # API Server
    proxy_pass http://166.166.6.61:8600;  #將真正的請求代理到serverA,即真實的服務器地址,ajax的url爲/api/user/1的請求將會訪問http://www.serverA.com/user/1
    proxy_set_header         X-Real-IP $remote_addr;
    proxy_set_header         X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_read_timeout 600s;
        }
}

項目啓動腳本(與jar包同一目錄):start.sh

#!/bin/sh
u=`whoami` ;
red='\033[0;31m';
green='\033[0;32m' ;
yellow='\033[0;33m' ;
plain='\033[0m';
echo -e  "${green}INFO${plain}: 當前用戶:${green}$u${plain}"

SERVICE_NAME="credit-platform"

cd `dirname $0`
BIN_DIR=`pwd`
LOG_DIR=$BIN_DIR/logs/
STDOUT_FILE=$BIN_DIR/std.log

JAR=`find ./*.jar`

#cd ..

DEPLOY_DIR=`pwd`
# DATABASE_OPTS="-Dspring.datasource.url=jdbc:mysql://172.32.3.77:3306/bbd_plutus_management?useUnicode=true&characterEncoding=utf-8&useSSL=false "
# DATABASE_OPTS=" -Dspring.datasource.url=jdbc:oracle:thin:@172.32.98.15:1521:orcledb -Dspring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver -Dspring.datasource.username=plutus -Dspring.datasource.password=dev@bbd "
## -Dspring.config.location=~/application-production.yml
JAVA_OPTS=" -Dserver.port=8200 -Dspring.profiles.active=dev -Dlogging.path=$LOG_DIR -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Dspring.config.location=./application.yaml,./application-dev.yaml "$JAVA_OPTS

#JAVA_DEBUG_OPTS=""
#if [ "$1" = "debug" ]; then
JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=18002,server=y,suspend=n "
#fi
#JAVA_JMX_OPTS=""
#if [ "$1" = "jmx" ]; then
#    JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
#fi
JAVA_MEM_OPTS=" -server -Xmx1024m -Xms512m -Xmn256m -Xss256k -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=management-error.dump -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
echo -e "${green}INFO${plain}: Starting the $SERVICE_NAME ...\n"

nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS  -jar $JAR >$STDOUT_FILE 2>&1 &

echo $! > $BIN_DIR/tpid
sleep 1s
echo -e "${green}INFO${plain}: $SERVICE_NAME start success!\n"

PIDS=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}'`

echo -e "${green}INFO${plain}: PID $PIDS"

tail -f std.log


項目關閉腳本(與jar包同一目錄):stop.sh

#!/bin/bash
u=`whoami` ;
red='\033[0;31m';
green='\033[0;32m' ;
yellow='\033[0;33m' ;
plain='\033[0m';

JAR=`find ./*.jar`

cd `dirname $0`
ids=`ps -ef|grep java|grep $JAR |awk '{print $2}'`
if [[ ! "$ids" ]];then
    echo -e "${yellow}WARN${plain}:plutus-management-system 進程不存在"
else
    echo -e "${green}INFO${plain}: 準備結束資信平臺微信端服務 數量:`echo ${ids}|awk '{count++}END{print count}'` "
    echo -e "${ids}"|xargs kill -9
fi


如果上傳文件時超過了nginx限制,就會返回一個“413 Request Entity Too Large”的錯誤
我們只要更改nginx的配置文件“nginx.conf”即可
在http{}中添加一個client_max_body_size 20m;配置項;
修改完之後重啓nginx或reload配置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章