unable to save crontab file using CLI - linux

I am new to linux centos ,i am trying to save and exit crontab in centos.
I have used CLI.
crontab -e
when i press esc key from my keyboard it says ":quit to exit: and i press ":quit" and press enter key from keyboard crontab exit without saving.

You can set vi as your default crontab editor using the command.
export EDITOR=vi
Then you can save and exit crontab using :wq.

It seems you edit your crontab in vim. Use :x to save and quit at the same time. Details: http://vim.wikia.com/wiki/Saving_a_file.

Related

How can I disable Cronjob Emails?

I would like to disable my cronjob from sending me Emails.
My cronjob is executing a php file.
At the top of this file I wrote:
#!/usr/bin/php
<?php
$ crontab -e
MAILTO=""
But this is not helping.
I also tried
#!/usr/bin/php
>/dev/null 2>&1.
With putty connect to your server.
In the command line :
crontab -e
It will open you cron in editor. If it's vi the editor by default, Press "i" to insert mode. Then put on the first line
MAILTO=""
Press "Esc" to stop insert mode and ":x" to quit and save.
If you don't know how to connect to your server, you need to contact your sysAdmin.

How to save file in crontab using Ubuntu

I am editing a crontab file using the nano editor on Ubuntu. I need to save my text as a crontab file. When I attempt to save the file, it is asking me for the file name, but after I give the file name it's not taking or I'm not giving the proper path or something. I have included a screen shot below.
Thanks for helping!
Try to do as follow:
Use VI as editor:
export VISUAL=vi
crontab -e
press i for write; than press ESC and :wq for save and exit.
You can easily export the crontab for any user to a file:
crontab -u myuser -l > crontab.txt
step1 : press Crl+X
step2 : press Ship+Y
step3 : press Enter key

text editor mode for calling bash command

suppose I want to enter a multiline command via bash I know that I can append \ in the end of the line to enter a new line
however is it possible to enter a legitimate "text editor mode" where you don't even have to enter \ and simply press enter would suffice
eg..you type in the command into the command line then before entering the parameters you press some magic button which allows you to enter a vi like mode then you enter stuff into the "vi mode" then you exit and then the text you entered in the "vi mode" turns into the parameters of the command then you press enter then the command executes
is it possible to do that in bash command line? if so, how do I do it?
See man bash:
edit-and-execute-command (C-xC-e)
Invoke an editor on the current command line, and execute the
result as shell commands. Bash attempts to invoke $VISUAL,
$EDITOR, and emacs as the editor, in that order.
Per default bash is configured for emacs mode, hence the emacs like C-xC-e command.
If you really like vi you can also set your bash into vi mode: set -o vi. This allows you to do normal line editing the vi way without invoking an explicit editor.
Bash can emulate vim mode (though not very well) with:
set -o vi
You can edit the previous command in vi or your default editor by using the fc command. This pops open an editor window and when you exit it executes the edited command. That mode could bed used repeatedly to edit a complex command.

Can not edit cronjobs file in Debian with crontab -e

I have had several Debian servers and always edited cronjobs in this way:
crontab -e
and
Ctrl+x
Just got a new server and can not do it in this way anymore.
When I enter crontab -e, the file opens but I can't write anything. I can move cursor up and down but can't write. I even can not exit from this file because Ctr+x doesn't work.
When I open a file there is some information and the rest empty lines contain tildes ~ in the beginning of each line.
Any ideas how can I edit this file?
Thanks.
You need to turn on insert mode. After entering crontab -e, press i to turn on insert, enter your full line, press esc to finish entering, and then hold down shift and press z twice to save the file. This is how I managed to do it in vi/vim
As one other person has suggested, vim is obviously the default editor on your new server. You can test this by running
EDITOR=pico crontab -e
Substituting whatever is your actual preferred editor (sounds like it may be nano or pico). If that works, you should try one of the following:
edit your login script to set that environment variable on login (sets the editor just for that user)
Make sure your favourite editor is is installed and run the following (as root): update-alternatives --config sensible-editor
You can then choose the default editor for all users (they can override it individually by doing option 1).
~ would suggest that you are now editing your crontab using vi/vim instead of your usual editor
so Ctrl-X wont work, try Esc :wq
Do you have the right permissions? maybe you should open it as root user if not.
check it doing this:
ls -all $(which crontab)
if not you can change them..take a look here too..maybe you find something more!
hope it helps.

adding a shell script to a configuration file

I'm pretty new to shell scripting and linux in general. Basically, I need to change the configuration file for logging out so that when a user logs out, a certain shell script is run.
Now, I've located the logout configuration file and opened it with vi using this command
$ vi ~/.bash_logout
At this point, I'm experiencing some very weird behavior. When I try to type a character, the cursor jumps around seemingly erratically. What could this be due to? I'm running the latest version of ubuntu.
And once I get that figured out, what's the command to run a .sh file from within this configuration file?
If you're having trouble with vi, try using nano instead. nano .bash_logout
If you do need to use vi for some reason, "i" will put the editor into insert mode, and ESC will take it out of insert mode when you're done. ":wq" will write and quit the editor.
To run a command, just put it in the .bash_logout file as you would type it on the commandline.
Some other useful commands:
a insert after selected character
o insert at next line
O insert at previous line
r replace a single character
R replace mode
:q! quit without saving
:w save
:wq save and quit
To get familiar with Vi and its brother Vim ("VI improved") I recommend the book "A Byte of Vim", you can read it online or download for free at http://www.swaroopch.com/notes/Vim
You can permanently change your editor option. To find out what your current one is, type this:
export | grep -i edit
To change it on Ubuntu:
sudo update-alternatives –config editor
On any other BASH prompt, just do this:
export EDITOR="nano"
Replace 'nano' with 'vi', 'emacs', or any other preferred editor. You can also add this to your .bashrc by typing the following:
echo 'EDITOR="nano"' >> ~/.bashrc

Resources