1) Command Name: useradd
Command Derived From: add user
Command Path: /bin/useradd
Command Auth: all users
Command Function: add user into system
Command Syntax: useradd [username]
Example:
useradd davy
passwd davy -> Set the password for user davy.
2) Command Name: chgrp
Command Derived From: chanage file group ownership
Command Path: /bin/chgrp
Command Auth: all users
Command Function: change the g of a specific file or folder
Command Syntax: chgrp [usergroup] [file or dir]
Example:
chgrp admin Test.java -> Change the usergroup of file Test.java as admin.
Will detailed discussed later in User Management Chapter.
3) Command Name: umask
Command Derived From: aUthorize mask
Command Path: /bin/umask
Command Auth: all users
Command Function: display or change the default permission for file or folder.
Command Syntax: umask [default permission mask]
Example:
administrator@ubuntu:~$ umask -S
u=rwx,g=rwx,o=rx
administrator@ubuntu:~$ umask
0002
0-Special permission
002-User permission(ugo), it just a mask value.
777
-002
------
775
775 Is the permission for creating new folder.
But as convention, newly created file are not executable.
775-111=664
This is a good practice for isolating computer virus.
administrator@ubuntu:~/Test3$ umask 027
administrator@ubuntu:~/Test3$ umask -S
u=rwx,g=rx,o=
We've changed the default permission of new file and new folder
------------------File Search Command-------------------------------------------------
4) Command Name: which/whereis
Command Derived From: where is XXX
Command Path: /usr/bin/which; /usr/bin/whereis
Command Auth: all users
Command Function: search the abs path of a specific command
Command Syntax: which [commandname]
Example:
administrator@ubuntu:~/Test3$ which chmod
/bin/chmod
administrator@ubuntu:~/Test3$ which whereis
/usr/bin/whereis
administrator@ubuntu:~/Test3$ which which
/usr/bin/which
administrator@ubuntu:~/Test3$ whereis chmod
chmod: /bin/chmod /usr/share/man/man2/chmod.2.gz /usr/share/man/man1/chmod.1.gz
Whereis command will also list the alias(Details help file for this command) for the command
Will discuss alias in chapter afterwards.
5) Command Name: find
Command Derived From: find
Command Path: /usr/bin/find
Command Auth: all users
Command Function: find file or dir
Command Syntax: find [search path] [search key word]
Example:
1) -name (Find file by name)
find /etc -name init -> Find file named init in dir /etc
find / -name init -> Bad!!!!
<Tips: Do not find under root path which will consume giant system resource>
Regular Expression is supported. -> * and ?
find /etc -name init* -> List all files whose name starts with init.
find /etc -name *init* -> List all files whose name contains init.
find /etc -name init??? -> List all files whose name like initXXX.
2) -size (sized by datablock = 512B = 0.5KB) 100MB = 102400KB = 204800block
find /etc -size +204800 (Find files whose size > 100MB )
find /etc -size -204800 (Find files whose size < 100MB )
find /etc -size 204800 (Find files whose size == 100MB)
3) -user (Find file by owner)
find /etc -user administrator -> After we've deleted a user, we want to delete all files that owned by this user.
4) TIME Related
Measured by day: -ctime, -atime, -mtime
Measured by min: -cmin, -amin, -mmin
c-change; a-access; m-modified
Q: What's the difference between c and m?
A: c means file properties(u-g-o) have been changed.
m means file contents have been changed.
- means less than
+ means greater than
find /etc -mmin -120 -> Find files that have been modified in passed 2 hours.
5) -type [l or d or f]
l --> Means soft link file
d --> Means directory
f --> Means binary file
6) -inum [inode number]
Eg.
administrator@ubuntu:~/Test3$ ls -li
total 12
532169 drwxrwxr-x 2 administrator administrator 4096 Sep 23 08:46 after
administrator@ubuntu:~/Test3$ find -inum 532169
./after
6) Useful connector in file find.
1) Logical connector: -a means and; -o means or
2) find ... -exec [command] {} \;
{} --> Means the result set of find ...
\ --> With the same meaning of set define off in oracle.
; --> Means command end
Take a simple example:
rm /home/administrator/testfile
There will be a prompt asking for confirmation.
Turned out that rm has an alias rm -i
If we don't want to use this alias,
\rm /home/administrator/testfile
That means we don't use alias.
1) Find folder whose name is java and list the content of this folder.
administrator@ubuntu:/etc$ find /etc -name java -type d -exec ls -l {} \;
total 112
-rw-r--r-- 1 root root 109379 Mar 14 2012 cacerts-gcj
drwxr-xr-x 3 root root 4096 May 9 03:09 security
2) Find files and folders which were created by nobody and then delete them all.
find /etc -user nobody -exec rm -rf {} \;
7) Command Name: locate
Command Derived From: locate files listed in databases
Command Path: /usr/bin/locate
Command Auth: all users
Command Function: search files or dirs
Command Syntax: locate [key word]
Example:
administrator@ubuntu:~/Test3$ ls
after hello.ini hello.soft pre test.ini Test.java
administrator@ubuntu:~/Test3$ locate test.ini
No entry found.
Q: Why??
A: Because as the installation of linux os, all the initial file name and file path are stored in its inner db.
So its search speed is fast, but if we didn't update this db occasionally, we may not find the file.
8) Command Name: updatedb
Command Derived From: update the slocate database
Command Path: /usr/bin/updatedb
Command Auth: all users
Command Function: rebuild the file index database built in
Command Syntax: updatedb
Example:
administrator@ubuntu:~/Test3$ sudo updatedb
administrator@ubuntu:~/Test3$ locate test.ini
/home/administrator/Test3/test.ini
Got it!!
Locate and updatedb is usually combined used.
Updatedb is a schedule of linux os.
9) Command Name: grep
Command Derived From: ???
Command Path: /bin/grep
Command Auth: all users
Command Function: find specific string in file content and print out this line.
Command Syntax: grep [keywords] [targetfile]
Example:
more /etc/services --> List all web protocol defined, but it is tooooo large.
grep ftp /etc/services --> List all entries that contains ftp.