Skip to main content
Reading:Introduction
Jump to Section
Linux & Unix Commands Every Informatica Support Engineer Must Know
📝

Linux & Unix Commands Every Informatica Support Engineer Must Know

Shaik NoorShaik Noor
Jun 28, 2026
7 min read
A complete Linux and Unix command reference for Informatica Support Engineers - covering file operations, log analysis, pmcmd, pmrep, infacmd, and real production use cases.

If you are preparing for an Informatica Support Engineer interview, the Linux and Unix section is almost guaranteed to come up.

Interviewers want to know one thing: can you actually sit at a terminal and solve a production problem?

This post covers every command you need - organised by category - with real Informatica use cases so you know exactly why each one matters on the job.


Who This Post Is For

  • Informatica PowerCenter support engineers preparing for interviews

  • ETL support engineers who work on Linux/Unix servers

  • Anyone asked "tell me some Linux commands you use daily" in a data engineering interview


Essential Environment Variables to Know First

Before any command will work correctly, Informatica depends on these environment variables being set. You will be asked about these.

Variable

Purpose

$INFA_HOME

Root directory of the Informatica installation (e.g. /infa or /opt/Informatica/10.5.x)

$ORACLE_HOME

Oracle client installation path

$LD_LIBRARY_PATH

Shared library path for Informatica and database drivers

$PATH

Must include $INFA_HOME/server/bin for pmcmd and pmrep to work

$INFA_DOMAINS_FILE

Path to domains.infa - tells clients where to find the domain gateway

$INFA_TRUSTSTORE

Directory containing infa_truststore.jks for TLS-secured domains

$INFA_TRUSTSTORE_PASSWORD

Encrypted password for the truststore (set using pmpasswd)

To verify they are set correctly:

BASH
printenv INFA_HOME
env | grep -i infa
echo $LD_LIBRARY_PATH

To load them if missing:

BASH
source /home/infa_user/.bash_profile
source $INFA_HOME/infaenv.sh    # or your team's custom env script

Note: infaenv.sh is a site-specific script, not a fixed product path. Make sure infaenv.sh and any pmcmd/pmrep commands run in the same shell invocation, otherwise the environment changes will not be inherited by the child process.


1. Navigation & File System

These are the first commands you touch every time you log into the server.

pwd - Print current directory

BASH
pwd

Use it to confirm you are in the right directory before editing config files or running scripts.


ls - List directory contents

BASH
ls -lh /infa/server/infa_shared/SessLogs/
ls -lt | head -20        # Most recently modified files first
ls -la $INFA_HOME        # Include hidden files

Use it to check session logs, parameter files, and landing directories.


cd - Change directory

BASH
cd $INFA_HOME
cd /infa/server/infa_shared/SessLogs
cd ..                    # Go one level up
cd ~                     # Go to home directory

find - Search for files by name, type, date, or size

BASH
find /infa -name "*.log" -mtime -1           # Logs modified in last 24 hours
find . -name "SDE_*.log" -type f             # Informatica session logs by pattern
find /infa/server -name "pmserver.log"       # Find the main server log
find . -size +100M                           # Files over 100MB (disk space issues)

This is one of the most powerful commands for support work. Know it well.

Interview Tip:

"How would you find all session logs from the last 24 hours?" - find /infa/server/infa_shared/SessLogs -name "*.log" -mtime -1


2. File Operations

Day-to-day file management on the Informatica server.

cp - Copy files

BASH
cp param_file.txt param_file.txt.bak
cp -r /infa/server/infa_shared /backup/infa_shared_$(date +%F)

Always back up parameter files before editing them in production.


mv - Move or rename files

BASH
mv workflow.log workflow_$(date +%F).log
mv /infa/landing/data.csv /infa/archive/

rm - Remove files

BASH
rm -f *.bad
rm -rf /infa/server/infa_shared/Cache/old_cache/
find . -name "*.log" -mtime +30 -exec rm -f {} \;     # Delete logs older than 30 days

Interview Tip:

Be careful with rm -rf. Interviewers may ask how you handle disk space issues - mention cleaning up old session logs, bad files, and cache with find + -exec rm.


mkdir - Create directories

BASH
mkdir -p /infa/landing/project1
mkdir -p /infa/server/infa_shared/SessLogs/archive

touch - Create an empty file or update its timestamp

BASH
touch /infa/landing/trigger.done       # Create a trigger file for file-watcher workflows

3. File Permissions & Ownership

