rm 複数ファイル

あれ? これって、単純にコマンドラインで複数書いていけばいいだけ!?

[vagrant@localhost test]$ ls
a.csv  a.txt  index.php  sample.jpg  sample.json
[vagrant@localhost test]$ rm a.csv a.txt sample.jpg sample.json
[vagrant@localhost test]$ ls
index.php

なんじゃーこりゃーーーーーーーーーー

/tmp and /var/tmp

/tmp
If /tmp is restarted, the file will be completely lost.

→ /tmp should always be available to programs that require temporary files.
The program should not assume that the file or directory remains in /tmp at the next boot.

/var/tmp
/var/tmp does not disappear after rebooting, but sometimes the file may disapper.

あれ、全然使われ方が違う!?

/var/tmp is used by programs that require temporary files and directories, and will not be deleted when the system is restarted. Therefore, the data of /var/tmp is held longer than the data of /tmp.
Files and directories placed in /var/tmp should not be deleted at system restart. Normally, data in /var/tmp is deleted by site-specific rules, but basically it is desirable to delete less frequently than /tmp.

[vagrant@localhost test]$ cd /etc/cron.daily
[vagrant@localhost cron.daily]$ ls
logrotate makewhatis.cron
[vagrant@localhost cron.daily]$ cat logrotate
cat: logrotate: 許可がありません
[vagrant@localhost cron.daily]$ sudo cat logrotate
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate “ALERT exited abnormally with [$EXITVALUE]”
fi
exit 0
[vagrant@localhost cron.daily]$ sudo cat makewhatis.cron
#!/bin/bash

LOCKFILE=/var/lock/makewhatis.lock

# the lockfile is not meant to be perfect, it’s just in case the
# two makewhatis cron scripts get run close to each other to keep
# them from stepping on each other’s toes. The worst that will
# happen is that they will temporarily corrupt the database…
[ -f $LOCKFILE ] && exit 0

# if MAKEWHATISDBUPDATES variable is set to “n” or “N”, then the
# update will not passed

MDU=`sed -n -e ‘s/^[[:blank:]]*MAKEWHATISDBUPDATES[[:blank:]]*\(.\)[[:blank:]]*$/\1/p’ < /etc/man.config` ([ "$MDU" == "n" ] || [ "$MDU" == "N" ]) && exit 0 trap "{ rm -f $LOCKFILE ; exit 255; }" EXIT touch $LOCKFILE; restorecon $LOCKFILE # Rebuild the database if makewhatis was since last full run, # otherwise just update with new pages if [ ! -f /var/cache/man/whatis ] || find /usr/sbin/makewhatis -newer /var/cache/man/whatis |grep -q . then makewhatis -w else makewhatis -U -w fi exit 0 [vagrant@localhost rc.d]$ sudo cat rc.sysinit #!/bin/bash # # /etc/rc.d/rc.sysinit - run once at boot time # # Taken in part from Miquel van Smoorenburg's bcheckrc. # HOSTNAME=$(/bin/hostname) set -m if [ -f /etc/sysconfig/network ]; then . /etc/sysconfig/network fi if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then HOSTNAME=localhost fi if [ ! -e /proc/mounts ]; then mount -n -t proc /proc /proc mount -n -t sysfs /sys /sys >/dev/null 2>&1
fi
if [ ! -d /proc/bus/usb ]; then
modprobe usbcore >/dev/null 2>&1 && mount -n -t usbfs /proc/bus/usb /proc/bus/usb
else
mount -n -t usbfs /proc/bus/usb /proc/bus/usb
fi

#remount /dev/shm to set attributes from fstab #669700
mount -n -o remount /dev/shm >/dev/null 2>&1
#remount /proc to set attributes from fstab #984003
mount -n -o remount /proc >/dev/null 2>&1

. /etc/init.d/functions

PLYMOUTH=
[ -x /bin/plymouth ] && PLYMOUTH=yes

# Check SELinux status
SELINUX_STATE=
if [ -e “/selinux/enforce” ] && [ “$(cat /proc/self/attr/current)” != “kernel” ]; then
if [ -r “/selinux/enforce” ] ; then
SELINUX_STATE=$(cat “/selinux/enforce”)
else
# assume enforcing if you can’t read it
SELINUX_STATE=1
fi
fi

if [ -n “$SELINUX_STATE” -a -x /sbin/restorecon ] && __fgrep ” /dev ” /proc/mounts >/dev/null 2>&1 ; then
/sbin/restorecon -R -F /dev 2>/dev/null
fi

disable_selinux() {
echo $”*** Warning — SELinux is active”
echo $”*** Disabling security enforcement for system recovery.”
echo $”*** Run ‘setenforce 1’ to reenable.”
echo “0” > “/selinux/enforce”
}

relabel_selinux() {
# if /sbin/init is not labeled correctly this process is running in the
# wrong context, so a reboot will be required after relabel
AUTORELABEL=
. /etc/selinux/config
echo “0” > /selinux/enforce
[ -n “$PLYMOUTH” ] && plymouth –hide-splash

if [ “$AUTORELABEL” = “0” ]; then
echo
echo $”*** Warning — SELinux ${SELINUXTYPE} policy relabel is required. ”
echo $”*** /etc/selinux/config indicates you want to manually fix labeling”
echo $”*** problems. Dropping you to a shell; the system will reboot”
echo $”*** when you leave the shell.”
start rcS-emergency

else
echo
echo $”*** Warning — SELinux ${SELINUXTYPE} policy relabel is required.”
echo $”*** Relabeling could take a very long time, depending on file”
echo $”*** system size and speed of hard drives.”

/sbin/fixfiles -F restore > /dev/null 2>&1
fi
rm -f /.autorelabel
# at this point fsck was already executed see bz1236062
[ -f /forcefsck ] && rm -f /forcefsck

echo $”Unmounting file systems”
umount -a
mount -n -o remount,ro /
echo $”Automatic reboot in progress.”
reboot -f
}

