Шпаргалки
Maven
Windows
JMX
Virtual Box
Git
Tests
Apache
Ant
Tutorials
Sun
XML/XSL
MSDN Library
DATABASES
ClearCase
Common links

Unix commands/hints/reference.

  • Shutdown: shutdown -h now (halt)
  • Restart: shutdown -r now
  • Start X-Windows: startx
  • Версия ядра: uname -a
  • Работа с разделами диска: cfdisk, sfdisk
  • Show mapping/ volume: df -k
  • History of cmd: history (run !number)
  • Top 10 process: top -U `logname`
  • Correct treat of keys: export TERM="xterm"
  • Controls process dispatching: /etc/inittab
  • IP config: /etc/hosts
  • IP config: netstat -rn; ifconfig itf_name
  • Протоколы работы системы: /var/log
  • Remote copy: scp wroe0685@daedal:sleeError.log .
  • Redirect all output ... > comp.log 2 > &1
        echo "1" >/proc/sys/net/ipv4/ip_forward
        sudo su

        netstat -ntulp | grep -E "1445|1137|1138|1139"
        nc -l 1446                - open listener

        netstat -t -u -c          - monitor
        sudo tcpdump -n ip host gkislin-PC | grep -v "extServer.ssh"

        iptables -t nat -F
        iptables -t nat -L -n -v
        iptables -t nat -A PREROUTING -p udp --dport 137 -j REDIRECT --to-ports 1137
        iptables -t nat -A PREROUTING -p udp --dport 138 -j REDIRECT --to-ports 1138
        iptables -t nat -A PREROUTING -p tcp --dport 139 -j REDIRECT --to-ports 1139
        iptables -t nat -A PREROUTING -p tcp --dport 445 -j REDIRECT --to-ports 1445

        iptables -A INPUT -p tcp --dport 445 -j ACCEPT

For local rerouting:
sudo iptables -t nat -I PREROUTING -p tcp --dport 6432 -j REDIRECT --to-ports 5432
sudo iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 6432 -j REDIRECT --to-ports 5432


#run in background
nohup backgroud_task

# Tunneling
sshautossh -p 2020 -f -N -L127.0.0.1:5444:10.10.10.248:5432 user@server

useradd oadm
sudo passwd oadm
sudo bash -c 'echo "oadm    ALL=(ALL) ALL" >> /etc/sudoers'
    

File system

  • Print working directory: pwd
  • Print file to screen: cat
  • Создать файл: touch filename
  • Создать ссылку на файл: ln -s exist_file new_link
  • Remove recursively without any prompt: rm -rf

Create XSession

Create Local XSession
  • Run bat: startxwin.bat
  • or
    1. Export DISPALY : set DISPLAY=127.0.0.1:0.0
    2. Run XServer : XWin -multiwindow
    3. Run terminal : xterm