Permissions issues are one of the top causes of Informatica job failures.

chmod - Change file permissions

BASH
chmod 755 start_informatica.sh         # Owner can read/write/execute, others can read/execute
chmod 644 /infa/params/param_file.txt  # Owner can read/write, others can only read
chmod -R 755 /infa/server/bin/         # Apply recursively

chown - Change file owner

BASH
chown infa_user:infa_grp /infa/server/
chown -R infa_user /infa/server/infa_shared/SessLogs/

Interview Tip:

"A session failed with a permission error - what do you check?" Answer: ls -l on the source/target file and directory. Check if the Informatica service account (infa_user) has read/write access. Fix with chmod and chown.


4. Viewing File Contents

cat - Display full file contents

BASH
cat /infa/params/param_file.txt
cat pmserver.log

head - Show the first N lines

BASH
head -20 session.log
head -5 /infa/landing/customers.csv     # Check header and first few rows of a flat file

tail - Show the last N lines. -f follows the file live

BASH
tail -100 pmserver.log
tail -f /infa/server/infa_shared/SessLogs/SDE_Customer_Load.log
tail -50 workflow.log | grep -i error

tail -f is one of the most used commands in production support. You use it to watch a session log in real time while a workflow runs.


less - Browse large files without loading them fully into memory

BASH
less /infa/server/infa_shared/SessLogs/SDE_Large_Load.log
less +G file.log      # Open at the end of the file

Inside less: use /error to search, n for next match, q to quit.


wc - Count lines, words, or characters

BASH
wc -l /infa/landing/customers.csv          # Count rows in a flat file
grep -i "error" session.log | wc -l        # Count errors in a log

5. Search & Grep

grep is arguably the most important command for Informatica support work.

grep - Search file contents for patterns

BASH
grep -i "error" SDE_Customer_Load.log
grep -in "fatal\|error\|warning" pmserver.log      # Case-insensitive, with line numbers
grep -r "ORA-" /infa/server/infa_shared/SessLogs/  # Search all logs recursively
grep -v "^#" param_file.txt                         # Skip comment lines in param files
grep "Total rows" session.log                       # Find row count lines

grep with context lines:

BASH
grep -A 5 "ERROR" session.log      # Show 5 lines after each match
grep -B 2 -A 10 "Execution failed" pmserver.log

Interview Tip:

"How do you find errors in a session log?" grep -in "error\|warning\|fatal\|aborted" session.log


6. Text Processing

awk - Extract columns and perform calculations on structured data

BASH
awk -F',' '{print $1, $3}' customers.csv                  # Print columns 1 and 3
awk 'NR>1{sum++} END{print sum}' data.csv                 # Count rows excluding header
awk '/Total rows/{print $NF}' session.log                 # Extract row count from log
awk -F'|' '{print NF; exit}' data.txt                     # Check column count

sed - Stream editor for in-place text modifications

BASH
sed -i 's/OLD_VALUE/NEW_VALUE/g' param_file.txt            # Replace text in a file
sed -n '100,200p' session.log                              # Print lines 100 to 200
sed '/^$/d' file.txt                                       # Remove blank lines
sed 's/\r//' windows_file.txt                              # Remove Windows carriage returns

cut - Extract specific fields from delimited text

BASH
cut -d',' -f1,3 customers.csv
cut -d'|' -f2 transactions.txt | sort | uniq -c

sort and uniq - Sort and deduplicate data

BASH
sort -t',' -k2 customers.csv
sort file.txt | uniq -d                      # Show duplicate lines
sort file.txt | uniq -c | sort -rn           # Count occurrences, most frequent first

tr - Translate or delete characters

BASH
tr ',' '|' < input.csv > output.psv         # Convert delimiter
tr -d '\r' < windows.txt > unix.txt         # Remove carriage returns

7. Process Management

ps - List running processes

BASH
ps -ef | grep pmserver           # Check if Integration Service is running
ps -ef | grep pmrep              # Check repository agent
ps aux | grep -i informatica

top - Real-time process and resource monitor

BASH
top
top -u infa_user                 # Show only Informatica user processes

kill - Stop a process

BASH
kill -9 <PID>                    # Force kill (last resort)
kill -15 <PID>                   # Graceful terminate
killall -9 pmserver

nohup - Run a process that survives terminal logout

BASH
nohup ./start_infa.sh &
nohup pmcmd startworkflow ... > /tmp/wf_run.log 2>&1 &

Use nohup when starting services over SSH so they don't stop when you disconnect.

