I finally scrapped all sorts of Windows from my laptop and turned to Linux, more specifically Ubuntu. Last time I did that was couple of years ago and it didn't go very well.
But now Ubuntu behaved just as I would expected and better, finishing a no hassle installation in few minutes. And every single device on my laptop worked automatically. Wi-Fi, bluetooth, webcam, sound, graphics, battery management - everything was there. Good job Ubuntu!
Working on Web is easy as you need only four applications: browser, text editor, file manager and image editor. Browser (Firefox and Chrome) exists on Ubuntu - check. Image Editor (gimp) - check. Text edit (Ultraedit for Linux) - check. But replacing a file manager, my trusty old Total commander, proved to be a much harder job.
Some features of Total commander I can't live without are:
- Search for text through files and directories
- Compare files by content (and live edit in compare)
- Browse 'into' archives and perform file operations on archived files
- FTP connection management
So far I installed and started testing the following Total commander alternatives on Linux:
- Worker
- Gnome Commander
- Tux Commander
- BSC
- Krusader
- emelFM2
- Double Commander
As I can see each has some strengths and weakness.
I'm eager to hear how you coped with a similar situation.
Suggested reading:
- Webification.com – Shiny New Website
- Check if the post is older than X days before placing ads
- Spread your wings, fly the Flock
Posted in: Startups
TAGS:commander linux, double commander, krusader telnet, linux commander, live without total commander, mcs windows linux, powershell midnight commander, there vba replacement linux, total comander linux, total commander linux plugin, total commander plugin 7zip, total commander replacement linux, total commander replacement ubuntu, totalcommander linux, tux commander mount, xargs replacement windows