# Print a text banner.
echo -en $”\t\tWelcome to ”
read -r system_release < /etc/system-release if [[ "$system_release" == *"Red Hat"* ]]; then [ "$BOOTUP" = "color" ] && echo -en "\\033[0;31m" echo -en "Red Hat" [ "$BOOTUP" = "color" ] && echo -en "\\033[0;39m" PRODUCT=$(sed "s/Red Hat \(.*\) release.*/\1/" /etc/system-release) echo " $PRODUCT" elif [[ "$system_release" == *Fedora* ]]; then [ "$BOOTUP" = "color" ] && echo -en "\\033[0;34m" echo -en "Fedora" [ "$BOOTUP" = "color" ] && echo -en "\\033[0;39m" PRODUCT=$(sed "s/Fedora \(.*\) \?release.*/\1/" /etc/system-release) echo " $PRODUCT" elif [[ "$system_release" =~ "CentOS" ]]; then [ "$BOOTUP" = "color" ] && echo -en "\\033[0;36m" echo -en "CentOS" [ "$BOOTUP" = "color" ] && echo -en "\\033[0;39m" PRODUCT=$(sed "s/CentOS \(.*\) \?release.*/\1/" /etc/system-release) echo " $PRODUCT" else PRODUCT=$(sed "s/ release.*//g" /etc/system-release) echo "$PRODUCT" fi # Only read this once. cmdline=$(cat /proc/cmdline) # Initialize hardware if [ -f /proc/sys/kernel/modprobe ]; then if ! strstr "$cmdline" nomodules && [ -f /proc/modules ] ; then sysctl -w kernel.modprobe="/sbin/modprobe" >/dev/null 2>&1
else
# We used to set this to NULL, but that causes ‘failed to exec’ messages”
sysctl -w kernel.modprobe=”/bin/true” >/dev/null 2>&1
fi
fi

touch /dev/.in_sysinit >/dev/null 2>&1

