Difference between revisions of "Linux"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search
m (→‎Hardware: linmodems; some reformatting)
(→‎Issues: update of link-to-.sh procedure)
Line 52: Line 52:
 
The following may reflect [[User:Woozle|my]] own ignorance rather than an actual shortcoming in Linux:
 
The following may reflect [[User:Woozle|my]] own ignorance rather than an actual shortcoming in Linux:
 
*Development
 
*Development
**There appears to be no mechanism corresponding to [[ActiveX]] (as used for desktop app development); [[DCOP]], which seems at least somewhat similar, is not available unless you are running [[KDE]]
+
**There appears to be no universal mechanism corresponding to [[ActiveX]] (as used for desktop app development); [[DCOP]], which seems at least somewhat similar, is only available under [[KDE]]
 
**There appears to be no application corresponding to [[Microsoft Access]]. Yes, you can do all the same stuff with various available tools, but not quickly; v2.0 of [[OpenOffice]] is apparently going to include a tool which may be a step in the right direction (OpenOffice Base), and I have seen evidence of other Access-like tools in development...
 
**There appears to be no application corresponding to [[Microsoft Access]]. Yes, you can do all the same stuff with various available tools, but not quickly; v2.0 of [[OpenOffice]] is apparently going to include a tool which may be a step in the right direction (OpenOffice Base), and I have seen evidence of other Access-like tools in development...
 
*Regular Use
 