Create Remote XSession
  • Set connection: ssh login@server_hostname
  • Set connection: ssh daedal -l wroe0685
  • Set setting at client side: startxwin.bat
  • Set receive admition at client side: xhost + server_hostname(IP)
  • Export DISPLAY at server side: export DISPLAY=local_hostname(IP):0.0
  • Run term at server: /usr/X/bin/xterm

    Access through the public key

    Our side
    • Make dir: mkdir -m 755 .ssh; cd .ssh
    • Generate keys (any of): ssh-keygen -t rsa; ssh-keygen -t dsa; chmod 400 id_dsa id_rsa
    • Copy id_dsa.pub id_rsa.pub to remoute dir .ssh by scp or sambo, ftp ...
    • Load in ssh access programm private key (PUTTYGEN.EXE)
    Remoute side
    • Make dir: mkdir .ssh; chmod 755;cd .ssh
    • Make public key file: touch authorized_keys; cat id_dsa.pub id_rsa.pub >> authorized_keys

      Util

      Difference
      • Redirect output to command: xargs
      • Table editor, cut 3 column: cut -f3 -d':'
      • String EDitor: sed -e "s/^ *//" -e "s/ *$//"
      • String EDitor: echo pb3j0415_mts2h | sed -e "s/.*_[a-z]*\([0-9]\).*$/\1/"
      • Scan and process: print 2nd column: awk '{print $2}'
      • Expression: expr $lines - 10
      • Sed deletion: sed '/^#/ d', sed '1,/-SIGNAL-/ d'
      • MC color emulate draw: mc -c -a
      • Translator (upper to lower): echo $i | tr "[:upper:]" "[:lower:]"
      • Find file in PATH:which filename
      • Replace environment placeholder in fileecho "$(eval "echo \"$(cat river.template)\"")"
      • Show loaded function:typeset(declare) -f(-F)
      • Multiscreen work: screen (Ctrl+A ?,C,'..)
      • Recovery Multiscreen session: screen -rd
      • Find all files, content "TariffModelNo": find . -name "cat.full" -exec grep "TariffModelNo" {} \; -print
      • Cycle: for i in `clt lsco -recurse -short -user wroe0685`; do clt unco -rm $i; done
      • tar.gz: gzip -d name.tar.gz; tar -xvf name.tar
      • Filter: less cap1_001.xml | grep 'description=' | awk -F"\"" '{ print $2 }'
      Oracle
      • DB configuration(connect string): cat $ORACLE_HOME/network/admin/tnsnames.ora
      • Check DB: tnsping connect_string
      Help
      • Справочные команды: man -k, apropos, whatis, info.
      • Cоздания базы для apropos, whatis: /usr/sbin/makewhatis
      • Поиск в базе имен файлов по шаблону: locale ..
      Archive
      RPM

          Links

          Programming

          Programming

          Common

          Articles/books

          Web Frameworks

          SWT

          JSF

          JBoss

          Hibarnate

          Java projects

          Spring

          Eclipce

          Scripts

          Maven

                      
              Maven: The Complete Reference
              Автоматизация сборки проекта
              Repository management Nexus
              Appfuse project (archetype appfuse)
              Bintray: gateway to Maven Central
                  
          Repository search: http://mvnrepository.com/ http://maven.ozacc.com/ http://repo1.maven.org/maven2/ http://www.springsource.com/repository Ran main: mvn exec:java -Dexec.mainClass="..." -Dexec.args="..." Tree dependency mvn dependency:tree -Dverbose -Dincludes=commons-collections Reactor options: -rf, –resume-from Resume reactor from specified project -pl, –projects Build specified reactor projects instead of all projects -am, –also-make If project list is specified, also build projects required by the list -amd, –also-make-dependents If project list is specified, also build projects that depend on projects on the list Sample: mvn -pl mj-server-config -am install mvn -pl mj-server-config -amd install mvn project-info-reports:dependencies. : generate an target\site\dependencies.html: mvn help:describe -Dcmd=install mvn help:describe -Dcmd=glassfish:deploy -Ddetail Install plugin with own jar: mvn install:install-file -Dfile=C:\..\name.jar -DgroupId=enkata -DartifactId=alljar -Dversion=Capri -Dpackaging=jar -DgeneratePom=true Create new project: mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=%PROJECTNAME% -DartifactId=%PROJECTNAME% cd %PROJECTNAME% call mvn install call mvn idea:idea Test -Dmaven.test.skip=true : skip test -Dsurefire.useFile=false : to show testing errors in your console -Dtest=PersonDaoTest : execute test -e // print exceptionstack trace -X // print the build debug information -DdownloadSources=true // source download

          Windows

          Windows Batch Scripting DOS Command Index
          netstat -na | findstr 1099
          netstat -na | find "1099"
              

          JMX

          
          set CATALINA_OPTS=
                  -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099
                  -Dcom.sun.management.jmxremote.ssl=false
                  -Dcom.sun.management.jmxremote.authenticate=false
          
          -Djava.rmi.server.hostname='host ip'
              

          Servlet (http://bill1.scartel.ru:7777/adapters/chronopaycheck?customer_alias=1000012&country=RUS

          request.getContextPath           /adapters
          request.getPathInfo              null
          request.getPathTranslated        null
          request.getQueryString           customer_alias=1000012&country=RUS
          request.getRequestedSessionId    7f00000130d516bc39a6b5664957bc67ef3422e577cb.e3iObxuTbNmPe34Sc3eQaNeSaxj0
          request.getRequestURI            /adapters/chronopaycheck
          request.getRequestURL            http://bill1.scartel.ru:7777/adapters/chronopaycheck
          request.getServletPath           /chronopaycheck
          config.getServletName            ChronopayCheck
          context.getRealPath              /home/user/product/10.1.3.1/SOA/j2ee/home/applications/ConfigDispatcher/AdaptersConfigWS/
          URL context.getResource          file:/home/user/product/10.1.3.1/SOA/j2ee/home/applications/ConfigDispatcher/AdaptersConfigWS/
          context.getServerInfo            Oracle Containers for J2EE 10g (10.1.3.3.0)
          context.getServletContextName    Configuration Dispatcher
          

          Git

          Основы Git Интерактивная Git обучалка Как начать работать с GitHub: быстрый старт
            git reflog
            git log --all
          
            git checkout sha
            git checkout master
          
            git remote show origin
            git remote -v
            git branch -vv
            git branch --set-upstream-to 'remote-name'
          
            git config --get remote.origin.url
            git symbolic-ref HEAD
          
          Remove top:
            git reset --hard commit-hash
            git push -f origin master
          
          Fix github:
            git remote rm origin
            git remote add origin 'git@github.com:gkislin/soa-ws.git'
            git remote set-url origin https://github.com/gkislin/soa-ws.git
            ssh -T git@github.com
          
          Hard revert:
             git checkout master
             git reset --hard e3f1e37
             git push --force origin master
             # Then to prove it (it won't print any diff)
             git diff master..origin/master
          
          See unpush:
            git log origin/master..HEAD
            git diff origin/master..HEAD
          
          Get/revert revision
          $ git reset --hard $SHA1
          $ git pull
          
          Make remote brunch:
          
          $ git checkout -b feature_branch_name
          ... edit files, add and commit ...
          $ git push -u origin feature_branch_name
          
          Clone:
          git clone -b feature_branch_name --single-branch https://github.com/JavaWebinar/topjava02.git
          git clone --depth 1 https://github.com/JavaWebinar/topjava02.git
          
          Push until revision:
          git push  :
          git push origin 712acff81033eddc90bb2b45e1e4cd031fefc50f:master
          
          
          Delete:
          git branch -d local_branch
          git push origin --delete remote_branch
          
          Patch
          git diff --cached > mypatch.patch
          http://stackoverflow.com/a/15438863/548473
          
          
          Машина времени в git
          Get/revert revision
          Create-a-new-branch-with-git-and-manage-branches
          detached-head
          Heroku git deploy

          Virtual Box

          Clone VM
                  
          vboxmanage list -l runningvms
          cloneServer$sudo shutdown -h now  // vboxmanage controlvm devServer poweroff
          vboxmanage list hdds
          vboxmanage clonehd devServer_uuid ./newEnv/ubuntu64new.vdi
          // vboxmanage createvm  --name newEnv --ostype Ubuntu_64 --basefolder ~/vbox/
          vboxmanage startvm devServer --type headless
          
          vbm showvminfo testprod | grep "Memory"
          
          VBoxManage guestproperty enumerate newEnv
          VBoxManage guestproperty get cominvest /VirtualBox/GuestInfo/Net/0/V4/IP
          
          
          ssh ip
          sudo hostname NEW_NAME
          sudo mcedit /etc/hostname
          sudo mcedit /etc/hosts
          sudo mcedit /etc/samba/smb.conf
          
          sudo rm /etc/udev/rules.d/70-persistent-net.rules - reset ip after clone
          sudo /etc/init.d/networking restart
          
          sudo apt-get install secure-delete
          sudo sfill -v /   wipe disk
          
          sudo mcedit /etc/default/bootlogd  - on bootlog
          
          // Install extensions for ubuntu server:
          sudo su
          
          apt-get install dkms
          mount /dev/sr0 /media/cdrom
          /media/cdrom/VBoxLinuxAdditional.run --nox11
          
          mkdir /mnt/SHARE
          mount.vboxsf SHARE /mnt/SHARE
          cd /mnt
          
          # Install Oracle JAVA
          add-apt-repository ppa:upubuntu-com/java
          apt-get update
          apt-get install oracle-java7-installer
          
                  

          Tests

          JUnit
           http://www.ibm.com/developerworks/ru/edu/j-junit4
           http://junit.sourceforge.net/doc/ReleaseNotes4.4.html
          
          AspectJ
           http://www.eclipse.org/aspectj/
          
          JMock
          One of the very first mocking libs.
           http://www.jmock.org
           http://www.jmock.org/getting-started.html
          
          
          Mockito
          Youger then JMock. Seems to be a bit less verbose then JMock
           http://code.google.com/p/mockito
          
          JMockit
          Allows mocking final methods as well keeping existing method implementation of the class being mocked. 
          Sometimes provides an easier way to get same kinf of functionality then AspectJ
           https://jmockit.dev.java.net/
           https://jmockit.dev.java.net/tutorial.html
                      

          DATABASES

          descr all_tab_cols
          less /export/home/oracle/products/9.2.0/network/admin/tnsnames.ora
          
          select ULANGUAGEID from ATD02_SUBSCRIBERDATA;
          select TO_CHAR(uFirstCallTimeStamp, 'yyyy.mm.dd hh24:mi') from ATD02_SubscriberData where uCustomerID='1-0-7662012001'
          select * from all_tab_cols where COLUMN_NAME='UBALANCE';
          
          update ATD02_SUBSCRIBERDATA set ULANGUAGEID=2; (WHERE ..)
          
          POSTGRES: PostgreSQL Cheat Sheet
          Terminate all connections:
          9.1:  psql postgres -Usysdba -c "SELECT pg_terminate_backend(pg_stat_activity.procpid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '$1'"
          9.2:  psql postgres -Usysdba -c "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '$1'"
          
          Hints:
          SET LOCAL enable_seqscan TO false;
          SET LOCAL synchronous_commit TO OFF;
          
          
          Anonymous procedure
          DO
          $$
          DECLARE
            NF INTEGER;
            R RECORD;
          begin
            FOR R IN SELECT  ID,DOC_TYPEID,FOLDERID  from ecm.doc_cards dc where folderid not in (select folderid from ecm.folder_doc_types where doc_typeid=dc.doc_typeid)
            LOOP
              select INTO NF folderid from ecm.folder_doc_types where doc_typeid=R.doc_typeid limit 1;
              update ecm.doc_cards dc set folderid=NF WHERE ID=R.ID;
              RAISE NOTICE 'doc %, oldFolder=%, newFolder=%',R.ID, R.FOLDERID, NF;
          END LOOP;
          END$$
          
          
          DO $$declare r record;
            begin
              execute 'REVOKE ALL ON database rdb FROM public';
              execute 'REVOKE ALL ON database rdb FROM "user"';
              execute 'GRANT CONNECT ON DATABASE rdb TO "user"';
          
              EXECUTE 'ALTER SCHEMA PUBLIC OWNER TO SYSDBA';
          
              for r in
                  select schema_name from information_schema.schemata
                                     where schema_name <> 'information_schema'
                                          and schema_name !~ E'^pg_'
              loop
              --   execute 'revoke all ON SCHEMA '||r.schema_name||' FROM PUBLIC';
                 execute 'revoke all ON ALL FUNCTIONS IN SCHEMA '||r.schema_name||' FROM PUBLIC';
                 execute 'revoke all ON ALL SEQUENCES IN SCHEMA '||r.schema_name||' from PUBLIC';
                 execute 'revoke ALL ON ALL TABLES IN SCHEMA '||r.schema_name||' from PUBLIC';
          
                 execute 'GRANT USAGE ON SCHEMA '||r.schema_name||' to \"user\"';
                 execute 'GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA '||r.schema_name||' TO \"user\"';
                 execute 'GRANT USAGE ON ALL SEQUENCES IN SCHEMA '||r.schema_name||' TO \"user\"';
                 execute 'GRANT ALL ON ALL TABLES IN SCHEMA '||r.schema_name||' TO \"user\"';
          
              end loop;
          
            end
          $$
          
          psql -c "ALTER SCHEMA public OWNER TO sysdba" rdb
          psql -c "GRANT CREATE, USAGE ON SCHEMA public TO sysdba" rdb
          psql -c "GRANT USAGE ON SCHEMA public TO "user" rdb
          
          
          sudo /etc/init.d/postgresql restart  - рестарт
          /usr/lib/postgresql/9.2/bin/postgres -D /var/db/river92 -c config_file=/etc/postgresql/9.2/main/postgresql.conf
          /usr/lib/postgresql/9.1/bin/pg_ctl start -l pgsql.log
          /usr/lib/postgresql/9.1/bin/pg_ctl stop -m fast -l pgsql.log
          
          sudo sockstat | grep postgres| grep LISTEN- слушает порты
          /etc/postgresql/9.2/main/postgresql.conf
          listen_addresses = '*' 
          
          psql -U postgres
          #update pg_database set datallowconn = TRUE where datname = 'template0';
          # \c template0
          #select * from pg_collation;
          #CREATE COLLATION "ru_RU" (LOCALE = 'ru_RU.utf8');
          #CREATE COLLATION "ru_RU.utf8" (LOCALE = 'ru_RU.utf8');
          #\c postgres
          # update pg_databas\e set datistemplate = FALSE where datname = 'template0';
          
          
          echo   +++ drop/create/backup/remote restore +++
          set -x
          dropdb -Usysdba $1
          createdb -Usysdba -D pg_default -E UTF8 -l ru_RU.UTF-8 -T template0 $1
          pg_dump -C -Uuser rdb |gzip -9c > ~/.hudson/jobs/$JOB_NAME/builds/$BUILD_NUMBER/rdb_backup.gz
          ssh $SSH_USER@$ENV -p $SSH_PORT 'pg_restore -Usysdba -d rdb -v' < ~/.hudson/jobs/Backup/builds/$BACKUP_BUILD_NUM/backup.tar
          
          # remote backup
          ssh $SSH_USER@$ENV -p $SSH_PORT 'pg_dump -Usysdba -C -Ftar -v rdb' > ~/.hudson/jobs/$JOB_NAME/builds/$BUILD_NUMBER/backup.tar
          gzip -9 -v ~/.hudson/jobs/$JOB_NAME/builds/$BUILD_NUMBER/backup.tar
          
          pg_hba.conf
          # TYPE  DATABASE        USER            ADDRESS                 METHOD
          local   all             all                                     trust
          host    all             all             0.0.0.0/0               md5
             

          ClearCase

          # list view
          clt lsview -properties -full pb3j0415_mts3e
          
          # make CC file executable
          clt protect -chmod +x file
          
          #create label
          clt mklbtype LABEL_NAME
          
          #apply label
          clt mklabel -recurse LABEL_NAME *
          
          #find all files with this label
          clt find . -version "lbtype(LABEL_NAME)" -print
          clt lsco -recur       : Show CHECKEDOUT
          clt ci -nc `clt lsco -recur -short`  - Check in all CHECKEDOUT
          
          #find all files with this branch
          clt find . -version "brtype($WORK_BRANCH)" -print
          
          #find all files which were checked in since ...
          clt find . -name "*.java" -version "created_since(28-Jun-2005)" -print
          
          #get info about label
          clt desc lbtype:LABELNAME
          
          #put file under branch
          clt mkbranch BRANCH_NAME FILE_NAME
          
          #list all labels for vob
          cleartool lstype -kind lbtype -invob vob:/advcust/in/pps
          
          # create new
          cleartool mkbrtype -c "branch" br_mts_ppsc_7k_ph3e
          cleartool mklbtype -c "label"  LABEL
          
          # create change file
          cleartool anno file
          
          # Build
          cleartool lsdo (-l)
          cleartool catcr (-flat) file_DO
          cleartool diffcr exe1 exe2
          ct rmdo
          
          
          Sourceforge path:
          cd /home/project-web/masterj/htdocs/
          cd /home/user-web/gkislin/htdocs/
            

          JVisualVM

          select x from org.apache.catalina.loader.WebappClassLoader x
          
          Anatomy of a PermGen Memory Leak

          Common links