21 Comments
Double Commander is it!
I've been using Ubuntu for years, tried every file manager, and always gone back to Total Commander under Wine.
I have been using Double Commander for a week now, and it really is good, with the look and feel of Total Commander it is better than all the rest.
I switched to Ubuntu about two years ago. My experience with the filemanager question was:
Nautilus was to simple (on the first try), Konqueror was to overloaded, so i had the same idea like you and used Krusader. But after a short time i found out about the possibility to use plugins in Nautilus. There are plenty of them and you can customize the Filemanager to fit your needs. Anyway Krusader is alway also installed. It's a great piece of Software and in my opinion one of the most unrecordnized projects of the KDE community.
> Some features of Total commander I can't live without are:
> * Search for text through files and directories
> * Compare files by content (and live edit in compare)
> * Browse 'into' archives and perform file operations on archived files
> * FTP connection management
All this you can do with JEdit editor with plug-ins http://www.jedit.org :)
Tried them all, Krusader is fine and mature, but only Double Commander gives me the look and feel of Total Commander. It has not even reached 1.0 but already it is has many of the great features you love about TC. Development is moving rapidly and this is the one I am going to stick to. One of the great potentials is it is multi-platform and it uses TC plugins. These can be used for the windows version, separate ones are made for Linux.
Have you ever tried to turn to kde 4.4 ?? In my opinion it's the best desktop around . . . sure many things are different to gnome but i think more useful than every other desktop environment, more thought-out . . . and since 4.4 i love dolphin... it's twintabs it's instant console it's ftp , it's places . . . even if i browse directories with more than 100.000 files it's still fast enough . . .
give it a try . . .
http://kde.org
Midnight Commander (mc) is good as stated several places above.
But the more I adjust Total Commander and the wine settings, the more "native" it behaves. For example, I can double click or press enter on a file, and it will open in Linux natively or in another wine program depending on the settings I made for that file extension.
Currently, I more or less only miss coping with Linux file permissions, but that will probably never be possible. For that I use mc or just the command line.
I don't like krusader. It tries to be TC, but it will never be!
I'm afraid I'm still on dual boot.
I need my daily fix of Call of Duty 4 and a properly working Skype.
BUT...... I love Ubuntu and it is my default OS. To be able to download a program for free and have such an awesome community of support out there is amazing.
If I had the money I would be hitting the 'donate' button on every site I visited. I applaud the Open Source community.
I too switched from Windows to Linux a few years back. Specifically Ubuntu. I Never looked back.
I don't think my file management needs are as robust as yours, I just use nautilus. For FTP firefox's FireFTP and Gedit for editing files (open files from fireftp into gedit, edit and saves right back to the server).
And I absolutely love Compiz Fusion for Productivity. I use the scale feature and shift switcher instead of a Task bar based widows menu
hi vlado :)
nice to read about your windows deleting session :)
i'm totaly agree with you, that total commander is a great program from this swiss guy named ghisler. you can install this pure software also on linux using wine. wine is an acronyme means: windows not emulating. so the programs working with wine aren't slower than on windows. not every program is working out of the box. but total commander is working fine :)
Hi Patrick :)
I was thinking about wine but wanted something native. At the end I went with Krusader which was most like TC. I still miss a visual diff tool with live edit.
ps. still in Bol?
hej vlado
no, i'm back again. i was only for a very short time in bol. i think i'll go again at beginning of april... but not for sure... we were cutting the vineyard at bura time and couldn't finishing the rest :)
i'm using krusader to. but i'm agree with "chenoel". means sometimes it is better for me to use the old school mc :) but there is the same problem with your visual diff util... have you tried the command:
apt-cache search compare
or
apt-cache search compare gui
there are many programs b.e. diff
oh my... i cant liv on my linux-box without "midnight commander"
*i luv blue screen*
the package "mc" is quite good at what you specify, given the good plug-ins and fuse plug-ins. It's in console, but i use that interface since Norton Commander, back at the DOS times, it may seems barbaric to GUI users but it's an invaluable tool. An i read the rose book from hackers ;-)
else the best is to learn a quick scripting language, to do what you need, personally i like, and recommend perl, it feels like assembly to me, it takes time to learn, but if you start to use it, wow, you'll look at other languages as if they were deficient (IMHO). but the choices are yours, python, ruby, php, lua, and such are also good choices.
in linux you have all the developing tools you need and even more. in windows, you get wsh, vba or powershell. Then, freely available for students, visual studio languages (###).
I'm used to handle, compare, store history or updates a few millions of files daily (around 3 millions on average (~2.875 exactly)), i prefer to spend one hour to figure out a way to write scripts to handle everything, and have a general database to access all those. A scripting language is the best solution. Once i get a solution i go to C or C++ then assembly for loops, get to know the toolchain you use if you start mixing languages.
If it's for a job, loose time making your tools, you'll get free time after. if it's for yourself play with the tool you have at hand. Remember that it's easier in linux to write small scripts using a variety of tools, take what you get from whose you know.
Learn about these: 7zip, arj, at, atq, atrm, bash, bg, cd, chgrp, chmod, chown, compress, cp, cpio, cron, crontab, df, dh, dmesg, du, edquota, expand, fdisk, fg, find, fmt, free, fsck, ftp, fuse, grep, groupadd, groupdel, groupmod, grpconv, grpunconv, gunzip, gzip, halt, info, init, ipfwadm, jobs, kill, lastlog, less, lilo, ln, locate, log, logger, logrotate, ls, man, mc, mkdir, mkfs, more, mount, mv, ncftp, newgrp, nice, nl, od, pack, passwd, pr, ps, pwconv, pwd, pwunconv, quotaoff, quotaon, renice, repquota, rm, rmdir, shutdown, sort, tar, tee, telnet, top, touch, tr, umount, uname, unarj, uncompress, uniq, unpack, unzip, updatedb, useradd, userdel, wc, wget, whatis, whereis, which, who, xargs, zip, zsh.
Have fun!
Did you just type all of those tools from your head?
@VLAD (= Virus Laboratories And Distribution, back in 1994 from Australia? -- just kidding)
> Did you just type all of those tools from your head?
nope, it's a list i keep around and update for more than 15 years. i have some example for my most common uses, and aliases, functions, in my .bashrc. i prefer zsh, and if you're learning, try zsh, sadly bash is everywhere and compile nearly everywhere easily (as with most gnu apps)... i just did a copy paste here. i'll give you some examples here after. another good paper i also keep at hand is the "Unix Rosetta Stone", it's useful if you are working with different systems (like aix, *ux, *bsd, osx, sco, solaris, etc). I actually have printed an A3 poster with it and it sits just next to my screens. check it out here: http://bhami.com/rosetta.html
also with mc (moonlight commander), you might want to learn the gnu/screen program and how to attach and detach from a session. Instead of running xterm (or whatever you use, rxvt-utf8, gnome-terminal, konsole, etc.), use:
xterm -e "screen -D -RR"
learn the screen program, its short cuts and what you can use it for. and xterm is quite malleable and you can change it to whatever you like if you learn (again) to use it.
It's difficult to start using unix systems, i remember the first time i used it, i thought i was a pc-guru, knowing assembly on different processors (C64, amiga, atari, or motorola 680x0 for that matter, x86 etc.), then i installed a slackware linux on one of my box and was in front of that horrible terminal where most of the things i knew were unusable (it was a time where X wasn't really good, and twm was still The Windows Manager, it was before the 1994 windows release of "Chicago"). I can crack most of the programs i know or i like, i can reverse engeneer a lot of protections, even on "alien" hardware with a bit of knowledge. but using linux wasn't an easy step. i felt quite frustated. it's like having a little stone in your shoe for a long walk. yet when you get thru the finish line, you're happy you did. perhaps i was the last to get to the end line, but i was the winner as i got a lot of knowledge forcing myself to know this system. now it's economic recession, and you get at least 5000 euros a month if you know such systems. if you know them well. i call that win-win ;-)
the console is invaluable compared to click, drag'n'drop and other GUI apps, it let you do tons of actions quite rapidly... what's best? it let you write scripts that write scripts that do all your homework without you bothering about it... i know it sounds old fashion, but even with the better bells and whistles, you will not be as effective as with some scripts (and you can write your own plugins for mc...). instead of looking for a tool that does what you need, start thinking to make a tool that does what you want, not approximatively and you fixing it behind. i recommend perl, but it's up to you to choose your language. perl is hard to start with, but once you know it, wow, you look at other scripting languages with a smile, they're so simple and dumb compared to it (it's my humble opinion, well not really, perl is my god ;) ). anyway linux or other un*x(es) let you create your own tools, stop thinking as a windows user: i can do this clicking here and there. Start thinking: how the hell would i do if i was a stupid computer? learn, learn, learn, it takes years but once you master it, well you'll be the next pc-guru around ;) until there's some changes in the universe... ;-)
If you wish to stay between windows and linux, there's a lot of solutions, try cygwin ( http://www.cygwin.com/ ), or even the windows services for unix tools ( SFU, http://en.wikipedia.org/wiki/Microsoft_Windows_Services_for_UNIX ). Even microsoft recognize that a simple way to talk to a computer is the best way to get things done... a computer is a tool you use. it's not a simple box lying around your desktop and letting you watch pr0n on the net, or playing games. It can actually get things done, if you KNOW how to ask it.
here is an example of my bashrc for linux platforms, you should create a new user with no privileges to start using it, dwelve into it, check the man pages or the infos pages when you don't understand something. those are just my own tools, nothing magic here, but if you wanna learn, get a look at that stuff. It works both on linux and windows with cygwin.
if you create a test user just copy the archive in the /home folder.
i send you a copy to your email. it works (in general) for linux and windows (cygwin). and some other oses mentionned before.
(sorry if i made mistakes, english isn't my mother tongue)
---------------------------------------------------------------------------------------------- .bashrc
#!/bin/bash
######################################################################
# Exported User Environment Variables
export USER=`id -un` # username
export GROUPS=`id -G` # list of groups id we're in
export HOSTNAME=`hostname` # the machine we're using, define their address in /etc/hosts
# Home dir
for home in /home /Users; do # Check Un*x or MacOS
if [[ -d "$home/$USER" ]]; then
export HOME="$home/$USER" # our home directory
fi
done
unset -v home
# Temp dir
export TMP="$HOME/tmp" # Temporary directory
export TEMP="$TMP" # for dos/win apps
export TMPDIR="$TMP" # i don't remember what's using this?!
# xxx maybe create the temp dir
if [[ ! -d $TMP ]]; then
echo bashrc: Something is wrong with your TMP dir: "$TMP".
unset -v TMP TEMP TMPDIR
fi
# History settings:
export HISTFILESIZE=4096 # Number of line to save
export HISTSIZE=1024 # Number of command to remember
export HISTCONTROL="ignoreboth" # dont save already entered commands, and command starting with a space (same as ignoredups:ignorespace)
export HISTIGNORE="..:...:....:cd *:df *:exit:fg:file *:gpg *:l:ll:loc *:ls *:man *:mc:mount *:su *:umount *:units *:wipe *" # remove those commands from history
export PROMPT_COMMAND='history -a' # Save history everytime you issue a command, useful when multiple bash are running
# Bash facilities
#export TMOUT=300 # exit bash after 5 minutes (useful for remote users)
export IGNOREEOF=1 # CTRL-D twice to exit
export CDPATH=".:..:../..:~:~/.cdpath:/data:/media" # path to search when cd'ing (recurse up to 3 path first)
######################################################################
# Setting PATH:
# xxx check if PATH doesnt contain unknown locations
unset -v PATH
line=1
while read -r path; do
path=${path%#*}
path=${path##*([$' \t\n'])}
path=${path%%*([$' \t\n'])}
eval "path=\"$path\""
if [[ $path ]]; then
if [[ -d "$path" && -r "$path" ]]; then
PATH="$PATH:$path"
else
echo Discarded "$path" at line $line from your PATH.
fi
fi
let line=line+1
done 33[0;39m"
# XTerm Title
# PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
#perl -e printf "33]0;\$PWD07\$PWD> "
# PS1='\[33[0m\]\[33[0;31m\].:\[33[0m\]\[33[1;30m\][\[33[0m\]\[33[0;28m\]Managing 33[1;31m\]\j\[33[0m\]\[33[1;30m\]/\[33[0m\]\[33[1;31m\]$(ps ax | wc -l | tr -d '\'' '\'')\[33[0m\]\[33[1;30m\] \[33[0m\]\[33[0;28m\]jobs.\[33[0m\]\[33[1;30m\]] [\[33[0m\]\[33[0;28m\]CPU Load: \[33[0m\]\[33[1;31m\]$(temp=$(cat /proc/loadavg) && echo ${temp%% *}) \[33[0m\]\[33[0;28m\]Uptime: \[33[0m\]\[33[1;31m\]$(temp=$(cat /proc/uptime) && upSec=${temp%%.*} ; let secs=$((${upSec}%60)) ; let mins=$((${upSec}/60%60)) ; let hours=$((${upSec}/3600%24)) ; let days=$((${upSec}/86400)) ; if [ ${days} -ne 0 ]; then echo -n ${days}d; fi ; echo -n ${hours}h${mins}m)\[33[0m\]\[33[1;30m\]]\[33[0m\]\[33[0;31m\]:.\n\[33[0m\]\[33[0;31m\].:\[33[0m\]\[33[1;30m\][\[33[0m\]\[33[1;31m\]$(ls -l | grep "^-" | wc -l | tr -d " ") \[33[0m\]\[33[0;28m\]files using \[33[0m\]\[33[1;31m\]$(ls --si -s | head -1 | awk '\''{print $2}'\'')\[33[0m\]\[33[1;30m\]] [\[33[0m\]\[33[1;31m\]\u\[33[0m\]\[33[0;31m\]@\[33[0m\]\[33[1;31m\]\h \[33[0m\]\[33[1;34m\]\w\[33[0m\]\[33[1;30m\]]\[33[0m\]\[33[0;31m\]:.\n\[33[0m\]\[33[0;31m\].:\[33[0m\]\[33[1;30m\][\[33[0m\]\[33[1;31m\]\t\[33[0m\]\[33[1;30m\]]\[33[0m\]\[33[0;31m\]:. \[33[0m\]\[33[1;37m\]\$ \[33[0m\]'
# PS1="${TITLEBAR}\T\[33[0m\]\[33[0;33m\]::\[33[0m\]\[33[1;30m\]\[33[0m\]\[33[0;37m\]\u\[33[0m\]\[33[0;33m\]@\[33[0m\]\[33[0;37m\]\h\[33[0m\]\[33[0;33m\]::\[33[0m\]\[33[1;33m\]\w\[33[0m\]\[33[0;33m\] \[33[0m\]\[33[0;32m\]\[33[0m\]\[33[1;37m\]\[33[0m\]\[33[1;37m\](\[33[0m\]\[33[0;33m\]\$(ls -l | grep \"^-\" | wc -l | tr -d \" \")\[33[0m\]\[33[1;37m\] \[33[0m\]\[33[1;30m\]\[33[0m\]\[33[0;37m\]files\[33[0m\]\[33[1;37m\], \[33[0m\]\[33[0;33m\]\$(ls --si -s | head -1 | awk '{print \$2}') \[33[0m\]\[33[0;37m\]total\[33[0m\]\[33[0;37m\])\n\[33[0m\]\[33[1;37m\]%\[33[0;0m\]"
# dumb prompt
#export PS1="\nDate: \d, \t\nUser: [\u@\H] Jobs: [\j] History: [\!]\n\w\$ "
#export PS2="> "
# New dircolors (see gen_filetypes.pl)
eval `dircolors -b "$HOME/.dircolors"`
# File Extentions xxx
export ExtImages="*.bmp *.BMP *.gif *.GIF *.jpg *.JPG"
# Some useful vars
#export EDITOR="vim --servername VIM_$USER --remote-silent " # doesnt work as expected
export EDITOR="vim"
export EDITORCMD="vim --servername VIM_$USER --remote-silent"
export GREP_COLOR=31
export PAGER='less'
export LESS='-iMQRSw -PM[%i/%m\: ?f%f:STDIN.] [C\:%c] [L\:?l%l:*.-?lb%lb:*./?L%L:*.] [P\:?d%d:*./?D%D:*.] [O\:?b%b:*./?B%B:*.] [?pt%pt:*.-?Pb%Pb:*.\%]'
#eval `bin/lesspipe`
#export LESSOPEN="| ~/bin/lesspipe %s";
#export LESSCLOSE="~/bin/lesspipe %s %s";
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# Screen dir (in case compile-time opts set the tmp files somewhere else)
# export SCREENRC="$HOME/.screenrc
# Fix perl 5.8.0 weird behaviour with cygwin (\r\n -> \n)
#export PERLIO='raw'
######################################################################
# Load configurations file, possibly overriding previous definitions.
# ATTN: All previously defined aliases will be removed!
for file in ~/.bash/aliases_functions.sh ~/.bash/shell_options.sh ~/.bash/hosts/$HOSTNAME_*.sh; do
if [[ -f $file && -r $file ]]; then
. $file
else
echo bashrc: Not found: "$file".
fi
done
unset -v file
########
# Command line option/completion
#
# Command line completion
export FIGNORE='.bck:bak:~' # ignored ext for completion
export INPUTRC="$HOME/.inputrc" # process my readline settings
complete -d cd # we only want to cd into directories
complete -G "/mnt/*" mount # cant mount anything
complete -G "/mnt/*" umount
# i never remember all those pid
complete -C "find_pid" kill
# command completion
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
##### Function keys
bind -x '"\C-b":cal -m3'
bind -x '"\M--": pushd ..'
bind -x '"\M-=": popd'
# Clean
unset -v WARNINGS
----------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------- inputrc
# Various Options
# man readline (comments are a pain here)
#
$if bash
set editing-mode emacs
set keymap emacs
set enable-keypad on
# This one cause problems with correct display of $PS1
#set horizontal-scroll-mode on
#set convert-meta off
#set input-meta on
#set meta-flag on
#set output-meta on
#set bind-tty-special-chars on
#set byte-oriented off
set bell-style visible
set prefer-visible-bell on
set blink-matching-paren on
set completion-ignore-case on
set completion-query-items 256
set disable-completion off
#set page-completions off
set print-completions-horizontally on
set expand-tilde off
set mark-directories on
#set mark-symlinked-directories on
set visible-stats on
set match-hidden-files on
set show-all-if-ambiguous on
set show-all-if-unmodified off
set history-preserve-point off
set mark-modified-lines off
set comment-begin #
# Completion
Tab: menu-complete
# History (Up/Down arrowns)
#"\M-OA": history-search-backward
#"\M-OB": history-search-forward
#"\e[A": history-search-backward
#"\e[B": history-search-forward
# Moving (Home/End)
#"\e[1~": beginning-of-line
#"\e[2~": quoted-insert
#"\e[3~": delete-char
#"\e[4~": end-of-line
#"\e[5~": beginning-of-history
#"\e[6~": end-of-history
#"\e[5C": forward-word
#"\e[5D": backward-word
# Custom Shortcuts
Control-L: clear-screen
# Magic space
Space: magic-space
$endif
----------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------- .bash/aliases_functions.sh
######################################################################
# Title: ~/.bash/aliases_functions.sh configuration file
# ------------------------------------------------------------------
# Created: 1994-07-23_10:31:17
# Version: 2007-02-27_20:01:07
# Author: unknown groumph.
#
# Description: This bash initialisation file is read and executed
# when starting a non-login shell from ~/.bashrc.
######################################################################
# Note that comments beginning with:
# - #! Modify the original command (those might cause bugs, I try to avoid them)
# - #= Leave the command working as usual
# - #> Create a new command (this might override something, but not to my knowledge)
######################################################################
unalias -a # Delete all aliases
alias realias="$EDITOR ~/.bash/aliases_functions.sh; source ~/.bash/aliases_functions.sh" #> Edit and reload aliases
#alias diff='diff -u'
######################################################################
# Navigate
alias cd..='cd ..' #> yes, i was using dos first !#@?
alias ..='cd ..' #> Norton Dos, in fact.... (which was better than 4Dos IMHO)
alias ...='cd ../..' #>
alias ....='cd ../../..' #> and i like long directory trees ;-)
alias z='cd -' #> go back to previous directory
alias tree='tree -df' #! not aviailable everywhere
alias mkdir='mkdir -p' #= create nested subdirs too
######################################################################
# List files
alias ls='ls --color=auto --quoting-style=shell-always' #! We want fancy colors, in a quoted string ALWAYS!
alias l='ls -F' #> two chars is faaar too long to type
alias lU='ls -dFl [A-Z]*' #> list files/dirs begining with an uppercase letter
alias lu='ls -dFl [a-z]*' #> list files/dirs begining with an uppercase letter
alias l.='ls -adFx .*' #> list dot files/dirs
alias ll='ls -lFh' #> list (h)uman-readable
alias la='ls -lFha' #> list (a)ll, (h)uman-readable
alias lt='ls -lFhart' #> list (a)ll, (h(uman-readable, time (recent goes last)
alias ltc='ls -lFhatc' #> list (a)ll, (h(uman-readable, creation time (recent goes last)
alias lz='ls -lFharS' #> list (a)ll, (h(uman-readable, size (biggest goes last)
alias lx='ls -lFhaX' #> list (a)ll, (h(uman-readable, extension
alias lsd='ls -lhd */' #> directories
alias lad='ls -lhd */ .*/' #> directories
######################################################################
# sockets
alias showsocks='ss -apes | P' #> all types, processes infos, detailled infos
# xxx lsof
######################################################################
# Find files
alias ff='find . -iname' #> find files in the current subdirs, case (i)nsensitive
alias flist='find .' #> list all files in subdirs (with ./ relative path)
alias flista='find `pwd` -print' #> list all files in subdirs (with absolute filename)
alias loc='locate -i' #> find files from update db, case insensitive
alias locf='locate -bei' #> find files from update db, only the basename, case insensitive, and if file still exists
######################################################################
# Look at files
alias P='less' #> Pager
alias S='sort -f' #> Sort, case insensitive
alias SP='S|P' #> Sort, case insensitive, results in pager
alias SU='sort -uf' #> Sort, uniq, case insensitive
alias SD='sort -f | uniq -id' #> Sort, dups, case insensitive
alias SN='sort -nf' #> Sort, insensitive, numerical
alias SUP='SU|P' #> Sort, uniq, case insensitive, results in pager
alias SDP='SD|P' #> Sort, dups, case insensitive, results in pager
alias SNP='SN|P'
alias H='head -32' #> Show the first 32 lines of a file
alias T='tail -32' #> Show the last 32 lines of a file
alias Tf='tail -32 -f' #> Show the last 32 lines of a file and follow
alias filez='file -kLpsz' #> Keep, dereference links, preserve date, special files, uncompress
# xxx extract meta-data
alias g='egrep --color=auto -i -r' #> Quick search with colors, case insensitive and recurse dirs
#alias hex='hexdump -C' #> Canonical hexdump ofs hex ascii (you can use hd instead)
alias hex='xxd -a -c 32 -g 4' #> hex dump
alias hexpatch='xxd -r -a -c 32 -g 4' #> apply hexdump
# xxx hexpatch
alias stringz='strings -a' #> show all, print hex offset
alias stringx='strings -atx' #> + hex offsets
alias V='mcview' #>
alias X='mcedit' #> I use this for the binary editor
######################################################################
# Access rights
alias R='chmod -Rc'
alias O='chown -Rc'
######################################################################
# Free space
alias df='df -PTah --sync' #! All FS, human read-able, print FS type, sync first
alias dfi='df -PTai --sync' #> All FS, list free inodes, FS type, sync first
alias uspc='du -h --max-depth=1' #> used space in current dir and subdirectorires
######################################################################
# Perl
alias p='perl -nle' #> process file by line, chomp
alias pp='perl -ple' #> process file by line, chomp and print
alias pdbg='perl -de 1' #> perl debugger
alias dpl='perl -MO=Deparse' #> show how perl see this code
alias dpl2='perl -MO=Deparse,-p,-q,-sCT' #> show how perl see this code, with parens and more
alias cpan='perl -MCPAN -e shell' #> Start CPAN
######################################################################
# Processes and jobs
alias psaux='ps ax --cols 1024 --format pid,euser,egroup,pri,nice,start,etime,%cpu,vsize,tty,args | less' #> i like this format...
alias pstree='pstree -Aplnu | P' #> Process tree
#alias psg='ps aux | egrep -i' # using pgrep instead
#alias myps='ps -Af | egrep -i $USER'
alias psg='pgrep'
alias top10="uname -a; uptime; echo; ps -eo pcpu,rss,stime,user,pid,cmd --sort -pcpu | head -11 | cut -c -80; echo; ps -eo vsize,rss,size,stime,user,pid,cmd --sort -rss | head -11 | cut -c -80; echo; free -mt" # top 10 cpu/memory processes
alias j='jobs -l' #> list process id too
alias 1='fg 1'
alias 2='fg 2'
alias 3='fg 3'
alias 4='fg 4'
alias 5='fg 5'
alias 6='fg 6'
alias 7='fg 7'
alias 8='fg 8'
alias 9='fg 9'
alias 0='fg 10'
######################################################################
# Various useful shortcuts
# Calculations, units convertions
alias ?="qalc" #> quick calculations/units & money conversion (qalculate.sf.net)
alias bc='bc -ql' #= bc should be quiet, and with mathlib
alias units='units -qv' #! should be quiet AND verbose (guess that one)
alias cls='echo -e \33c; clear' #> Reset terminal, clear screen
# Various
alias dmsg='dmesg | less' #> List kernel boot messages
alias h='pman' #> manual page browser
alias mrproper='find . \( -type f -and -iname \*.bak -or -iname \*.bck -or -iname \*~ \) -exec rm -f "{}" \;' #> Delete backups and other temp files
alias notes='vim /data/dox/notes.txt' #> quickie
alias tar='tar -b 32768 --atime-preserve' #! here block size ~16M are ok (faster/smaller), no access time modifications
alias www='elinks'
alias Z='sudo' #> Changing ug is shorter this way
# Use the same editor
#alias gvim="gvim --servername VIM_$USER --remote-silent" #! use the same gvim for every edit
#alias vim="vim --servername VIM_$USER --remote-silent" #! use the same vim for every edit
#alias vi="vim --servername VIM_$USER --remote-silent" #! no vi
# Stupid aliases
alias fortune='fortune -a' # Take all
alias snes='snes9x -y3 -dfr' #> 2xSaI mode, show framerate
# Date/Time Stamps
alias ts="date -u +%Y%m%d_%H%M%S" #> Output a timestamp (UTC). Touch `ts`-newfile.
alias tsd="date -u +%Y%m%d" #> Output a date timestamp (UTC).
alias tsh="date -u +%H%M%S" #> Output an hour timestamp (UTC).
# X aliases
alias G="gqview"
alias D0='export DISPLAY=:0'
alias DS='echo DISPLAY=$DISPLAY TERM=$TERM $COLUMNS x $LINES'
# Uncomment on mondays mornings...
#alias rm='rm -i'
#alias cp='cp -i'
#alias mv='mv -i'
#### Services
#for service in `/etc/init.d/*`
#do
# alias "rc${service}"="/etc/init.d/${service}"
#done
alias t='todo'
########
# Function
#
# MC
# cd to last selected directory (from Torben Fjerdingstad)
unset -f mc
function mc () {
mkdir -pm 0700 $HOME/.mc/tmp 2>/dev/null;
OLD_TERM=$TERM
TERM='xterm'
MC=$HOME/.mc/tmp/mc-$$;
TERM=$OLD_TERM
/usr/bin/mc -a -P $MC "$@";
cd "`cat $MC`";
rm -f "$MC";
unset -v OLD_TERM MC;
}
# Directory creations
# mkdir and cd
unset -f md
function md () {
mkdir -p "$*" && cd "$*"
}
alias rd="rm -Rf" # Remove non-empty directories
# create a parent directory
unset -f mpd
function mpd () {
mkdir -p ../$1;
}
---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- .bash/aliases_functions.sh
# create a temporary dir and set $TSTMP
unset -f mdtmp
function mdtmp () {
export TSTMP="~/tmp/`date -u +%Y%m%d_%H%M%S`-$1";
mkdir -p "$TSTMP";
}
# xxx delete TSTMP
# Safe Edit
# copy and edit
# xxx $1 -> command $rest files
unset -f edt
function edt () {
local $old="$1.`date -u +%Y%m%d_%H%M%S`.$USER.edt"
### find old version of file
cp "$1{,.$old}"
cp "$1{,.$USER.`date -u +%Y%m%d_%H%M%S`.edt}"
vim "$1"
}
# Save a copy of the file
# xxx add support for: comment + filenames
unset -f save
function save() {
cp "$1" "$1.`date -u +%Y%m%d_%H%M%S`.$USER.edt"
}
# Scripts Show
# Save scripts for replay
unset -f scriptrec
function scriptrec () {
local SCRIPT="$1.script"
local TMPDIR="$TMP/`date -u +%Y%m%d_%H%M%S`-$SCRIPT"
local TIMINGS="$SCRIPT.timings"
local OUTFILE="$SCRIPT.tar.bz2"
mkdir -pm 0700 "$TMPDIR"
script -t "$TMPDIR/$SCRIPT" 2> "$TMPDIR/$TIMINGS"
echo Usage: scriptreplay "$SCRIPT" "$TIMINGS" 3.5 > $TMPDIR/README
tar -cj -C "$TMPDIR" -f "$OUTFILE" "$SCRIPT" "$TIMINGS" README
rm -Rf $TMPDIR
}
# Replay a saved script with turbo 3.5x (looks good here)
unset -f scriptplay
function scriptplay () {
local SCRIPT=${1%.tar.bz2}
local TMPDIR="$TMP/`date -u +%Y%m%d_%H%M%S`-$SCRIPT"
local TIMINGS="$SCRIPT.timings"
mkdir -pm 0700 "$TMPDIR"
tar -xj -C "$TMPDIR" -f "$1"
scriptreplay "$TMPDIR/$SCRIPT.timings" "$TMPDIR/$SCRIPT" 3.5
rm -Rf $TMPDIR
}
# From bash_aliases docs
# csh compat
alias unsetenv=unset
unset -f setenv
function setenv () {
export $1="$2"
}
######################################################################
alias showpath='echo -e ${PATH//:/\\n}'
unset -f loadpath
function loadpath () {
local LINE=1
local DIR
local NEWPATH
while read -r DIR; do
DIR=${DIR%#*} # remove comments
DIR=${DIR##*([$' \t\n'])} # trim trailling spaces
DIR=${DIR%%*([$' \t\n'])}
eval "DIR=\"$DIR\"" # evaluate vars
if [[ $DIR ]]; then
if [[ -d "$DIR" && -r "$DIR" ]]; then
NEWPATH="$NEWPATH:$DIR"
else
echo loadpath: Discarded "$DIR" at line $LINE from your PATH.
fi
fi
let LINE=LINE+1
done ~/.xpdf-err-log& return; fi
# if test -z "${S:#*PDF}" ; then xpdf $1 2>~/.xpdf-err-log& return; fi
# if test -z "${S:#*dvi}" ; then xdvi $1 & return; fi
# if test "${S/[0-9]//}" ; then gv $1 & return; fi
# less $1;
# #echo "vv(): file $1 is of unknown type." 1>&2;
# }
bind '"\C-t": possible-completions' # replaces 'transpose-chars'
M-t": menu-complete' # replaces 'transpose-words'
# alias newpw="pwgen --no-capitalize"
## changing terminal type
# alias v1='export TERM=vt100'
# alias v2='export TERM=vt220'
# alias vl='export TERM=linux'
# alias vx='export TERM=xterm-color'
# sshot ()
# { sleep 5; import -window root desktop.jpg }
# ## find all suid files
# suidfind ()
# { ls -l /**/*(su0x) }
# ispell -a -m -B |grep -v "@"
# xset fp+ /font/path/
# repeat n times command
function repeat() {
local i max
max=$1; shift;
for ((i=1; i C-like syntax
eval "$@";
done
}
---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- .bash/path.txt 100%
/bin
/sbin
/usr/bin
/usr/sbin
/usr/bin/X11
/usr/local/bin
/usr/local/sbin
/usr/share/bin
/usr/share/sbin
/opt/gnome/bin
/opt/kde3/bin
/usr/lib/hxtools/bin
/usr/X11R6/bin
/usr/games/
$HOME/bin
/c/windows
/c/windows/system
/c/windows/system32
/c/windows/system32/wbem
/c/prg/tools
/c/prg/winrk
/c/prg/lnk
/c/prg/ultraedit
/c/prg/mysql/bin
/c/prg/perl/bin
/c/prg/php
/c/prg/python
/c/prg/java/bin
/c/prg/tcl/bin
/c/prg/bordel
/c/program files/microsoft sdks/windows/v6.0/bin
/c/program files/microsoft sdks/windows/v6.0/vc/bin
/c/program files/microsoft sql server/90/tools/binn
/c/program files/quicktime/qtsystem
/c/vstudio/common7/ide
/c/vstudio/common7/tools
/c/vstudio/sdk/v2.0/bin
/c/vstudio/vc/bin
/c/vstudio/vc/vcpackages
/c/windows/microsoft.net/framework/v2.0.50727
/c/windows/system32/windowspowershell/v1.0
---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- .bash/shell_options.sh
#!/bin/bash
######################################################################
# Title: ~/.bash/shell_options.sh configuration file
# ------------------------------------------------------------------
# Created: 1994-07-23_10:31:17
# Version: 2007-02-27_20:01:07
# Author: groiumph
#
# Description: This bash initialisation file is read and executed
# when starting a non-login shell from ~/.bashrc.
# It comes from the output of `shopt -p`. I made it a
# separate file due to the fact that different versions
# of bash are probably installed on different hosts.
######################################################################
# Option without comments means I've not investigated really far into the man page.
shopt -u cdable_vars # you do not want 'cd here' to be the same as 'cd $here'
shopt -s cdspell # correct minor typing errors in cd commands
shopt -s checkhash # faster command completion
shopt -s checkwinsize # check if the terminal changed size !after! each command
shopt -s cmdhist # save multi-line commands into onliners
shopt -u dotglob # find .bashrc with ls *bash*, but NOT with ls *
shopt -u execfail
shopt -s expand_aliases # Expand aliases before
shopt -u extdebug
shopt -s extglob # Enable extended pattern matching (!, *, ?, @, etc)
shopt -s extquote
shopt -u failglob
shopt -s force_fignore
shopt -u gnu_errfmt
shopt -s histappend # do not overwrite history (i dig it!)
shopt -u histreedit
shopt -u histverify
shopt -s hostcomplete # hostnames completion
shopt -u huponexit
#shopt -u igncr
shopt -s interactive_comments # allow comments at the shell
shopt -u lithist
#shopt -s login_shell # !!!: read-only
shopt -u mailwarn # bash do not even look at my mails
shopt -s no_empty_cmd_completion # do not try to complete empty lines
shopt -s nocaseglob # globs are case insensitive for me
shopt -s nocasematch # case match are insentive too [[glob]]
shopt -u nullglob
shopt -s progcomp # enable programmable completion
shopt -s promptvars # prompt is expanded
shopt -u restricted_shell
shopt -u shift_verbose # Allow variable paramters to functions
shopt -s sourcepath # Allow "source xxx" if xxx is matched in $PATH
shopt -u xpg_echo
---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- .bash/hosts/endymion_shell_options.sh
#!/bin/bash
######################################################################
# Title: ~/.bash/shell_options.sh configuration file
# ------------------------------------------------------------------
# Created: 1994-07-23_10:31:17
# Version: 2007-02-27_20:01:07
# Author: groumph
#
# Description: This bash initialisation file is read and executed
# when starting a non-login shell from ~/.bashrc.
# It comes from the output of `shopt -p`. I made it a
# separate file due to the fact that different versions
# of bash are probably installed on different hosts.
######################################################################
# Option without comments means I've not investigated really far into the man page.
shopt -u cdable_vars # you do not want 'cd here' to be the same as 'cd $here'
shopt -s cdspell # correct minor typing errors in cd commands
shopt -s checkhash # faster command completion
shopt -s checkwinsize # check if the terminal changed size !after! each command
shopt -s cmdhist # save multi-line commands into onliners
shopt -u dotglob # find .bashrc with ls *bash*, but NOT with ls *
shopt -u execfail
shopt -s expand_aliases # Expand aliases before
shopt -u extdebug
shopt -s extglob # Enable extended pattern matching (!, *, ?, @, etc)
shopt -s extquote
shopt -u failglob
shopt -s force_fignore
shopt -u gnu_errfmt
shopt -s histappend # do not overwrite history (i dig it!)
shopt -u histreedit
shopt -u histverify
shopt -s hostcomplete # hostnames completion
shopt -u huponexit
#shopt -u igncr
shopt -s interactive_comments # allow comments at the shell
shopt -u lithist
#shopt -s login_shell # !!!: read-only
shopt -u mailwarn # bash do not even look at my mails
shopt -s no_empty_cmd_completion # do not try to complete empty lines
shopt -s nocaseglob # globs are case insensitive for me
shopt -s nocasematch # case match are insentive too [[glob]]
shopt -u nullglob
shopt -s progcomp # enable programmable completion
shopt -s promptvars # prompt is expanded
shopt -u restricted_shell
shopt -u shift_verbose # Allow variable paramters to functions
shopt -s sourcepath # Allow "source xxx" if xxx is matched in $PATH
shopt -u xpg_echo
Hey,
generally, knowing about lilo is a good idea but ubuntu uses grub, so s/lilo/grub/
pwconv and *quota might be out of scope if you just switched from win and learning vi/vim is generally a good idea. all other commands: good list, thumbs up!
Michael
Vladimir,
give "midnight commander" a shot. though it is console tool, it's very powerful and might so what you are missing. You will need to open a terminal and start midnight commander with: mc. But I doubt that there is a out-of-the-box tool that offers /all/ features you need.
When doing the switch from win to lin a couple of years ago, I took the hard way and did all on the console, without tools like mc at. al. This forced me to learn and use all the powerful command line tools. But I am glad I did, b/c there is a tool for almost every aspect you described above.
And you might want to check out galeon as a fast alternative to firefox. I love galeon as my browser-for-gmail :-)
Regards,
Michael
Thanks for the galeon tip :)
I had the same problem when I switched to Linux and finally I got pretty used to Krusader. I still like Total Commander better, but I manage well with Krusader. I think it meets all your requirements.
I came to the same conclusion today. Krusader's only 'flaw' has to be poor FTP management and file selection (why couldn't they exactly copy what TC was doing)
Man o man. Who in this world does still use such old nerdy stuff. Move on to the modern world of Linux