Source: myunster.com
In order to update “locate” database on OS X, some people suggest create a symlink:
sudo ln -s /usr/libexec/locate.updatedb /usr/local/bin/updatedb
However, this method can create an erroneous output if you are in directory with specific permission e.g.
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
find: .: Permission denied
The better method would be create a bash script /usr/bin/updatedb:
#!/bin/bash
pushd . > /dev/null
cd /usr/libexec
echo "Updating locate database..."
sudo ./locate.updatedb
echo "Updating complete!"
popd > /dev/null
Make it executable: sudo chmod +x /usr/bin/updatedb
Now you can just run «sudo updatedb», in order to update «locate» database.
Source: How to edit and understand /etc/fstab
There’s a file called /etc/fstab
in your Linux system. Learn what its contents mean and how it’s used in conjunction with the mount
command. When you learn to understand the fstab
file, you’ll be able to edit its contents yourself, too.
In this tuXfile I assume you already know how to mount filesystems and partitions with the mount
command. If you don’t, I suggest reading the Mounting tuXfile before reading this one.
Author: Nana Långstedt < nana.langstedt at gmail.com >
tuXfile created: 12 October 2003
Last updated: 5 September 2009
What is fstab and why it’s useful
fstab
is a configuration file that contains information of all the partitions and storage devices in your computer. The file is located under /etc
, so the full path to this file is /etc/fstab
.
/etc/fstab
contains information of where your partitions and storage devices should be mounted and how. If you can’t access your Windows partition from Linux, aren’t able to mount your CD or write to your floppy as a normal user, or have problems with your CD-RW, you probably have a misconfigured /etc/fstab
file. So, you can usually fix your mounting problems by editing yourfstab
file.
/etc/fstab
is just a plain text file, so you can open and edit it with any text editor you’re familiar with. However, note that you must have the root privileges before editing fstab
. So, in order to edit the file, you must either log in as root or use the su
command to become root.
Overview of the file
Of course everybody has a bit different /etc/fstab
file because the partitions, devices and their properties are different on different systems. But the basic structure of fstab
is always the same. Here’s an example of the contents of /etc/fstab
:
/dev/hda2 | / | ext2 | defaults | 1 1 |
/dev/hdb1 | /home | ext2 | defaults | 1 2 |
/dev/cdrom | /media/cdrom | auto | ro,noauto,user,exec | 0 0 |
/dev/fd0 | /media/floppy | auto | rw,noauto,user,sync | 0 0 |
proc | /proc | proc | defaults | 0 0 |
/dev/hda1 | swap | swap | pri=42 | 0 0 |
What does all this gibberish mean? As you see, every line (or row) contains the information of one device or partition. The first column contains the device name, the second one its mount point, third its filesystem type, fourth the mount options, fifth (a number) dump options, and sixth (another number) filesystem check options. Let’s take a closer look at this stuff.
1st and 2nd columns: Device and default mount point
The first and second columns should be pretty straightforward. They tell the mount
command exactly the same things that you tell mount
when you mount stuff manually: what is the device or partition, and what is the mount point. The mount point specified for a device in /etc/fstab
is its default mount point. That is the directory where the device will be mounted if you don’t specify any other mount point when mounting the device.
Like you already learned from the Mounting tuXfile, most Linux distros create special directories for mount points. Most distros create them under /mnt
, but some (at least SuSE) under /media
. As you probably noticed when looking at the example fstab
, I use SuSE’s mount points as an example.
What does all this mean? If I type the following command:
$ mount /dev/fd0
… my floppy will be mounted in /media/floppy
, because that’s the default mount point specified in /etc/fstab
. If there is no entry for /dev/fd0
in my fstab
when I issue the command above,mount
gets very confused because it doesn’t know where to mount the floppy.
You can freely change the default mount points listed in /etc/fstab
if you’re not satisfied with the defaults your distro has given you. Just make sure the mount point is a directory that already exists on your system. If it doesn’t, simply create it.
Some partitions and devices are also automatically mounted when your Linux system boots up. For example, have a look at the example fstab
above. There are lines that look like this:
/dev/hda2 / ext2 defaults 1 1
/dev/hdb1 /home ext2 defaults 1 2
As you’ve learned, these lines mean that /dev/hda2
will be mounted to / and /dev/hdb1
to /home
. This is done automatically when your Linux system boots up… if it wouldn’t, you’d have a hard time using your cool Linux system because all the programs you use are in / and you wouldn’t be able to run them if / wasn’t mounted! But how does the system know where you want to mount/dev/hda2
and /dev/hdb1
? By looking at the /etc/fstab
file of course.
Lire la suite…
According to the official project site:
netfilter is a set of hooks inside the Linux kernel that allows kernel modules to register callback functions with the network stack. A registered callback function is then called back for every packet that traverses the respective hook within the network stack.
This Linux based firewall is controlled by the program called iptables to handles filtering for IPv4, and ip6tables handles filtering for IPv6. I strongly recommend that you first read our quick tutorial that explains how to configure a host-based firewall called Netfilter (iptables) under CentOS / RHEL / Fedora / Redhat Enterprise Linux. This post lists most simple iptables solutions required by a new Linux user to secure his or her Linux operating system from intruders. Lire la suite…
How to check file size in unix using wc command
The wc command shows the number of lines, words, and bytes contained in file. The syntax is as follows to get the file size:
wc -c /path/to/file
wc -c /etc/passwd
Sample outputs:
5253 /etc/passwd
You can easily extract the first field either using the cut or awk command:
wc -c /etc/passwd | awk '{print $1}'
Sample outputs:
5253
OR assign this size to a bash variable:
myfilesize=$(wc -c "/etc/passwd" | awk '{print $1}')
printf "%d\n" $myfilesize
echo "$myfilesize" |
How to get the size of a file in a bash script using stat command
The stat command shows information about the file. The syntax is as follows to get the file size on GNU/Linux stat:
stat -c %s "/etc/passwd"
OR
stat --format=%s "/etc/passwd"
To assign this size to a bash variable:
myfilesize=$(stat --format=%s "/etc/passwd")
echo "$myfilesize"
## or ##
myFileSizeCheck=$(stat -c %s "/etc/resolv.conf")
printf "My file size = %d\n" $myFileSizeCheck |
The syntax is as follows to get the file size on BSD/MacOS stat:
stat -f %z "/etc/passwd"
Please note that if the file is symlink you will get size of that link only with the stat command.
du command example
The syntax is
du --apparent-size --block-size=1 "/etc/passwd"
fileName="/etc/hosts"
mfs=$(du --apparent-size --block-size=1 "$fileName" | awk '{ print $1}')
echo "$fileName size = ${mfs}" |
Sample outputs from above commands:
Fig.01: How to check size of a file using a bash/ksh/zsh/sh/tcsh shell?
Find command example
The syntax is:
find "/etc/passwd" -printf "%s"
find "/etc/passwd" -printf "%s\n"
fileName="/etc/hosts"
mysize=$(find "$fileName" -printf "%s")
printf "File %s size = %d\n" $fileName $mysize
echo "${fileName} size is ${mysize} bytes." |
I want to find out how many times a word (say foo or an IP address) occurs in a text file using the grep command on Linux or Unix-like system?
You can use the grep command to search strings, words, text, and numbers for a given patterns. You can pass the -coption to grep command. It only shows the number of times that the pattern has been matched for each file.
Show the total number of times that the word foo appears in a file named bar.txt
The syntax is:
grep -c string filename
grep -c foo bar.txt
Sample outputs:
3
To count total number of occurrences of word in a file named /etc/passwd root using grep, run:
grep -c root /etc/passwd
To verify that run:
grep --color root /etc/passwd
Pass the -w option to grep to select only an entire word or phrase that matches the specified pattern:
grep -w root /etc/passwd
OR
grep -c -w root /etc/passwd
In this example only match a word being with root:
grep --color -w '^root' /etc/passwd
grep -c -w '^root' /etc/passwd
To show only the matching part of the lines.
grep -o 'root' /etc/passwd
grep -c -o 'root' /etc/passwd
Sample session:
Fig.01: Counting occurrence of words/strings using grep command