Interview Tip:

"How do you check if the Informatica Integration Service is running?" ps -ef | grep pmserver - if you see a pmserver process, it is running.


8. Disk & Memory

Disk full is one of the most common causes of Informatica session failures.

df - Check disk space

BASH
df -h                            # All file systems, human-readable
df -h /infa                      # Check the Informatica mount point specifically

du - Check what is using the disk space

BASH
du -sh /infa/server/infa_shared/*
du -sh * | sort -rh | head -10   # Find the largest directories

free - Check memory

BASH
free -h
free -m

Interview Tip:

"A workflow failed - what do you check first?" df -h for disk space. ps -ef | grep pmserver for service status. tail -f session.log for the error message. These three cover 80% of production failures.


9. Network & Connectivity

ping - Test basic connectivity

BASH
ping -c 4 oracle_db_host
ping infa_repository_host

telnet / nc - Test TCP port connectivity

BASH
telnet oracle_host 1521           # Test database listener port
nc -vz infa_host 6005             # Test Integration Service port
nc -vz infa_host 6001             # Test Repository Service port

netstat / ss - Check which ports are listening

BASH
netstat -tlnp | grep 6005
ss -tlnp | grep 6400
netstat -an | grep ESTABLISHED | grep 1521

nslookup - Resolve hostnames

BASH
nslookup oracle_db_host
nslookup infa_repository_host

Interview Tip:

"A workflow failed with a database connection error - what do you check?" ping db_host, then telnet db_host 1521, then netstat -an | grep 1521. This tells you whether the problem is network, port, or connection pool.


10. Archive & Compression

tar - Archive and compress directories

BASH
# Create a compressed archive of session logs
tar -czvf sesslogs_$(date +%F).tar.gz /infa/server/infa_shared/SessLogs/

# Extract an archive
tar -xzvf backup.tar.gz -C /restore/

# List archive contents without extracting
tar -tzvf archive.tar.gz

gzip / gunzip - Compress or decompress single files

BASH
gzip -k session.log              # Compress (keep original)
gunzip data.csv.gz               # Decompress
zcat data.csv.gz | head -5       # View compressed file without extracting

zgrep - Search inside compressed log files

BASH
zgrep -i "ORA-" sesslogs_archive.tar.gz
zcat session_20240101.log.gz | grep -i error

11. SSH & File Transfer

ssh - Connect to the Informatica server

BASH
ssh infa_user@infa_server_host
ssh -i ~/.ssh/infa_key.pem infa_user@server

scp - Copy files securely between servers

BASH
scp param_file.txt infa_user@server:/infa/params/
scp infa_user@server:/infa/server/infa_shared/SessLogs/session.log .
scp -r /infa/scripts/ infa_user@server:/infa/scripts/

sftp - Interactive secure file transfer

BASH
sftp infa_user@sftp_server
sftp> put /local/data.csv /remote/landing/
sftp> get /remote/file.csv /local/infa/landing/

12. Cron Jobs & Scheduling

crontab - Schedule recurring commands

BASH
crontab -l                                  # List current cron jobs
crontab -e                                  # Edit cron jobs
crontab -l -u infa_user                     # List another user's cron jobs

Cron syntax example:

BASH
# Minute  Hour  Day  Month  Weekday  Command
0    1    *    *     *     find /infa/SessLogs -mtime +7 -exec rm {} \;
30   6    *    *     1     /infa/scripts/weekly_cleanup.sh

Informatica support teams commonly use cron for:

  • Log cleanup and archival

  • Pre-session file checks (file watcher scripts)

  • Starting services after scheduled maintenance


13. Informatica-Specific Commands

These are the commands that set an Informatica support engineer apart from a general Linux user.

Key Log File Locations

BASH
Session logs:   $INFA_HOME/server/infa_shared/SessLogs/
Workflow logs:  $INFA_HOME/server/infa_shared/WorkflowLogs/
Node log:       $INFA_HOME/tomcat/logs/node.log
Service logs:   $INFA_HOME/server/infa_shared/log/

pmcmd - Control Workflows from the Command Line

BASH
# Start a workflow
pmcmd startworkflow \
  -sv IntegrationServiceName \
  -d DomainName \
  -u admin -p password \
  -f FolderName \
  WF_Customer_Load

# Stop a workflow
pmcmd stopworkflow \
  -sv IntegrationServiceName \
  -d DomainName \
  -u admin -p password \
  -f FolderName \
  WF_Customer_Load

# Get workflow status
pmcmd getworkflowdetails \
  -sv IntegrationServiceName \
  -d DomainName \
  -u admin -p password \
  -f FolderName \
  WF_Customer_Load

# Start a specific session task inside a workflow
pmcmd starttask \
  -sv IntegrationServiceName \
  -d DomainName \
  -u admin -p password \
  -f FolderName \
  WF_Customer_Load s_Customer_Load

pmrep - Manage the Repository from the Command Line

BASH
# Connect to repository
pmrep connect -r RepositoryName -d DomainName -u admin -p password

# List all workflows in a folder
pmrep listobjects -o workflow -f FolderName

# Export a workflow to XML
pmrep objectexport \
  -n WF_Customer \
  -o workflow \
  -f FolderName \
  -m -s -b -u \
  -e output.xml

# Backup the repository
pmrep backup -o /backup/repo_backup.rep

# Restore the repository
pmrep restore -i /backup/repo_backup.rep

infacmd - Manage Domain and Services

Path note: infacmd and infasetup live at $INFA_HOME/isp/bin/infacmd.sh. If your $PATH does not include that directory, use the full path.

BASH
# List all services in the domain
infacmd.sh ListServices -dn DomainName -un admin -pd password

# Start a service
infacmd.sh StartService -dn DomainName -sn IntegrationServiceName -un admin -pd password

# Stop a service
infacmd.sh StopService -dn DomainName -sn IntegrationServiceName -un admin -pd password

# Get service status
infacmd.sh GetServiceStatus -dn DomainName -sn IntegrationServiceName -un admin -pd password

Starting and Stopping Informatica Services

BASH
# Start the Informatica node
$INFA_HOME/tomcat/bin/infaservice.sh startup

# Stop the Informatica node
$INFA_HOME/tomcat/bin/infaservice.sh shutdown

# Verify the service started
ps -ef | grep pmserver

# Watch the startup log
tail -f $INFA_HOME/tomcat/logs/node.log

pmpasswd - Encrypt Passwords for Scripts

BASH
pmpasswd MyPassword

Never store plain-text passwords in shell scripts. Use pmpasswd to generate an encrypted value and use that in pmcmd/pmrep scripts.


14. Log Analysis Workflow

This is the process you should walk through in any "workflow failed" scenario question.

Step 1 - Check if the service is running:

BASH
ps -ef | grep pmserver

Step 2 - Check disk space:

BASH
df -h /infa

Step 3 - Find the session log:

BASH
find /infa/server/infa_shared/SessLogs -name "SDE_*.log" -mtime -1

Step 4 - Check for errors:

BASH
grep -in "error\|fatal\|warning\|aborted" session.log

Step 5 - View surrounding context:

BASH
grep -A 10 "Execution failed" session.log

Step 6 - Monitor a live run:

BASH
tail -f session.log | grep -i "error\|rows affected\|success"

Step 7 - Check network connectivity (if database error):

BASH
telnet oracle_db_host 1521

Quick Reference Table

Task

Command

Check disk space

df -h

Find large directories

du -sh * | sort -rh | head -10

Check if pmserver is running

ps -ef | grep pmserver

Monitor session log live

tail -f session.log

Find errors in log

grep -in "error|warning" session.log

Count rows in flat file

wc -l file.csv

Test database port

telnet db_host 1521

Back up a directory

tar -czvf backup.tar.gz /infa/server/infa_shared/

Set INFA_HOME

export INFA_HOME=/infa (installation root, not /infa/server)

Start a workflow

pmcmd startworkflow -sv ... -f Folder WF_Name

Check service status

infacmd.sh GetServiceStatus -dn Domain -un User -pd EncryptedPwd -sn Service

Archive old logs

find . -name "*.log" -mtime +30 -exec gzip {} \;


Conclusion

Linux and Unix skills are not optional for an Informatica support engineer - they are fundamental to the job.

Every production issue you solve will involve a terminal. Whether it is checking disk space, reading a session log, testing database connectivity, or running pmcmd to restart a failed workflow, the command line is where the real work happens.

The commands in this post cover what you will actually use day to day. Focus on the log analysis section and the Informatica-specific commands - those are what interviewers care most about.

If this post was useful, check out the companion post: What to Prepare for an Informatica Admin Interview (PowerCenter + IDMC)


Tags: #Informatica #Linux #Unix #ETL #PowerCenter #DataEngineering #SupportEngineer #pmcmd #pmrep

HomeVideosBlog