# Set default affinity
if [ -x /bin/taskset ]; then
if strstr “$cmdline” default_affinity= ; then
for arg in $cmdline ; do
if [ “${arg##default_affinity=}” != “${arg}” ]; then
/bin/taskset -p ${arg##default_affinity=} 1
/bin/taskset -p ${arg##default_affinity=} $$
fi
done
fi
fi

nashpid=$(pidof nash 2>/dev/null)
[ -n “$nashpid” ] && kill $nashpid >/dev/null 2>&1
unset nashpid

apply_sysctl

/sbin/start_udev

# Load other user-defined modules
for file in /etc/sysconfig/modules/*.modules ; do
[ -x $file ] && $file
done

# Load modules (for backward compatibility with VARs)
if [ -f /etc/rc.modules ]; then
/etc/rc.modules
fi

mount -n /dev/pts >/dev/null 2>&1
[ -n “$SELINUX_STATE” ] && restorecon -F /dev/pts >/dev/null 2>&1

# Configure kernel parameters
update_boot_stage RCkernelparam
apply_sysctl

# Set the hostname.
update_boot_stage RChostname
action $”Setting hostname ${HOSTNAME}: ” hostname ${HOSTNAME}
[ -n “${NISDOMAIN}” ] && domainname ${NISDOMAIN}

# Sync waiting for storage.
{ rmmod scsi_wait_scan ; modprobe scsi_wait_scan ; rmmod scsi_wait_scan ; } >/dev/null 2>&1

# Device mapper & related initialization
if ! __fgrep “device-mapper” /proc/devices >/dev/null 2>&1 ; then
modprobe dm-mod >/dev/null 2>&1
fi

if [ -f /etc/crypttab ]; then
init_crypto 0
fi

if ! strstr “$cmdline” nompath && [ -f /etc/multipath.conf -a \
-x /sbin/multipath ]; then
modprobe dm-multipath > /dev/null 2>&1
/sbin/multipath -v 0
if [ -x /sbin/kpartx ]; then
action_silent $”Add partition mappings: ” /sbin/dmsetup ls –target multipath –exec “/sbin/kpartx -a -p p”
fi
fi

if ! strstr “$cmdline” nodmraid && [ -x /sbin/dmraid ]; then
modprobe dm-mirror >/dev/null 2>&1
dmraidsets=$(LC_ALL=C /sbin/dmraid -s -c -i)
if [ “$?” = “0” ]; then
for dmname in $dmraidsets; do
if [[ “$dmname” == isw_* ]] && \
! strstr “$cmdline” noiswmd; then
continue
fi
action_silent $”Activate software (ATA)RAID: ” /sbin/dmraid -ay -i –rm_partitions -p “$dmname”
/sbin/kpartx -a -p p “/dev/mapper/$dmname”
done
fi
fi

# Start any MD RAID arrays that haven’t been started yet
[ -r /proc/mdstat -a -r /dev/md/md-device-map ] && action $”Run MD devices: ” /sbin/mdadm -IRs

if [ -x /sbin/lvm ]; then
if [ ! -f /.nolvm ] && ! strstr “$cmdline” nolvm ; then
action $”Setting up Logical Volume Management:” /sbin/lvm vgchange -a ay –sysinit –ignoreskippedcluster
else
echo $”Logical Volume Management disabled at boot.”
fi
fi

if [ -f /etc/crypttab ]; then
init_crypto 0
fi

if [ -f /fastboot ] || strstr “$cmdline” fastboot ; then
fastboot=yes
fi

if [ -f /fsckoptions ]; then
fsckoptions=$(cat /fsckoptions)
fi

if [ -f /forcefsck ] || strstr “$cmdline” forcefsck ; then
fsckoptions=”-f $fsckoptions”
elif [ -f /.autofsck ]; then
[ -f /etc/sysconfig/autofsck ] && . /etc/sysconfig/autofsck
if [ “$AUTOFSCK_DEF_CHECK” = “yes” ]; then
AUTOFSCK_OPT=”$AUTOFSCK_OPT -f”
fi
if [ -n “$AUTOFSCK_SINGLEUSER” ]; then
[ -n “$PLYMOUTH” ] && plymouth –hide-splash
echo
echo $”*** Warning — the system did not shut down cleanly. ”
echo $”*** Dropping you to a shell; the system will continue”
echo $”*** when you leave the shell.”
[ -n “$SELINUX_STATE” ] && echo “0” > /selinux/enforce
start rcS-emergency
[ -n “$SELINUX_STATE” ] && echo “1” > /selinux/enforce
[ -n “$PLYMOUTH” ] && plymouth –show-splash
fi
fsckoptions=”$AUTOFSCK_OPT $fsckoptions”
fi

if [ “$BOOTUP” = “color” ]; then
fsckoptions=”-C $fsckoptions”
else
fsckoptions=”-V $fsckoptions”
fi

READONLY=
if [ -f /etc/sysconfig/readonly-root ]; then
. /etc/sysconfig/readonly-root
fi
if strstr “$cmdline” readonlyroot ; then
READONLY=yes
[ -z “$RW_MOUNT” ] && RW_MOUNT=/var/lib/stateless/writable
[ -z “$STATE_MOUNT” ] && STATE_MOUNT=/var/lib/stateless/state
fi
if strstr “$cmdline” noreadonlyroot ; then
READONLY=no
fi

if [ “$READONLY” = “yes” -o “$TEMPORARY_STATE” = “yes” ]; then

mount_empty() {
if [ -e “$1” ]; then
echo “$1” | cpio -p -vd “$RW_MOUNT” &>/dev/null
mount -n –bind “$RW_MOUNT$1” “$1”
fi
}

mount_dirs() {
if [ -e “$1” ]; then
mkdir -p “$RW_MOUNT$1”
find “$1” -type d -print0 | cpio -p -0vd “$RW_MOUNT” &>/dev/null
mount -n –bind “$RW_MOUNT$1” “$1”
fi
}

mount_files() {
if [ -e “$1” ]; then
cp -a –parents “$1” “$RW_MOUNT”
mount -n –bind “$RW_MOUNT$1” “$1″
fi
}

# Common mount options for scratch space regardless of
# type of backing store
mountopts=

# Scan partitions for local scratch storage
rw_mount_dev=$(blkid -t LABEL=”$RW_LABEL” -l -o device)

# First try to mount scratch storage from /etc/fstab, then any
# partition with the proper label. If either succeeds, be sure
# to wipe the scratch storage clean. If both fail, then mount
# scratch storage via tmpfs.
if mount $mountopts “$RW_MOUNT” > /dev/null 2>&1 ; then
rm -rf “$RW_MOUNT” > /dev/null 2>&1
elif [ x$rw_mount_dev != x ] && mount $rw_mount_dev $mountopts “$RW_MOUNT” > /dev/null 2>&1; then
rm -rf “$RW_MOUNT” > /dev/null 2>&1
else
mount -n -t tmpfs $RW_OPTIONS $mountopts none “$RW_MOUNT”
fi

for file in /etc/rwtab /etc/rwtab.d/* /dev/.initramfs/rwtab ; do
is_ignored_file “$file” && continue
[ -f $file ] && cat $file | while read type path ; do
case “$type” in
empty)
mount_empty $path
;;
files)
mount_files $path
;;
dirs)
mount_dirs $path
;;
*)
;;
esac
[ -n “$SELINUX_STATE” -a -e “$path” ] && restorecon -R “$path”
done
done

# Use any state passed by initramfs
[ -d /dev/.initramfs/state ] && cp -a /dev/.initramfs/state/* $RW_MOUNT

# In theory there should be no more than one network interface active
# this early in the boot process — the one we’re booting from.
# Use the network address to set the hostname of the client. This
# must be done even if we have local storage.
ipaddr=
if [ “$HOSTNAME” = “localhost” -o “$HOSTNAME” = “localhost.localdomain” ]; then
ipaddr=$(ip addr show to 0.0.0.0/0 scope global | awk ‘/[[:space:]]inet / { print gensub(“/.*”,””,”g”,$2) }’)
for ip in $ipaddr ; do
HOSTNAME=
eval $(ipcalc -h $ip 2>/dev/null)
[ -n “$HOSTNAME” ] && { hostname ${HOSTNAME} ; break; }
done
fi

# Clients with read-only root filesystems may be provided with a
# place where they can place minimal amounts of persistent
# state. SSH keys or puppet certificates for example.
#
# Ideally we’ll use puppet to manage the state directory and to
# create the bind mounts. However, until that’s all ready this
# is sufficient to build a working system.

# First try to mount persistent data from /etc/fstab, then any
# partition with the proper label, then fallback to NFS
state_mount_dev=$(blkid -t LABEL=”$STATE_LABEL” -l -o device)
if mount $mountopts $STATE_OPTIONS “$STATE_MOUNT” > /dev/null 2>&1 ; then
/bin/true
elif [ x$state_mount_dev != x ] && mount $state_mount_dev $mountopts “$STATE_MOUNT” > /dev/null 2>&1; then
/bin/true
elif [ ! -z “$CLIENTSTATE” ]; then
# No local storage was found. Make a final attempt to find
# state on an NFS server.

mount -t nfs $CLIENTSTATE/$HOSTNAME $STATE_MOUNT -o rw,nolock
fi

if [ -w “$STATE_MOUNT” ]; then

mount_state() {
if [ -e “$1” ]; then
[ ! -e “$STATE_MOUNT$1” ] && cp -a –parents “$1” “$STATE_MOUNT”
mount -n –bind “$STATE_MOUNT$1” “$1”
fi
}

for file in /etc/statetab /etc/statetab.d/* ; do
is_ignored_file “$file” && continue
[ ! -f “$file” ] && continue

if [ -f “$STATE_MOUNT/$file” ] ; then
mount -n –bind “$STATE_MOUNT/$file” “$file”
fi

for path in $(grep -v “^#” “$file” 2>/dev/null); do
mount_state “$path”
[ -n “$SELINUX_STATE” -a -e “$path” ] && restorecon -R “$path”
done
done

if [ -f “$STATE_MOUNT/files” ] ; then
for path in $(grep -v “^#” “$STATE_MOUNT/files” 2>/dev/null); do
mount_state “$path”
[ -n “$SELINUX_STATE” -a -e “$path” ] && restorecon -R “$path”
done
fi
fi

if mount | grep -q /var/lib/nfs/rpc_pipefs ; then
mount -t rpc_pipefs sunrpc /var/lib/nfs/rpc_pipefs && service rpcidmapd restart
fi
fi

if [[ ” $fsckoptions” != *” -y”* ]]; then
fsckoptions=”-a $fsckoptions”
fi

_RUN_QUOTACHECK=0
if [ -f /forcequotacheck ] || strstr “$cmdline” forcequotacheck ; then
_RUN_QUOTACHECK=1
fi
if [ -z “$fastboot” -a “$READONLY” != “yes” ]; then

STRING=$”Checking filesystems”
echo $STRING
fsck -T -t noopts=_netdev -A $fsckoptions
rc=$?

if [ “$rc” -eq “0” ]; then
success “$STRING”
echo
elif [ “$rc” -eq “1” ]; then
passed “$STRING”
echo
elif [ “$rc” -eq “2” -o “$rc” -eq “3” ]; then
echo $”Unmounting file systems”
umount -a
mount -n -o remount,ro /
echo $”Automatic reboot in progress.”
reboot -f
fi

# A return of 4 or higher means there were serious problems.
if [ $rc -gt 1 ]; then
[ -n “$PLYMOUTH” ] && plymouth –hide-splash

failure “$STRING”
echo
echo
echo $”*** An error occurred during the file system check.”
echo $”*** Dropping you to a shell; the system will reboot”
echo $”*** when you leave the shell.”

str=$”(Repair filesystem)”
PS1=”$str \# # “; export PS1
[ “$SELINUX_STATE” = “1” ] && disable_selinux
start rcS-emergency

echo $”Unmounting file systems”
umount -a
mount -n -o remount,ro /
echo $”Automatic reboot in progress.”
reboot -f
elif [ “$rc” -eq “1” ]; then
_RUN_QUOTACHECK=1
fi
fi

remount_needed() {
local state oldifs
[ “$READONLY” = “yes” ] && return 1
state=$(LC_ALL=C awk ‘/ \/ / && ($3 !~ /rootfs/) { print $4 }’ /proc/mounts)
oldifs=$IFS
IFS=”,”
for opt in $state ; do
if [ “$opt” = “rw” ]; then
IFS=$oldifs
return 1
fi
done
IFS=$oldifs
return 0
}

# Remount the root filesystem read-write.
update_boot_stage RCmountfs
if remount_needed ; then
action $”Remounting root filesystem in read-write mode: ” mount -n -o remount,rw /
fi

# Clean up SELinux labels
if [ -n “$SELINUX_STATE” ]; then
restorecon /etc/mtab /etc/ld.so.cache /etc/blkid/blkid.tab /etc/resolv.conf >/dev/null 2>&1
fi

# If relabeling, relabel mount points.
if [ -n “$SELINUX_STATE” -a “$READONLY” != “yes” ]; then
if [ -f /.autorelabel ] || strstr “$cmdline” autorelabel ; then
restorecon $(awk ‘!/^#/ && $4 !~ /noauto/ && $2 ~ /^\// { print $2 }’ /etc/fstab) >/dev/null 2>&1
fi
fi

if [ “$READONLY” != “yes” ] ; then
# Clear mtab
(> /etc/mtab) &> /dev/null

# Remove stale backups
rm -f /etc/mtab~ /etc/mtab~~

# Enter mounted filesystems into /etc/mtab
mount -f /
mount -f /proc >/dev/null 2>&1
mount -f /sys >/dev/null 2>&1
mount -f /dev/pts >/dev/null 2>&1
mount -f /dev/shm >/dev/null 2>&1
mount -f /proc/bus/usb >/dev/null 2>&1
fi

# Mount all other filesystems (except for NFS and /proc, which is already
# mounted). Contrary to standard usage,
# filesystems are NOT unmounted in single user mode.
# The ‘no’ applies to all listed filesystem types. See mount(8).
if [ “$READONLY” != “yes” ] ; then
action $”Mounting local filesystems: ” mount -a -t nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2,glusterfs -O no_netdev
else
action $”Mounting local filesystems: ” mount -a -n -t nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2,glusterfs -O no_netdev
fi

# Check to see if a full relabel is needed
if [ -n “$SELINUX_STATE” -a “$READONLY” != “yes” ]; then
if [ -f /.autorelabel ] || strstr “$cmdline” autorelabel ; then
relabel_selinux
fi
else
if [ -d /etc/selinux -a “$READONLY” != “yes” ]; then
[ -f /.autorelabel ] || touch /.autorelabel
fi
fi

# Update quotas if necessary
if [ X”$_RUN_QUOTACHECK” = X1 -a -x /sbin/quotacheck ]; then
action $”Checking local filesystem quotas: ” /sbin/quotacheck -anug
fi

if [ -x /sbin/quotaon ]; then
action $”Enabling local filesystem quotas: ” /sbin/quotaon -aug
fi

# Initialize pseudo-random number generator
if [ -f “/var/lib/random-seed” ]; then
cat /var/lib/random-seed > /dev/urandom
else
[ “$READONLY” != “yes” ] && touch /var/lib/random-seed
fi
if [ “$READONLY” != “yes” ]; then
chmod 600 /var/lib/random-seed
dd if=/dev/urandom of=/var/lib/random-seed count=1 bs=4096 2>/dev/null
fi

if [ -f /etc/crypttab ]; then
init_crypto 1
fi

# Configure machine if necessary.
if [ -f /.unconfigured ]; then

if [ -x /bin/plymouth ]; then
/bin/plymouth quit
fi

if [ -x /usr/bin/system-config-keyboard ]; then
/usr/bin/system-config-keyboard
fi
if [ -x /usr/bin/passwd ]; then
/usr/bin/passwd root
fi
if [ -x /usr/sbin/system-config-network-tui ]; then
/usr/sbin/system-config-network-tui
fi
if [ -x /usr/sbin/timeconfig ]; then
/usr/sbin/timeconfig
fi
if [ -x /usr/sbin/authconfig-tui ]; then
/usr/sbin/authconfig-tui –nostart
fi
if [ -x /usr/sbin/ntsysv ]; then
/usr/sbin/ntsysv –level 35
fi

# Reread in network configuration data.
if [ -f /etc/sysconfig/network ]; then
. /etc/sysconfig/network

# Reset the hostname.
action $”Resetting hostname ${HOSTNAME}: ” hostname ${HOSTNAME}
fi

rm -f /.unconfigured
fi

# Clean out /.
rm -f /fastboot /fsckoptions /forcefsck /.autofsck /forcequotacheck /halt \
/poweroff /.suspended &> /dev/null

# Do we need (w|u)tmpx files? We don’t set them up, but the sysadmin might…
_NEED_XFILES=
[ -f /var/run/utmpx -o -f /var/log/wtmpx ] && _NEED_XFILES=1

# Clean up /var.
rm -rf /var/lock/cvs/* /var/run/screen/*
find /var/lock /var/run ! -type d -exec rm -f {} \;
rm -f /var/lib/rpm/__db* &> /dev/null
rm -f /var/gdm/.gdmfifo &> /dev/null

[ “$PROMPT” != no ] && plymouth watch-keystroke –command “touch /var/run/confirm” –keys=Ii &

# Clean up utmp/wtmp
> /var/run/utmp
touch /var/log/wtmp
chgrp utmp /var/run/utmp /var/log/wtmp
chmod 0664 /var/run/utmp /var/log/wtmp
if [ -n “$_NEED_XFILES” ]; then
> /var/run/utmpx
touch /var/log/wtmpx
chgrp utmp /var/run/utmpx /var/log/wtmpx
chmod 0664 /var/run/utmpx /var/log/wtmpx
fi
[ -n “$SELINUX_STATE” ] && restorecon /var/run/utmp* /var/log/wtmp* >/dev/null 2>&1

# Clean up various /tmp bits
[ -n “$SELINUX_STATE” ] && restorecon /tmp
rm -f /tmp/.X*-lock /tmp/.lock.* /tmp/.gdm_socket /tmp/.s.PGSQL.*
rm -rf /tmp/.X*-unix /tmp/.ICE-unix /tmp/.font-unix /tmp/hsperfdata_* \
/tmp/kde-* /tmp/ksocket-* /tmp/mc-* /tmp/mcop-* /tmp/orbit-* \
/tmp/scrollkeeper-* /tmp/ssh-* \
/dev/.in_sysinit

# Make ICE directory
mkdir -m 1777 -p /tmp/.ICE-unix >/dev/null 2>&1
chown root:root /tmp/.ICE-unix
[ -n “$SELINUX_STATE” ] && restorecon /tmp/.ICE-unix >/dev/null 2>&1

# Start up swapping.
update_boot_stage RCswap
action $”Enabling /etc/fstab swaps: ” swapon -a -e
if [ “$AUTOSWAP” = “yes” ]; then
curswap=$(awk ‘/^\/dev/ { print $1 }’ /proc/swaps | while read x; do get_numeric_dev dec $x ; echo -n ” “; done)
swappartitions=$(blkid -t TYPE=swap -o device)
if [ x”$swappartitions” != x ]; then
for partition in $swappartitions ; do
[ ! -e $partition ] && continue
majmin=$(get_numeric_dev dec $partition)
echo $curswap | grep -qw “$majmin” || action $”Enabling local swap partitions: ” swapon $partition
done
fi
fi

# Set up binfmt_misc
/bin/mount -t binfmt_misc none /proc/sys/fs/binfmt_misc > /dev/null 2>&1

# Boot time profiles. Yes, this should be somewhere else.
if [ -x /usr/sbin/system-config-network-cmd ]; then
if strstr “$cmdline” netprofile= ; then
for arg in $cmdline ; do
if [ “${arg##netprofile=}” != “${arg}” ]; then
/usr/sbin/system-config-network-cmd –profile ${arg##netprofile=}
fi
done
fi
fi

# Now that we have all of our basic modules loaded and the kernel going,
# let’s dump the syslog ring somewhere so we can find it later
[ -f /var/log/dmesg ] && mv -f /var/log/dmesg /var/log/dmesg.old
dmesg -s 131072 > /var/log/dmesg

# create the crash indicator flag to warn on crashes, offer fsck with timeout
touch /.autofsck &> /dev/null

[ “$PROMPT” != no ] && plymouth –ignore-keystroke=Ii
if strstr “$cmdline” confirm ; then
touch /var/run/confirm
fi

# Let rhgb know that we’re leaving rc.sysinit
if [ -x /bin/plymouth ]; then
/bin/plymouth –sysinit
fi

これか!?

# Clean up various /tmp bits
[ -n "$SELINUX_STATE" ] && restorecon /tmp
rm -f /tmp/.X*-lock /tmp/.lock.* /tmp/.gdm_socket /tmp/.s.PGSQL.*
rm -rf /tmp/.X*-unix /tmp/.ICE-unix /tmp/.font-unix /tmp/hsperfdata_* \
       /tmp/kde-* /tmp/ksocket-* /tmp/mc-* /tmp/mcop-* /tmp/orbit-*  \
       /tmp/scrollkeeper-*  /tmp/ssh-* \
       /dev/.in_sysinit

こりゃシェルだなー、すげええええええええええええええええ

yum localinstall

Installs the specified package. You can also install multiple packages separated by single-byte spaces.

It is possible to skip confirmation of installation by adding “-y” option.

[vagrant@localhost ~]$ sudo yum localinstall jdk-8u40-linux-x64.rpm
読み込んだプラグイン:fastestmirror
ローカルパッケージ処理の設定をしています
ファイルが開けません: jdk-8u40-linux-x64.rpm を飛ばします。
何もしません

rm –recursive

The rm command does not set the directory for deletion unless the option is set.

If you also want to delete directories, specify the -r option.

[vagrant@localhost laravel]$ ls
blog  composer.phar
[vagrant@localhost laravel]$ rm -r blog
[vagrant@localhost laravel]$ ls
composer.phar

xargs

The command “xargs” reads the list from standard input or a file, and creates and executes a command line.
For example, the output of one command can be piped into an xargs command and specified as an argument of another command.

[vagrant@localhost ~]$ cd /var/www/cgi-bin
[vagrant@localhost cgi-bin]$ find . -name “*” | xargs grep select
grep: .: ディレクトリです
./app.cgi:my $sth = $db->prepare(“select * from name;”);

–suppress-common-lines

diffをした時に、違いのみ表示する。

[vagrant@localhost test]$ cat test.html
1 8411 東証1部 (株)みずほフィナンシャルグループ 03/28 1 71.1 -0.18% -0.3 96,741,900
2 8306 東証1部 (株)三菱UFJフィナンシャル・グループ 03/28 5 50.5 -0.56% -3.1 41,004,400
3 1357 東証ETF (NEXT FUNDS) 日経ダブルインバース上場投信 0 3/28 1,205 +2.99% +35 34,491,855
4 3765 東証1部 ガンホー・オンライン・エンターテイメント(株) 0 3/28 410 -3.53% -15 28,158,000
5 9437 東証1部 (株)NTTドコモ 03/28 2,417 -1.31% – 32 22,719,600 [vagrant@localhost test]$ ls
test.html work
[vagrant@localhost test]$ cp test.html copy.html
[vagrant@localhost test]$ ls
copy.html test.html work
[vagrant@localhost test]$ vi copy.html
[vagrant@localhost test]$ diff -y test.html copy.html
1 8411 東証1部 (株)みずほフィナンシャルグループ | 1 8 411 東証1部 みずほフィナンシャルグループ 03/28
2 8306 東証1部 (株)三菱UFJフィナンシャル・グルー 2 8 306 東証1部 (株)三菱UFJフィナンシャル・グルー
3 1357 東証ETF (NEXT FUNDS) 日経ダブルインバース上場 3 1 357 東証ETF (NEXT FUNDS) 日経ダブルインバース上場
4 3765 東証1部 ガンホー・オンライン・エンターテイメ 4 3 765 東証1部 ガンホー・オンライン・エンターテイメ
5 9437 東証1部 (株)NTTドコモ 03/28 2,417 \ 5 9 437 東証1部 (株)NTTドコモ 03/28 2,417
[vagrant@localhost test]$ diff -y –suppress-common-lines test.html copy.html
1 8411 東証1部 (株)みずほフィナンシャルグループ | 1 8411 東証1部 みずほフィナンシャルグループ 03/28
5 9437 東証1部 (株)NTTドコモ 03/28 2,417 \ 5 9437 東証1部 (株)NTTドコモ 03/28 2,417

ほう、なるほど~

linux sudo

$ sudo -V
Display the version of sudo command currently used.

[vagrant@localhost ~]$ sudo -V
Sudo バージョン 1.8.6p3
Sudoers policy plugin version 1.8.6p3
Sudoers file grammar version 42
Sudoers I/O plugin version 1.8.6p3
ん、なんだこれ?

$ sudo -l
Display command that the user can (or cannot) do on the current host by using the sudo command.

[vagrant@localhost ~]$ sudo -l
このホスト上でユーザー vagrant
に一致したデフォルト項目:
!visiblepw, always_set_home, env_reset, env_keep=”COLORS DISPLAY
HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS”, env_keep+=”MAIL PS1 PS2
QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE”, env_keep+=”LC_COLLATE
LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES”,
env_keep+=”LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE”,
env_keep+=”LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY”,
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

ユーザー vagrant
は次のコマンドをこのホスト上で実行できます:
(ALL) NOPASSWD: ALL

$ sudo -h
Display help for sudo command.

$ sudo -u username hoge
Execute hoge command as a username

なんか、この辺は知らんとモグリと思われるな。

linuxでの操作

[vagrant@localhost test]$ WORK_DIR=work/$(date +%Y)/$(date +%m%d)_crontab
[vagrant@localhost test]$ ls
[vagrant@localhost test]$ mkdir -p ${WORK_DIR}
[vagrant@localhost test]$ ls
work
[vagrant@localhost test]$ ls
work
[vagrant@localhost test]$ cd work
[vagrant@localhost work]$ ls
2019
[vagrant@localhost work]$ cd 2019
[vagrant@localhost 2019]$ ls
0327_crontab
[vagrant@localhost 2019]$ cd 0327_crontab
[vagrant@localhost 0327_crontab]$ ls
[vagrant@localhost 0327_crontab]$ crontab -l > crontab.old
no crontab for vagrant

なるほど、コマンドラインでも変数として扱えるのね。ほう。

ps -aef

ps: Check the processes currently running on Linux

a: display the process of terminal operation
f(option -h, option-forest): display processes in a hierarchy
e: display the command name and environment, variables being executed.

[vagrant@localhost ~]$ ps -aef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Mar24 ? 00:00:00 /sbin/init
root 2 0 0 Mar24 ? 00:00:00 [kthreadd]
root 3 2 0 Mar24 ? 00:00:00 [migration/0]
root 4 2 0 Mar24 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 Mar24 ? 00:00:00 [stopper/0]
root 6 2 0 Mar24 ? 00:00:00 [watchdog/0]
root 7 2 0 Mar24 ? 00:01:54 [events/0]
root 8 2 0 Mar24 ? 00:00:00 [events/0]
root 9 2 0 Mar24 ? 00:00:00 [events_long/0]
root 10 2 0 Mar24 ? 00:00:00 [events_power_ef]
root 11 2 0 Mar24 ? 00:00:00 [cgroup]
root 12 2 0 Mar24 ? 00:00:00 [khelper]
root 13 2 0 Mar24 ? 00:00:00 [netns]
root 14 2 0 Mar24 ? 00:00:00 [async/mgr]
root 15 2 0 Mar24 ? 00:00:00 [pm]
root 16 2 0 Mar24 ? 00:00:00 [sync_supers]
root 17 2 0 Mar24 ? 00:00:00 [bdi-default]
root 18 2 0 Mar24 ? 00:00:00 [kintegrityd/0]
root 19 2 0 Mar24 ? 00:00:03 [kblockd/0]
root 20 2 0 Mar24 ? 00:00:00 [kacpid]
root 21 2 0 Mar24 ? 00:00:00 [kacpi_notify]
root 22 2 0 Mar24 ? 00:00:00 [kacpi_hotplug]
root 23 2 0 Mar24 ? 00:00:00 [ata_aux]
root 24 2 0 Mar24 ? 00:00:00 [ata_sff/0]
root 25 2 0 Mar24 ? 00:00:00 [ksuspend_usbd]
root 26 2 0 Mar24 ? 00:00:00 [khubd]
root 27 2 0 Mar24 ? 00:00:00 [kseriod]
root 28 2 0 Mar24 ? 00:00:00 [md/0]
root 29 2 0 Mar24 ? 00:00:00 [md_misc/0]
root 30 2 0 Mar24 ? 00:00:00 [linkwatch]
root 33 2 0 Mar24 ? 00:00:00 [khungtaskd]
root 34 2 0 Mar24 ? 00:00:00 [lru-add-drain/0]
root 35 2 0 Mar24 ? 00:00:01 [kswapd0]
root 36 2 0 Mar24 ? 00:00:00 [ksmd]
root 37 2 0 Mar24 ? 00:00:00 [aio/0]
root 38 2 0 Mar24 ? 00:00:00 [crypto/0]
root 45 2 0 Mar24 ? 00:00:00 [kthrotld/0]
root 47 2 0 Mar24 ? 00:00:00 [kpsmoused]
root 48 2 0 Mar24 ? 00:00:00 [usbhid_resumer]
root 49 2 0 Mar24 ? 00:00:00 [deferwq]
root 81 2 0 Mar24 ? 00:00:00 [kdmremove]
root 82 2 0 Mar24 ? 00:00:00 [kstriped]
root 186 2 0 Mar24 ? 00:00:00 [scsi_eh_0]
root 188 2 0 Mar24 ? 00:00:00 [scsi_eh_1]
root 214 2 0 Mar24 ? 00:00:00 [scsi_eh_2]
root 262 2 0 Mar24 ? 00:00:00 [kdmflush]
root 264 2 0 Mar24 ? 00:00:00 [kdmflush]
root 332 2 0 Mar24 ? 00:00:02 [jbd2/dm-0-8]
root 333 2 0 Mar24 ? 00:00:00 [ext4-dio-unwrit]
root 338 2 0 Mar24 ? 00:00:01 [flush-253:0]
root 409 1 0 Mar24 ? 00:00:00 /sbin/udevd -d
root 513 2 0 Mar24 ? 00:00:00 [iprt-VBoxWQueue]
root 708 2 0 Mar24 ? 00:00:00 [jbd2/sda1-8]
root 709 2 0 Mar24 ? 00:00:00 [ext4-dio-unwrit]
root 771 2 0 Mar24 ? 00:00:00 [kauditd]
root 963 1 0 Mar24 ? 00:00:00 /sbin/dhclient -1 -q -cf /etc/dh
root 1148 1 0 Mar24 ? 00:00:00 auditd
root 1170 1 0 Mar24 ? 00:00:00 /sbin/rsyslogd -i /var/run/syslo
rpc 1192 1 0 Mar24 ? 00:00:00 rpcbind
rpcuser 1214 1 0 Mar24 ? 00:00:00 rpc.statd
root 1318 1 0 Mar24 ? 00:00:46 /usr/sbin/VBoxService –pidfile
root 1357 1 0 Mar24 ? 00:00:00 /usr/sbin/sshd
root 1392 1 0 Mar24 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe –d
mysql 1632 1392 0 Mar24 ? 00:01:03 /usr/sbin/mysqld –basedir=/usr
root 2246 1 0 Mar24 ? 00:00:00 /usr/libexec/postfix/master
postfix 2250 2246 0 Mar24 ? 00:00:00 qmgr -l -t fifo -u
root 2370 1 0 Mar24 ? 00:00:06 /usr/sbin/httpd
root 2614 1 0 Mar24 ? 00:00:00 crond
jenkins 3741 1 0 Mar24 ? 00:05:14 /etc/alternatives/java -Dcom.sun
root 4085 1 0 Mar24 tty1 00:00:00 /sbin/mingetty /dev/tty1
root 4087 1 0 Mar24 tty2 00:00:00 /sbin/mingetty /dev/tty2
root 4091 1 0 Mar24 tty3 00:00:00 /sbin/mingetty /dev/tty3
root 4096 1 0 Mar24 tty4 00:00:00 /sbin/mingetty /dev/tty4
root 4098 1 0 Mar24 tty5 00:00:00 /sbin/mingetty /dev/tty5
root 4100 1 0 Mar24 tty6 00:00:00 /sbin/mingetty /dev/tty6
root 4132 409 0 Mar24 ? 00:00:00 /sbin/udevd -d
root 4133 409 0 Mar24 ? 00:00:00 /sbin/udevd -d
root 10290 1357 0 18:51 ? 00:00:00 sshd: vagrant [priv]
vagrant 10292 10290 0 18:51 ? 00:00:00 sshd: vagrant@notty
vagrant 10293 10292 0 18:51 ? 00:00:00 /usr/libexec/openssh/sftp-server
root 10300 1357 0 18:53 ? 00:00:00 sshd: vagrant [priv]
vagrant 10302 10300 0 18:53 ? 00:00:00 sshd: vagrant@notty
vagrant 10303 10302 0 18:53 ? 00:00:00 /usr/libexec/openssh/sftp-server
root 10320 1357 0 19:04 ? 00:00:00 sshd: vagrant [priv]
vagrant 10322 10320 0 19:04 ? 00:00:00 sshd: vagrant@pts/0
vagrant 10323 10322 0 19:04 pts/0 00:00:00 -bash
postfix 10798 2246 0 19:47 ? 00:00:00 pickup -l -t fifo -u
apache 10930 2370 0 19:54 ? 00:00:00 /usr/sbin/httpd
apache 10931 2370 0 19:54 ? 00:00:00 /usr/sbin/httpd
apache 10932 2370 0 19:54 ? 00:00:00 /usr/sbin/httpd
apache 10933 2370 0 19:54 ? 00:00:00 /usr/sbin/httpd
apache 10934 2370 0 19:54 ? 00:00:00 /usr/sbin/httpd
apache 10935 2370 0 19:54 ? 00:00:00 /usr/sbin/httpd
apache 10936 2370 0 19:54 ? 00:00:00 /usr/sbin/httpd
apache 10937 2370 0 19:54 ? 00:00:00 /usr/sbin/httpd
root 11000 1357 0 20:21 ? 00:00:00 sshd: vagrant [priv]
vagrant 11002 11000 0 20:21 ? 00:00:00 sshd: vagrant@pts/1
vagrant 11003 11002 0 20:21 pts/1 00:00:00 -bash
vagrant 11425 11003 0 20:26 pts/1 00:00:00 ps -aef

なにこれ?こんなに走ってるの? httpdぐらいかと思ったらww

さー今日は225が-700くらい付けてますが、今日も頑張りますかー