A quick reference of the Linux commands I need most often in practice.
Network Configuration
- Action — Command
- Get IP configuration — ifconfig -a
- IP configuration — vi /etc/sysconfig/network-scripts/ifcfg-eth0
- Change hostname — vi /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=hostname.local GATEWAY=X.X.X.X
- Setup a default Gateway — Open /etc/sysconfig/network file: # vi /etc/sysconfig/network GATEWAY=X.X.X.X
- Local name resolution — vi /etc/hosts
- Configure DNS servers — vi /etc/resolv.conf search uk.aswats.net nl.aswatson.net nameserver 10.128.254.240 nameserver 10.128.254.241
- Network interface disable- enable scripts — “/etc/sysconfig/network-scripts” ifdown eth0 ifup eth0
- Text-based network configuration tool — system-config-network-tui system-config-network
- Restart Network service — service network restart
- Manage network interface cards — vi /Etc/udev/Rules.d/70-persistent-net.rules
- ping host and output results — ping host
- get whois information for domain — whois domain
- get DNS information for domain — dig domain
- reverse lookup host — dig -x host
VI Commands
- Action — Command
- Exit VI Save — 😡
- Exit VI without Save — :q!
- ULN Registration
- Proxy — rpm –import /usr/share/rhn/RPM-GPG-KEY up2date –proxy=proxy.uk.aswatson.net:8080
- Sysprep tbv ULN — /usr/bin/uuidgen -t Vb: f0dbc569-cd92-4f8d-bf29-9971c3f5721f vi /etc/sysconfig/rhn/up2date-uuid
- Change Password — passwd
- Delegate persmissions — visudo
- Updates installeren (alle) — yum update
- Starting & Stopping
- Shutdown the system now and do not reboot — shutdown -h now
- Shutdown the system in 5 minutes and reboot or now — shutdown -r 5 | now
- Reboot — reboot now
Disk and Filesystems
- Mount the device cdrom and call it cdrom under the /mnt directory — mount -t iso9660 /dev/cdrom /mnt/cdrom
- Mount hard disk “a” as a VFAT file system and call it cdrive under the /mnt directory — mount -t vfat /dev/hda1 /mnt/cdrive
- Unmount the cdrom — umount /mnt/cdrom
- Executes graphical application for mounting and unmounting file systems — usermount
- Mount a CIFS share — 1. Create Mount folder
cd /mnt mkdir <folder> 2. Modify permissions chown <alloweduser> <folder> chgrp <allowedgrp> <folder> 3. Edit Configuration file vi /etc/fstab 4. insert: <server_with_share>:/<share> /mnt/<folder> cifs user=<remoteuser>,domain=<remotedomain>,uid=<localuser>,gid=<localgrp>,password=<localpasswd> 5. Run the mount command mount –a - show disk usage — df
- show directory space usage — du
Finding files
- Starting with the root directory, look for the file called fname — find / -name fname
- Starting with the root directory, look for the file containing the string fname — find / -name ”*fname*”
- Find a file called missingfilename (assumes you have already used the command updatedb (see next) — locate missingfilename
- Create or update the database of files on all file systems attached to the linux root directory — updatedb
- Show the subdirectory containing the executable file called missingfilename — which missingfilename
- Starting with the directory called dir, look for and list all files containing textstringtofind — grep textstringtofind /dir
- Display the last 10 lines of the system log. — tail -f /var/log/messages
- Display the file containing the boot time messages – useful for locating problems. Alternatively, use the dmesg command. — cat /var/log/dmesg
- Moving, copying, deleting & viewing files
- List files in current directory using long format — ls -l
- List files in current directory and indicate the file type — ls –F
- List all files in current directory in long format and display in columns — ls –laC
- List all files with hidden files — ls -al
- Remove a file or directory called name — rm name
- Kill off an entire directory and all it’s includes files and subdirectories — rm -rf name
- Copy the file called filename to the /home/dirname directory — cp filename /home/dirname
- Move the file called filename to the /home/dirname directory — mv filename /home/dirname
- Rename files — mv file1 file2
- Display the file called filetoview — cat filetoview
- Display the file called filetoview one page at a time, proceed to next page using the spacebar — more filetoview
- Create directory — mkdir dir
- delete directory dir — rm -r dir
- force remove directory dir * — rm -rf dir
- Delete directory — rmdir dir
- force remove file — rm -f file
- Change file owner — chown
- Change file group — chgrp
- Change file protections — chmod
- List opened files — lsof
- show processes that using the file — fuser filename
Searching
- search for pattern in files — grep pattern files
- search recursively for pattern in dir — grep -r pattern dir
- search for pattern in the output of command — command | grep pattern
- find all instances of file — locate file
Yum Install
- Display list of updated software — yum list updates
- To download and install all updates — yum update
- To download and install all Security updates — yum update –security
- You can install multiple libraries at once by separating the name of each module with a space. — Yum install software1 software2 etc
- Search software — yum search php-
- Software info — yum info name
Installing Software
- Install the rpm package called name — rpm -ihv name.rpm
- Upgrade the rpm package called name — rpm -Uhv name.rpm
- Delete the rpm package called Package — rpm -e package
- List the files in the package called package — rpm -l package
- List the files and state the installed version of the package called package — rpm -ql package
- Reinstall the rpm package called name having deleted parts of it (not deleting using rpm -e) — rpm -i –force package
- Decompress the files contained in the zipped and tarred archive called archive — tar -zxvf archive.tar.gz or tar -zxvf archive.tgz
User Administration
- Create a new user call accountname — adduser accountname
- Give accountname a new password — passwd accountname
- Log in as superuser from current login — su
- At the lilo prompt, start in single user mode. This is useful if you have forgotten your password. Boot in single user mode, then run the passwd command. — linux single
- List current processes — ps
- Kill a specific process eg. kill 123 — kil 123
Location of Configuration files
- List of devices and their associated mount points. — /etc/fstab
- Message of the day — /etc/motd
- Bash script that is executed at the end of login process. Similar to autoexec.bat in DOS. — /etc/rc.d/rc.local
- Conatins full hostname including domain — /etc/HOSTNAME
- There are 4 directories that automatically execute all scripts within the directory at intervals of hour, day, week or month. — /etc/cron.*
- A list of all know host names and IP addresses on the machine. — /etc/hosts
- Paramters for the Apache web server — /etc/httpd/conf
- Specifies the run level that the machine should boot into. — /etc/inittab
- Defines IP addresses of DNS servers — /etc/resolv.conf
- LILO boot loder configuration file. — /etc/lilo.conf
- System log daemon (syslogd) configuration — /etc/syslog.conf
- SSH client and server configuration files. — /etc/ ssh_config /etc/sshd_config
- net time server. — /etc/ntp.conf
- File- and print sharing with Microsoft clients. — /etc/smb.conf
File Permissions
- If the command ls -l is given, a long list of file names is displayed. The first column in this list details the permissions applying to the file. If a permission is missing for a owner, group of other, it is represented by – eg. drwxr-x—x Read = 4 Write = 2 File permissions are altered by giving the chmod command and the appropriate octal code for each user type. eg Execute = 1 chmod 7 6 4 filename will make the file called filename R+W+X for the owner, R+W for the group and R for others. chmod 755 Full permission for the owner, read and execute access for the group and others. chmod 777 read, write, execute for all chmod +x filename Make the file called filename executable to all users.
- Read = 4 Write = 2 — File permissions are altered by giving the chmod command and the appropriate octal code for each user type. eg
- Execute = 1 — chmod 7 6 4 filename will make the file called filename R+W+X for the owner, R+W for the group and R for others.
- chmod 755 — Full permission for the owner, read and execute access for the group and others.
- chmod 777 — read, write, execute for all
- chmod +x filename — Make the file called filename executable to all users.
Shortkeys
- halts the current command — Ctrl+C
- stops the current command — Ctrl+Z
- erases the whole line — Ctrl+U
- Display list of active X windows — Alt | escape
- Start an xterm session — Shift|Control Altx
Printing
- LPRng configuration file. — /etc/lpd.conf
- Start | Stop the print daemon — /etc/rc.d/init.d/lpd start | stop
- Display status of the print daemon — /etc/rc.d/init.d/lpd status
- Display jobs in print queue — lpq
- Remove jobs from queue — lprm
- Printer control tool — lpc
- Start X printer setup interface — printtool
- Print a file — lpr
Processes
- List current processes — ps
- Monitor processes — top
- Display free memory — free
- Terminate process — Kill pid
- kill all processes named proc * — killall proc
- lists stopped or background jobs — bg
- brings the most recent job to foreground — fg
- brings job n to the foreground — Fg n
Scheduling Jobs
- Schedule a job — at
- Schedule repeated jobs — crontab
System info
- show current uptime — uptime
- display who is online — w
- who you are logged in as — whoami
- show kernel information — uname -a
- cpu information — cat /proc/cpuinfo
- memory information — cat /proc/meminfo
- show the manual for command — man command
- show memory and swap usage — free
- show possible locations of app — whereis app
- show which app will be run by default — which app
- Print the system’s hostname — hostname
- display network information — ifconfig
User Management
- create an new user — Adduser
- create, delete, modify an new user — useradd, userdel, usermod
- add, delete or modify group — groupadd, groupdel, groupmod
Sendmail
- Config — sendmail.cf sendmail.mc
- mail aliases, must run “newaliases” after change. use :include: to include external list in a file. — aliases
- mail access control, FEATURE(access_db) should be set in sendmail.mc. For example, in /etc/mail/access cyberpromo.com REJECT mydomain.com RELAY spam@somewhere.com DISCARD — access
- list all host/domain accepted for relaying — /etc/mail/relay-domains
NTP
- Install the NTP package — yum install ntp
- Configure NTP (udp 123) Search for these entries: — # vi /etc/ntp.conf server 0.rhel.pool.ntp.org server 1.rhel.pool.ntp.org server 2.rhel.pool.ntp.org
- Start the NTP service and set it to launch automatically upon boot — service ntpd start chkconfig ntpd on
- Check NTP peers status — ntpq -p
Secure Copy
- Copy a file from a remote host to the local host — scp your_username@remotehost:file.txt /some/local/directory
- Copy a file from the local host to a remote host — scp file.txt your_username@remotehost:/some/remote/directory
- Copy a directory from the local host to a remote host’s directory — scp -r yourdir your_username@remotehost:/some/remote/directory/yourdir
- Copy file from remote host to remote host — scp your_username@host1:/some/remote/directory/file.txt \ your_username@host2:/some/remote/directory/
Webserver
- Check if Apche is installed — rpm -qa | grep httpd
- Install Apache Webserver — yum groupinstall “Web Server”
yum install httpd - Install PHP Support — yum groupinstall “PHP Support”
yum install php php-mysql - List of useful PHP-libraries and -modules — yum search php-
- To see more details about what each module does — yum info name of the module
- Start Webserver — service httpd start apachectl start
- set the Apache to run automatically when the server boots — chkconfig httpd on
- Install LAMP (Linux, Apache, MySQL, PHP) — yum groupinstall “Web Server” “PHP Support” “MySQL Database server” “MySQL Database client” yum install php-mysql
- See PHP on the server by creating testpage — vi /var/www/html/info.php <?php phpinfo(); ?> Visit your site: http://server/info.php
- Restart Apache — service httpd restart
- Scrtipt to control the functioning of the Apache httpd daemon. — apachectl start|stop|restart|fullstatus|status|configtest
- Restart / Stop without aborting currently open connections — apachectl graceful |graceful-stop
MySQL
- Install MySQL — yum groupinstall “MySQL Database server” “MySQL Database client” or: yum install mysql-server
- Start MySQL — service mysqld start
- set MySQL to run automatically when the server boots — chkconfig mysqld on
- Configure and set MySQL root password (default is empty) — /usr/bin/mysql_secure_installation
- Access the MySQL shell — mysql -u root –p mysql
- Create and Delete a MySQL Database — mysql> CREATE DATABASE database dbname; mysql> DROP DATABASE database dbname;
- Show Databases — mysql> SHOW DATABASES;
- Show Users — mysql>select user from mysql.user;
- Show Users (avoid duplicate names) — mysql>select distinct user from mysql.user;
- To connect remotely bind MySQL port 3306 to your machines IP — vi /etc/mysql/my.cnf #Replace xxx with your IP Address bind-address = xxx.xxx.xxx.xxx or comment out this line to allow all ip’s.
- Create user for local/remote logon — mysql>CREATE USER ‘myuser’@’localhost’ IDENTIFIED BY ‘mypass’; mysql>CREATE USER ‘myuser’@’%’ IDENTIFIED BY ‘mypass’;
- Grant permissions on all db’s — mysql>GRANT ALL ON *.* TO ‘myuser’@’localhost’; mysql>GRANT ALL ON *.* TO ‘myuser’@’%’;
- Grant permissions on a specific db — mysql>GRANT ALL ON database.* TO ‘myuser’@’localhost’; mysql>GRANT ALL ON database.* TO ‘myuser’@’%’;
- Grant all permissions on specific database for specific user — mysql>GRANT ALL PRIVILEGES ON dbname.* TO ‘user’@’%’ IDENTIFIED BY ‘password’
- Refresh privileges — mysql>FLUSH PRIVILEGES;
- Set Root password — mysql>SET PASSWORD FOR ‘ROOT’@’LOCALHOST” > = PASSWORD(‘new_password’);
- Allow Remote ROOT Access (admin Users) — mysql>GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
- Grant access to database for remote IP address — mysql>GRANT ALL ON database.* TO ‘remoteuser’@’remoteIPaddress’ IDENTIFIED BY ‘PASSWORD’;
Firewall
- Stop/Start Firewall — service iptables stop|start
- Disable/Enable Fiewall — chkconfig iptables off|on
- Verifiy Firewall status — service iptables status
- Add firewall rule (for example MySQL) — /sbin/iptables -A INPUT -i eth0 -p tcp –destination-port 3306 -j ACCEPT
- Add firewall rule for specified source (for example MySQL) — /sbin/iptables -A INPUT -i eth0 -s 10.5.1.3 -p tcp –destination-port 3306 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -s 10.5.1.0/24 -p tcp –destination-port 3306 -j ACCEPT - iptables -I INPUT 1 -p tcp –dport 443 -j ACCEPT