*Regular Use
**In Windows, if you create a link to an executable script (batch file -- *.bat) on your desktop (or anywhere), the link is executable with a double-click. Under [[KDE]] (in [[Ubuntu]]), I can't figure out how to make it execute at all without using a terminal. ('''Update''': I have figured this out. Must document.)
+
**In [[Windows (Microsoft)|Windows]], if you create a link to an executable script (batch file -- *.bat) on your desktop (or anywhere), the link is executable with a double-click. Linux [[.sh]] (shell script) files are equivalent to Windows .bat files, and much more powerful, but can't be executed by clicking on them directly (at least, not in the standard/default configuration). The exact procedure depends on the environment you are using:
 +
*** '''[[KDE]]''': right-click on the desktop and select Create New -> Link to Application...; when the dialog pops up, select the Application tab, and then next to the "Command:" edit box click the "Browse..." button to browse for the .sh file.
  
 
Criticisms of UNIX, from which Linux is derived: [http://www.informit.com/articles/article.asp?p=424451&rl=1 10 Things I Hate About UNIX]
 
Criticisms of UNIX, from which Linux is derived: [http://www.informit.com/articles/article.asp?p=424451&rl=1 10 Things I Hate About UNIX]

Revision as of 18:52, 8 April 2006

This is a growing seedling article. You can help HTYP by watering it.

Computing: Operating Systems: Linux

Articles

Components

Desktop Environments

Device management

Applications

Security

Hardware

Reference Links

Issues

The following may reflect my own ignorance rather than an actual shortcoming in Linux:

  • Development
    • There appears to be no universal mechanism corresponding to ActiveX (as used for desktop app development); DCOP, which seems at least somewhat similar, is only available under KDE
    • There appears to be no application corresponding to Microsoft Access. Yes, you can do all the same stuff with various available tools, but not quickly; v2.0 of OpenOffice is apparently going to include a tool which may be a step in the right direction (OpenOffice Base), and I have seen evidence of other Access-like tools in development...
  • Regular Use
    • In Windows, if you create a link to an executable script (batch file -- *.bat) on your desktop (or anywhere), the link is executable with a double-click. Linux .sh (shell script) files are equivalent to Windows .bat files, and much more powerful, but can't be executed by clicking on them directly (at least, not in the standard/default configuration). The exact procedure depends on the environment you are using:
      • KDE: right-click on the desktop and select Create New -> Link to Application...; when the dialog pops up, select the Application tab, and then next to the "Command:" edit box click the "Browse..." button to browse for the .sh file.

Criticisms of UNIX, from which Linux is derived: 10 Things I Hate About UNIX

Things You Must Know

In Linux, you often run into things which you Just Have To Know in order to make things work; there is not really any way to find them out. This is bad UI design, but for now it's the situation. I will be listing them here as I find them out.

  • When Perl is missing a module, the package name is always (I am told) "perl-libraryname". For example, for Tk.pm, the package is perl-Tk. So in Fedora you would type "yum install perl-Tk". Presumably in debian-derived distributions, you would type "apt-get install perl-Tk", though I have not actually tested this. (Remember that package names, like Linux filenames, are case-sensitive, so that T must be uppercase or it won't work.) If the library is within a Perl package, e.g. Net::Telnet, then the format is perl-Package-Library, e.g. perl-Net-Telnet.
  • To run a binary which is located in the current directory, from the command line, you have to type "./" before the binary's name. This is because the current directory (most easily referenced with "./") is, by default, not included in the binary search path. There is much debate about whether or not this is a good thing, but at least it can be changed easily:
  • This command only changes the path for the current session:
export PATH=$PATH:.
  • To permanently change the default path for the current user, edit the ~/.bash_profile file
  • To permanently change the default path for all users (which may be overridden by individual user settings), edit the /etc/profile file
  • Linuxese for "help" is "man", which is short for "manual". This help system is often referred to as "the manpages".
  • To find out what version of the Linux kernel you are running: cat /proc/version
  • Sometimes the GUI shutdown (in KDE, usually invoked via the K menu) mysteriously fails to work; in that case, you can invoke a shutdown using the shutdown command:
shutdown now

How To

  • To mount an ISO image as a folder:
mount -o loop NameOfISO.iso /mount/wherever
On older distributions, you may need instead mount -o loop -t iso9660 ...
  • To swap drives so DOS or Windows can be booted off the 2nd drive:
    • On reboot, when you get to the boot loader startup, select whatever option gets you to a grub command line ("c" in Fedora Core)
    • At the grub prompt, enter the following:
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
chainloader +1
makeactive
boot

This is a temporary fix which lets you test the changes without making your computer unbootable if they fail. To make the changes permanent, edit /boot/grub/menu.lst and enter the two "map" lines under the Windows entry. (Will document in more detail when I have time to look at the format of menu.lst. I'm also not sure if "hd" is always the prefix for the drives or if that might be different depending on the types of drives – e.g. SATA, ATA, IDE – involved.)

  • Time Zone: If the KDE Clock-setting widget seems to be refusing to set the time zone (or your system clock is refusing to show anything except GMT time), this command may work:
ln -s /usr/share/zoneinfo/America/NewYork /etc/localtime

...where "/America/NewYork" should be replaced by the appropriate file for your time zone. I have not been able to find any documentation on this feature; the command was suggested to me by someone in the #kde chat room at irc.freenode.net (see [1]). Remember to use the console "date" command to verify what the system clock is currently set to. --Woozle 08:45, 23 Apr 2005 (CST)

  • To force an update of the system clock:
ntpdate pool.ntp.org
  • To make this update run automatically, go into root and run kcron (or cron if you're comfortable with CLI
  • Emptying the Trash: KDE does have trash-management built in, but it's not always obvious. You can do any of the following:
    • Navigate (in Konqueror) to "trash:/", then right-click on the panel showing the contents, and select "Empty trash".
    • Right-click on the applet panel and add the Trash applet, then left-click on it to use its various functions.
    • Create a new URL link on the desktop, give it the URL "trash:/", then right-click on it (my preferred solution). A trashcan icon is available in the "filesystems" icon group.

Firewalls

Some Linux distributions come with a GUI-based firewall management tool, but these generally are just wrappers around a set of text commands. Apparently, a firewall can be set up using iptables (or ipchains, although this is generally deprecated in newer systems); to query both commands for firewall rules:

iptables -L -v
ipchains -L -v

In Fedora Core 4, iptables is hidden in sbin, so you need to type it like this:

/sbin/iptables -L -v

There also seems to be a GUI app to configure the firewall (see this), but it's not clear how to run it. It may be that it can only be run at setup time. Try system-config-securitylevel.

Rescuing Files

A quick and relatively-easy way to rescue files off a machine which won't boot from its hard drive is to boot from a Linux LiveCD. It is not even necessary to have a GUI (e.g. KDE or Gnome) running; the remote machine only needs network access and a ssh server.

The easy way - run this command on the local machine:

scp -vr user@machine:sourcepath/mask targetpath 

Example:

scp -vr root@192.168.0.109:/mnt/hda2/* . 

The disadvantage of this method is that the original timestamps (and other attributes) are lost; the files are written to the local disk with all timestamps set to now. (To test: adding a -p to the scp command should preserve the timestamps.)

A method which preserves timestamps and attributes involves tarring the files on the remote machine and piping the output of the tar over the network connection. These examples have not been used successfully; I am recording them for later testing. --Woozle 07:04, 1 February 2006 (EST)

tar czpf - dir |ssh user@host 'cd /dir/path; tar xzpf'

ssh user@machine 'cd /path; tar czvpf -' |tar xzf -

the "v" in "czvpf" is for "verbose", i.e. show the files as they are being tarred.

ssh root@192.168.0.109 'tar czvpC /mnt/hda2 -vf - *' |tar xzf -
ssh root@192.168.0.109 'cd /mnt; tar czvpf - hda2' |tar xzf -

Setting up VNC to use an existing session

This sets up VNC to connect to an existing session, i.e. "control the user's screen", same as the default VNC server behavior in Windows. I have not tested it.

  • edit xorg.conf
  • find the "Module" section
  • make sure you're loading the vnc module
  • run vncpasswd (command) as root to set a password for the vnc server
  • in the "Screen" section of xorg.conf, add this:
    • Option "PasswordFile" "/root/.vnc/passwd"
  • save xorg.conf if you changed it