Referencia completa de mapeo entre conceptos, comandos y herramientas de Linux/Windows y sus equivalentes en IBM i. Ideal para administradores que vienen del mundo x86.
Conceptos Linux/Windows
Equivalente IBM i
uname -aDSPSYSVAL SYSVAL(QMODEL)Info del sistema y versionhostnameDSPNETANombre del sistema y atributos de redcat /etc/os-releaseDSPPTF LICPGM(5770SS1)Version del OS y PTFsuptimeDSPSYSSTSIncluye CPU%, memoria, uptimeshutdown -h nowPWRDWNSYS OPTION(*CNTRLD)Apagar el sistema controladamenterebootPWRDWNSYS OPTION(*CNTRLD) RESTART(*YES)Reiniciar (IPL)dateDSPSYSVAL SYSVAL(QDATE) / QTIMEFecha y hora del sistematimedatectlCHGSYSVAL SYSVAL(QTIMZON)Configurar timezonelocaleDSPSYSVAL SYSVAL(QCCSID)Encoding del sistema (CCSID)env / setDSPLIBL / WRKSYSVALEquivalente a variables de entornoIBM i tiene dos sistemas de archivos: el QSYS.LIB (nativo, basado en bibliotecas) y el IFS (Integrated File System, similar a Unix). Los comandos difieren segun con cual trabajes.
ls /dirWRKOBJ LIB/OBJListar objetos en una bibliotecals -laWRKOBJPDM LIB(*LIBL)PDM: listado con opciones de accionfind / -name fileWRKOBJ OBJ(*ALL/*ALL)Buscar objetos en todo el sistemamkdir /dirCRTLIB LIB(MYLIB)Crear biblioteca (contenedor)rmdir /dirDLTLIB LIB(MYLIB)Eliminar bibliotecacp file1 file2CRTDUPOBJ / CPYFCopiar objetos o archivosmv file1 file2MOVOBJ / RNMOBJMover o renombrar objetosrm fileDLTF FILE(LIB/FILE)Eliminar archivo (tabla)stat fileDSPOBJD OBJ(LIB/OBJ)Informacion detallada del objetodu -sh /dirDSPLIB LIB(MYLIB)Tamanio de la bibliotecaPATH=/usr/bin:...EDTLIBL / ADDLIBLEEquivalente al PATH: library listcd /dirNo aplicaNo hay directorio actual en QSYS.LIBls -la /pathWRKLNK OBJ('/path')Navegar IFS (similar a ls)cd /pathCD DIR('/path')Cambiar directorio en QShellcat file.txtDSPF STMF('/path/file.txt')Ver contenido de archivocp file1 file2CPY OBJ('/a') TOOBJ('/b')Copiar archivos en IFSmv file1 file2MOV OBJ('/a') TOOBJ('/b')Mover archivos en IFSrm fileRMVLNK OBJLNK('/path/file')Eliminar archivo en IFSmkdir /dirMKDIR DIR('/path/dir')Crear directorio en IFSchmod 755 fileCHGAUT OBJ('/path') DTAAUT(*RWX)Cambiar permisos IFSchown user fileCHGOWN OBJ('/path') NEWOWN(USER)Cambiar propietariodf -hWRKDSKSTSEspacio en discoifconfig / ip addrNETSTAT *IFCInterfaces de red activasroute / ip routeNETSTAT *RTETabla de rutasnetstat -tlnpNETSTAT *CNNConexiones TCP activasping hostPING RMTSYS('host')Ping nativotraceroute hostTRACERT RMTSYS('host')Traceroutenslookup / digNSLOOKUP HOST('host')Resolucion DNSssh user@hostTelnet 5250 / SSH (PASE)5250 = nativo, SSH = PASEscp / sftpFTP / SFTP nativoTransferencia de archivoshostname -ICFGTCP opcion 1Configurar TCP/IPiptables / firewall-cmdPacket rules (CFGTCP opt 4)Reglas de firewall nativassystemctl start sshdSTRTCPSVR SERVER(*SSHD)Iniciar servicio SSHsystemctl start httpdSTRTCPSVR SERVER(*HTTP)Iniciar servidor HTTP Apacheuseradd / net userCRTUSRPRFCrear usuariouserdel / net user /deleteDLTUSRPRFEliminar usuariopasswdCHGPWD / CHGUSRPRFCambiar contrasenaid / whoamiDSPUSRPRF USRPRF(*CURRENT)Info del usuario actualgroups / net localgroupDSPUSRPRF (grupo *GRPPRF)Grupos = group profileschmod 644 fileCHGAUT OBJ() DTAAUT(*RX)Cambiar permisoschown user fileCHGOBJOWN OBJ() NEWOWN()Cambiar propietariols -la (permissions)DSPAUT OBJ(LIB/OBJ)Ver permisos de objetosudo / runasSBMJOB USER(QSECOFR)Ejecutar como otro usuariovisudo / sudoersGRTOBJAUT / *ALLOBJOtorgar privilegios/var/log/auth.logDSPAUDJRNE (journal de auditoria)Log de seguridad/etc/security/limits.confWRKSYSVAL SYSVAL(QSECURITY)Nivel de seguridad global (20-50)ps aux / tasklistWRKACTJOBVer todos los jobs activostop / htopWRKACTJOB + F10 (elapsed)Monitoreo en tiempo realkill -9 PIDENDJOB JOB(nombre) OPTION(*IMMED)Terminar un jobkill -15 PIDENDJOB JOB(nombre) OPTION(*CNTRLD)Terminar controladamentenohup cmd &SBMJOB CMD(comando)Ejecutar en background (batch)crontab -eWRKJOBSCDEProgramar tareassystemctl start svcSTRSBS SBSD(subsistema)Iniciar subsistemasystemctl stop svcENDSBS SBS(subsistema)Detener subsistemasystemctl status svcWRKSBS / WRKSBSJOBEstado del subsistemajournalctl -u svcWRKJOBLOGLog del job (como journal de unidad)nice -n 10 cmdSBMJOB RUNPTY(50)Prioridad de ejecucionat 3:00 PM cmdSBMJOB SCDDATE(date) SCDTIME(time)Ejecutar en fecha/hora especificaCREATE DATABASECRTLIB (o CREATE SCHEMA)Library = schema = databaseCREATE TABLECREATE TABLE / CRTPFSQL o DDS (legacy)CREATE INDEXCREATE INDEX / CRTLFSQL o Logical File (legacy)CREATE VIEWCREATE VIEW / CRTLFSQL view o Logical FileSELECT * FROM tblSELECT * FROM LIB.TABLEPrefijo con librarySHOW TABLESSELECT * FROM QSYS2.SYSTABLESCatalogo del sistemaDESCRIBE TABLEDSPFFD FILE(LIB/FILE)Descripcion de camposmysql / psql (CLI)STRSQLSQL interactivo en 5250mysqldump / pg_dumpSAVLIB / CPYTOIMPFBackup / export de datosSHOW PROCESSLISTWRKACTJOB SBS(QSYSWRK)Ver queries activasEXPLAIN SELECT ...Visual Explain (ACS)Plan de ejecucion de queryCREATE TRIGGERCREATE TRIGGERSQL triggers (identico)CREATE PROCEDURECREATE PROCEDUREStored procedures SQLvim / nano / VS CodeSEU / RDi / VS Code + Code4iEditores de codigo fuentegcc -o prog prog.cCRTBNDRPG / CRTSQLRPGICompilar programa RPGmake / MakefileNo estandar (scripts CL)Algunos usan GNU Make en PASEgdb / lldbSTRDBG / Debug en RDiDebugger interactivogrep -r 'text' .FNDSTRPDM / FNDSTRMODBuscar texto en fuentesdiff file1 file2CMPPFM (Compare PF Members)Comparar fuentesgit init / commitGit en PASE (nativo)Git funciona en IFS via PASEpython / node / javaPython/Node/Java en PASETodos disponibles en PASEpip install pkgpip3 install pkg (PASE)Python packages en PASEnpm install pkgnpm install pkg (PASE)Node.js packages en PASEdocker run imgNo soportado nativamenteContainers no corren en IBM itop / htopWRKSYSSTSCPU, memoria, pool de almacenamientofree -hWRKSYSSTS (pool sizes)Memoria por pool de trabajodf -hWRKDSKSTSEspacio en disco (ASPs)iostatWRKDSKSTS (I/O stats)Estadisticas de I/O de discovmstatDSPSYSSTSEstado general del sistema/var/log/syslogDSPMSG QSYSOPRMensajes del sistema/var/log/messagesDSPLOG LOG(QHST)Log historico del sistemajournalctl -f (follow)DSPMSG MSGQ(QSYSOPR)Monitorear mensajes en vivostrace / ltraceTRCJOB / TRCTCPAPPTrace de llamadas y redsar (sysstat)Collection Services + iDoctorMetricas historicas de performanceNagios / ZabbixIBM Navigator for i / RobotsMonitoreo grafico web-- Dashboard rapido de estado del sistema WRKSYSSTS -- CPU%, memoria, disk I/O WRKACTJOB -- Jobs activos (F10 para elapsed) WRKDSKSTS -- Estado de discos DSPMSG QSYSOPR -- Mensajes criticos DSPLOG -- Log del sistema WRKSBS -- Subsistemas activos
tar -czf backup.tar.gz /dirSAVLIB LIB(MYLIB) DEV(*SAVF)Backup de biblioteca a save filetar -xzf backup.tar.gzRSTLIB SAVLIB(MYLIB) DEV(*SAVF)Restaurar bibliotecadd if=/dev/sda of=disk.imgSAVSYS DEV(*SAVF)Backup del sistema completorsync -av src/ dest/SAVCHGOBJ (save changed objects)Backup incrementalcp -a file file.bakSAVOBJ OBJ(x) LIB(y)Backup de objeto individualAmanda / BaculaBRMS (Backup Recovery Media Services)Herramienta de backup enterpriseaws s3 cp / gsutilICC (IBM Cloud Connector)Backup a cloud object storagecron + backup scriptBRMS control groups + JOBSCDEBackup automatizado programadoman commandF1 (help) o GO CMDHLPAyuda contextual sobre comandoswhich / whereisDSPOBJD OBJ(*LIBL/cmdname)Encontrar donde esta un objetowc -l fileDSPFD FILE(LIB/FILE) TYPE(*MBR)Contar registros en archivohead -n 10 fileDSPPFM FILE(LIB/FILE)Ver contenido de physical filetail -f /var/log/xDSPMSG MSGQ(QSYSOPR) (con refresh)Seguir mensajessed / awkSQL UPDATE / CPYF con FMTOPTTransformar datoscurl / wgetSYSTOOLS.HTTPGETCLOB (SQL)Llamadas HTTP desde SQLcronADDJOBSCDE / WRKJOBSCDEProgramar tareas recurrentesmail / sendmailSNDDST / SNDSMTPEMMEnviar correo electronicozip / unzipJAR (Java) o PASE zip/gzipCompresion de archivosls,grep, vi,python3, node, etc. Acceder via SSH o CALL QP2TERM.