8.3 KiB
8.3 KiB
Command Line Reference Across Different Shells
| Operation | Linux/macOS (Bash/Zsh) | PowerShell | Command Prompt (CMD) | Git Bash (Windows) |
|---|---|---|---|---|
| File System Navigation | ||||
| List directory contents | ls |
Get-ChildItem or dir or ls |
dir |
ls |
| List with details | ls -l |
Get-ChildItem | Format-Table or ls -l |
dir /p |
ls -l |
| List hidden files | ls -a |
Get-ChildItem -Hidden or ls -Force |
dir /a |
ls -a |
| Change directory | cd path/to/dir |
Set-Location path/to/dir or cd path/to/dir |
cd path\to\dir |
cd path/to/dir |
| Go to parent directory | cd .. |
cd .. |
cd .. |
cd .. |
| Go to home directory | cd or cd ~ |
cd ~ |
cd %USERPROFILE% |
cd ~ |
| Print working directory | pwd |
Get-Location or pwd |
cd |
pwd |
| File Operations | ||||
| Create new file | touch filename |
New-Item -Path filename -ItemType File |
type nul > filename |
touch filename |
| Create directory | mkdir dirname |
New-Item -Path dirname -ItemType Directory or mkdir dirname |
mkdir dirname |
mkdir dirname |
| Copy file | cp source dest |
Copy-Item source dest or cp source dest |
copy source dest |
cp source dest |
| Move/rename file | mv source dest |
Move-Item source dest or mv source dest |
move source dest |
mv source dest |
| Delete file | rm filename |
Remove-Item filename or rm filename |
del filename |
rm filename |
| Delete directory | rm -r dirname |
Remove-Item dirname -Recurse |
rmdir /s /q dirname |
rm -r dirname |
| View file content | cat filename |
Get-Content filename or cat filename |
type filename |
cat filename |
| Edit text file | nano filename or vim filename |
notepad filename |
notepad filename |
nano filename or vi filename |
| System Information | ||||
| Current user | whoami |
$env:USERNAME |
echo %USERNAME% |
whoami |
| System information | uname -a |
Get-ComputerInfo |
systeminfo |
uname -a |
| Show processes | ps or ps aux |
Get-Process |
tasklist |
ps |
| Networking | ||||
| Check connectivity | ping host |
Test-Connection host or ping host |
ping host |
ping host |
| Show IP address | ip addr or ifconfig |
Get-NetIPAddress |
ipconfig |
ipconfig or ip addr |
| Download file | wget url or curl -O url |
Invoke-WebRequest -Uri url -OutFile file |
curl url -o file |
wget url or curl -O url |
| File Permissions | ||||
| Change permissions | chmod permissions file |
icacls file /grant user:permission |
icacls file /grant user:permission |
chmod permissions file |
| Change owner | chown user:group file |
Set-Acl |
N/A | chown user:group file |
| Process Management | ||||
| Run in background | command & |
Start-Process command |
start command |
command & |
| Kill process | kill PID or pkill name |
Stop-Process -Id PID or Stop-Process -Name name |
taskkill /PID PID |
kill PID |
| Miscellaneous | ||||
| Clear screen | clear |
Clear-Host or cls |
cls |
clear |
| Environment variables | echo $VARIABLE |
$env:VARIABLE |
echo %VARIABLE% |
echo $VARIABLE |
| Command history | history |
Get-History |
doskey /history |
history |
| Piping | command1 | command2 |
command1 | command2 |
command1 | command2 |
command1 | command2 |
| Redirect output | command > file |
command > file |
command > file |
command > file |
| Append output | command >> file |
command >> file |
command >> file |
command >> file |
| File Searching | ||||
| Find files by name | find /path -name "pattern" |
Get-ChildItem -Path /path -Filter "pattern" -Recurse |
dir /s /b "pattern" |
find /path -name "pattern" |
| Find files containing text | grep -r "text" /path |
Get-ChildItem -Path /path -Recurse | Select-String "text" |
findstr /s /i "text" *.* |
grep -r "text" /path |
| Find recent files | find /path -mtime -7 |
Get-ChildItem -Path /path -Recurse | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-7)} |
N/A | find /path -mtime -7 |
| Find files by size | find /path -size +10M |
Get-ChildItem -Path /path -Recurse | Where-Object {$_.Length -gt 10MB} |
N/A | find /path -size +10M |
| Text Processing | ||||
| Search text in file | grep "pattern" file |
Select-String -Pattern "pattern" -Path file |
findstr "pattern" file |
grep "pattern" file |
| Count lines in file | wc -l file |
(Get-Content file).Length |
find /c /v "" file |
wc -l file |
| Replace text in file | sed 's/old/new/g' file |
(Get-Content file) -replace 'old','new' | Set-Content file |
N/A | sed 's/old/new/g' file |
| Sort file content | sort file |
Get-Content file | Sort-Object |
sort file |
sort file |
| First 10 lines of file | head -n 10 file |
Get-Content file -TotalCount 10 |
type file | find /v /n "" | find " 1:" > " 10:" |
head -n 10 file |
| Last 10 lines of file | tail -n 10 file |
Get-Content file -Tail 10 |
N/A | tail -n 10 file |
| Disk Usage | ||||
| File/dir size | du -sh path |
Get-ChildItem path | Measure-Object -Property Length -Sum |
dir path |
du -sh path |
| Disk space usage | df -h |
Get-PSDrive |
fsutil volume diskfree C: |
df -h |
| Compression | ||||
| Create zip archive | zip -r archive.zip dir/ |
Compress-Archive -Path dir -DestinationPath archive.zip |
N/A | zip -r archive.zip dir/ |
| Extract zip archive | unzip archive.zip |
Expand-Archive -Path archive.zip -DestinationPath dir |
N/A | unzip archive.zip |
| Create tar archive | tar -cvf archive.tar dir/ |
N/A | N/A | tar -cvf archive.tar dir/ |
| Extract tar archive | tar -xvf archive.tar |
N/A | N/A | tar -xvf archive.tar |
| Create tar.gz archive | tar -czvf archive.tar.gz dir/ |
N/A | N/A | tar -czvf archive.tar.gz dir/ |
| User Management | ||||
| Add user | useradd username |
New-LocalUser -Name "username" |
net user username password /add |
N/A |
| Delete user | userdel username |
Remove-LocalUser -Name "username" |
net user username /delete |
N/A |
| Change password | passwd username |
Set-LocalUser -Name "username" -Password (ConvertTo-SecureString "password" -AsPlainText -Force) |
net user username newpassword |
N/A |
| Network Connections | ||||
| Show listening ports | netstat -tuln |
Get-NetTCPConnection -State Listen |
netstat -an | find "LISTENING" |
netstat -tuln |
| Trace route to host | traceroute host |
Test-NetConnection -TraceRoute host |
tracert host |
traceroute host |
| Show DNS info | dig domain |
Resolve-DnsName domain |
nslookup domain |
dig domain |
| Process Control | ||||
| Process tree | pstree or ps -ejH |
Get-Process | Format-Table -GroupBy Parent |
tasklist /svc |
ps -ejH |
| Top processes by resource | top |
Get-Process | Sort-Object -Property CPU -Descending |
tasklist /v /fo list /fi "MEMUSAGE gt 1000" |
top |
| Background process status | jobs |
Get-Job |
N/A | jobs |
| Schedule a task | crontab -e |
New-ScheduledTask |
schtasks /create |
crontab -e |
| Shell Scripting | ||||
| Run shell script | bash script.sh |
.\script.ps1 |
script.bat |
bash script.sh |
| Make script executable | chmod +x script.sh |
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass |
N/A | chmod +x script.sh |
| Define variable | var="value" |
$var = "value" |
set var=value |
var="value" |
| Export variable | export var="value" |
$env:var = "value" |
set var=value |
export var="value" |
| If statement | if [ condition ]; then commands; fi |
if ($condition) { commands } |
if condition commands |
if [ condition ]; then commands; fi |
| Loop through items | for i in items; do commands; done |
foreach ($i in $items) { commands } |
for %%i in (items) do commands |
for i in items; do commands; done |
| Remote Access | ||||
| SSH to server | ssh user@host |
New-SSHSession -ComputerName host -Credential user |
N/A | ssh user@host |
| Secure copy file | scp file user@host:/path |
scp file user@host:/path (if installed) |
N/A | scp file user@host:/path |
| Remote shell command | ssh user@host command |
Invoke-Command -HostName host -ScriptBlock { command } |
N/A | ssh user@host command |