本文正在参与 “走过Linux三十年”话题征文活动。
1 Linux下 cp 复制强制覆盖的方法
问题
cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,当文件比较少的时候还可以按Y确认,当很多文件的时候就不好说了。
-r 的意思是递归复制,也就是复制文件夹及其下所有文件
-f的意思是遇到同名的文件时不提示,直接覆盖。
但是为什么加上-f了,还出现overwrite的提示呢?
这是因为系统为防止我们误操作,覆盖了不该覆盖的文件,而使用了命令的别名。
使用alias命令查看一下:
[root@VM-1-14-centos ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
从上边我们可以看出,我们输入的cp命令,其实是cp -i命令。其他几个命令,如ll,ls, mv,rm等也使用了别名。
解决方法一
在cp前加上一个``符号就不使用别名运行了,如下:
解决办法二
编辑文件,注释掉别名
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
#alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
2 Linux history命令显示操作时间
编辑/etc/bashrc,添加一下内容
export HISTSIZE=3000
export HISTTIMEFORMAT="%F %T "
export PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
unset HISTCONTROL
[root@VM-1-14-centos ~]# source /etc/bashrc
1507 2021-09-15 22:58:59 ls
1508 2021-09-15 22:59:07 alias
1509 2021-09-15 23:00:52 vim .bashrc
1510 2021-09-15 23:02:22 vim /etc/bashrc
1511 2021-09-15 23:02:36 history
3 Linux命令之watch
介绍
watch命令以周期性的方式执行给定的指令,指令输出以全屏方式显示。
watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。
语法
watch (选项) (参数)
选项
-n:指定指令执行的间隔时间(秒);
-d:高亮显示指令输出信息不同之处;
-t:不显示标题。
参数
指令:需要周期性执行的指令。
示例
# watch uptime
# watch -t uptime
# watch -d -n 1 netstat -ntlp
# watch -d 'ls -l | fgrep goface' //监测goface的文件
# watch -t -differences=cumulative uptime
# watch -n 60 from //监控mail
# watch -n 1 "df -i;df" //监测磁盘inode和block数目变化情况
监控TIME_WAIT连接数,每秒刷新一次
watch -n 1 'netstat -ant |grep TIME_WAIT |wc -l'
4 fg、bg让进程在前后台之间切换
Linux下的fg和bg命令是进程的前后台调度命令,即将指定号码(非进程号)的命令进程放到前台或后台运行。比如一个需要长时间运行的命令,我们就希望把它放入后台,这样就不会阻塞当前的操作;而一些服务型的命令进程我们则希望能把它们长期运行于后台。
进程前后台操作用到以下命令或按键:
Ctrl+C
终止并退出前台命令的执行,回到SHELL
Ctrl+Z
暂停前台命令的执行,将该进程放入后台,回到SHELL
jobs
查看当前在后台执行的命令,可查看命令进程号码
&
运行命令时,在命令末尾加上&可让命令在后台执行
fg N
将命令进程号码为N的命令进程放到前台执行,同%N
bg N
将命令进程号码为N的命令进程放到后台执行
fg、bg、jobs、&、ctrl + z 都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的。