Useful Linux Commands
From DFWLPiki
Useful Random Bash Command Line Usages
To find all matching files names in a directory hierarchy
find /path/to/dir -type f | rev | sort | sed -nr ':a N;/^([^/]*\/).*\n\1/p;D;ba' | uniq | rev
Useful ways to use Sed in Linux
These first two examples are used in linux installation scripts as %post activities.
To uncomment something in a config file:
sed -i 's/^#compress/compress/' /etc/logrotate.conf
To remove "rhgb quiet" from grub.conf:
sed -i 's/rhgb quiet//g' /boot/grub/grub.conf
Examples from various task scripts which i will categeorize and label later: (some will be repeats)
[root@d0lppb021 syssupport]# grep sed *.sh addjhorne.sh:sed -i '/^jhorne/ c\jhorne:yaaaaaaaaaaaaaaaaaaaaaaaaaaaayyyyyyyyyyyyyyyyyyyyyy:0:99999:7:::' /etc/shadow filesystem_lv_mysql-vg01-500G-sda.sh:sed -i '/lv_mysql/d' /etc/fstab filesystem_lv_postgres-vg01-500G-sda.sh:sed -i '/lv_postgres/d' /etc/fstab fixbacula.sh:sed -i "s/set-hostname/$HOSTNAME/g" /etc/bacula/bacula-fd.conf fixpostfix.sh:sed -i "s/^#myhostname = virtual.domain.tld/myhostname = $HOSTNAME.skopos.me/g" /etc/postfix/main.cf fixpostfix.sh:sed -i 's/^#mydomain = domain.tld/mydomain = skopos.us/' /etc/postfix/main.cf fixpostfix.sh:sed -i 's/^#myorigin = $mydomain/myorigin = $mydomain/' /etc/postfix/main.cf initialovirt.sh:sed -i 's/Santiago//g' /etc/redhat-release initialovirt.sh:sed -i "s/set-hostname/$HOSTNAME/g" /etc/bacula/bacula-fd.conf initialphysical.sh:sed -i 's/Santiago//g' /etc/redhat-release initialphysical.sh:sed -i "s/set-hostname/$HOSTNAME/g" /etc/bacula/bacula-fd.conf initialpxe.sh:sed -i "s/set-hostname/$HOSTNAME/g" /etc/bacula/bacula-fd.conf initialvirtual.sh:sed -i "s/set-hostname/$HOSTNAME/g" /etc/bacula/bacula-fd.conf readyesno.sh: [Yy]* ) umount /opt/mysql; pvcreate /dev/sda1; vgcreate vg01 /dev/sda1; lvcreate -L 500G -n lv_mysql vg01; mkfs.ext4 /dev/vg01/lv_mysql; sed -i '/lv_mysql/d' /etc/fstab; echo "/dev/mapper/vg01-lv_mysql /opt/mysql ext4 defaults,_netdev 0 0" >> /etc/fstab; cat /etc/fstab; mount -a; df -h; break;; setupssl.sh:sed -i "s/localhost.crt/skopos.me.crt/g" /etc/httpd/conf.d/ssl.conf setupssl.sh:sed -i "s/localhost.key/skopos.me.key/g" /etc/httpd/conf.d/ssl.conf
This example is from to change a PXE profile file, to add ksdevice parameter:
sed -i 's/^ append initrd/ append ksdevice=em1 nicdelay=50 linksleep=50 initrd/' /tftpboot/linux-install/pxelinux.cfg/0*
Yum Configuration to Skip a Package
I have had a problem with Fedora overwriting the respository version of Cacti with the source version that I had previously installed. To prevent yum from updating a specific package, I have found this switch:
yum -y update --exclude=cacti
There is also a facility to handle this directly, from within /etc/yum/yum.conf.