User:Cyrusty/Useful Commands
- LINUX COMMANDS ##
cd # Home directory or changes directory cd .. # Up a directory and to up 2 directories ../.. and so on cd - # Returns you to the directory you previously were in cd / # Changes directory to root ls # Lists the files that are in a directory ls –a # Shows all files/hidden files in a directory ls –al # Shows all files/hidden files and time/write permissions in a directory ls -alh # Shows same as above command but shows file sizes in a better readable format ls -l # Shows the files and write permissions in the directory ls / # Shows the contents of the root directory cat <file name. extension> # Prints the contents of a file on the shell mkdir <Directory Name> # Makes a directory mkdir -p EXAMPLE/RIGHT/IN/HERE # Makes multiple folders in the directory created mv /FILE/NAME/OR/DIR /TO/DIR/WANTED # Moves a file to a directory or renames a file rm <FILE NAME> # Removes a file rmdir <DIRECTORY> # Removes an empty directory rm –r # Removes a directory and its contents rm -rf # Force deletes everything rm –rf / # Deletes everything under root directory sudo # Runs command as sudo sudo -i # Changes to root privellages sudo su # Gives SUPERUSER privellages man <COMMAND> # Displays how a command can be used and what it does grep # searching, finding, filtering command top # Shows running processes htop # Shows more information than top and in more detail ps -A # Shows all running processes kill PID # Kills process under a certain PID kill -9 PID # Force kills a process that wont kill normally sudo killall NAME # Kill all processes under the NAME sudo pkill -u USER # Kills all USER processes head FILENAME # Prints the first 10 lines tail FILENAME # Prints the last 10 lines clear # Clears the screen pwd # Print working directory <file name. extension> # Makes a file in current directory ##unsure of this## cal # Shows current calender date (also cal mm/yy) whatis # Type a command after to see a brief description of what it does/is adduser USERNAME # Create a USER adduser USERNAME sudo # Adds USER to the sudo group who # Shows current users on the machine and when they logged in w # Shows whos logged in, from where, how long and what they're doing nano # Edit a text file vi # Nano is better... vim # Another editor... type vimtutor on commandline to learn more sort # Sort lines of text files wc # Wordcount a text file rig # Random Identity Generator apt-cache search # ??
- SYSTEM INFO ##
dmidecode | less # Shows bios information lscpu # Shows cpu/hardware information lspci # List all PCI devices lsusb # List all USB devices lsblk # List all Hard disks, Cd drives etc cat /proc/meminfo # Shows memory information cat /proc/version # Shows current running kernal version
- SHUTDOWN/REBOOT ##
shutdown -r +60 # restarts in 60mins shutdown -h +60 # shutdown in 60mins poweroff # shuts system down reboot # restarts computer init 6 # same as reboot
- HANDY THINGS TO REMEMBER ##
CTRL r # to search for previously used COMMAND CTRL p # shows previously used COMMAND CTRL a # brings you to begin of line CTRL e # brings to the end of line tail -f FILENAME # this will follow the file while it's being edited echo "some kind of text" > example.text # this will overwrite the .text file with the quoted line echo "new line of text" >> example.text # this will write the quoted line on a new line alias COMMANDNAME="DESIREDNAME" # this will temporarily save a command to the desired name echo "alias COMMANDNAME=\"DESIREDNAME\";" >> ~/.bashrc # this will permanently save a desired command to the bash file && # chain commands together
- NETWORKING ##
ifconfig # Shows network info IP/MAC address sudo netdiscover # Shows who's on the network and identifies the ip address of each connection sudo lsof -i # Lists the open ports and the process that owns them (to see which process is bound to port use :PORTNUMBER) sudo netstat # Seeing what might be exposed to the network sudo netstat -tulpn # t=tcp, u=udp ports, l=listening ports, p=processes, n=numerical sudo macchanger -s enp4s0/eth0/wps/ # To see mac addresses sudo macchanger -r enp4s0 # Changes the current mac address to a new one
ssh -NCD 1080 user@ip # Proxy network traffic over port 1080 (edit below settings on firefox to port traffic correctly) Manual Proxy Configuration Socks Host: localhost port: 1080
- EXAMPLES OF THINGS ##
ls -alh /home/user/some/random/place >> ANYNAME # cat ANYNAME to see it show the directory with info grep WHATEVERSEARCHINGFOR ./* # Useful for findings things.. If successful this will print out what it finds in the shell
- SSH ##
ssh-keygen -t # creates a key in .ssh sudo nano /etc/ssh/sshd_config # change ssh parameters (key logging/password authentication) sudo service ssh restart # saves ssh modifications ssh-copy-id USER@IP # saves the pub key to be known as an authenticated key scp -r USER@IP /home/USER/FILE/FOLDER /home/local/machine # copy from server to localmachine scp -r /home/USER/local/machine/file/folder USER@IP:/home/USER/VPS
- RANDOM PASSWORD GENERATORS ##
openssl rand -base64 32 # generates random 32 character password </dev/urandom tr -dc 'A-Za-z0-9!"#$%&'\()*+,-./:;<=>?@[\]^_`{|}~' | head -c 10 ; echo # Sauls random character/symbol generated password command
- SYSTEM COMMANDS/SERVICES ##
sudo apt-get update && sudo apt-get install # Updates n upgrades system to latest crontab -e # the crontab (short for "cron table") is a list of commands that are scheduled to run at regular time intervals on your computer system sudo nano /etc/default/grub # change grub options (boot timer)
- CRONTAB SCRIPT COMMANDS ##
@reboot macchanger -r enp4s0 # (or eth0) # changes to random mac address on each reboot
- MAIL ##
mail # Checks mail for current user mail -s "SUBJECT" USER < /home/USER/test.text # sends a mail to the user with test.text as the body mail -f USER # Checks mail for selected user mail -f guest # checks guest messages
- PIPING & REDIRECTION ##
cat /FILE/IN/A/DIRECTORY | less # Shows in a opened document view without clogging the terminal cat /FILE/IN/A/DIRECTORY | espeak # Speaks the text document in linux voice
- FILE PERMISSIONS ##
(R)ead=4 (W)rite=2 (X)ecute=1 d=directory l=link 4+2+1 = (r+w+x) = 7 4+2 = (r+w) = 6 4+1 = (r+x) = 5 4 = (r) = 4 2+1 = (w+x) = 3 2 = (w) = 2 1 = (x) = 1
chmod xxx dir # Change all files in a single directories permissions chmod -R xxx dir # Change all file/folders permissions recursively chown owner:group DIRECTORYNAME # Changes the owner and group name of files
- ACCOUNT MANAGEMENT ##
useradd # Adds a user useradd -m -d # Create a new user and makes a home directory for the user and define the home directory /home/DIR/FOR/USER userdel # Deletes a user usermod -L USER # Locks the user from logging in usermod -U USER # Unlocks the user so they can log in again tail /etc/shadow tail /etc/passwd tail /etc/group
- Note users will have a "!" after their name if they are locked out of their account
to check this type in the following command "tail /etc/shadow"
- GIT ##
git add . # add all files for committing git commit -am "COMMIT MESSAGE" # commit the changes locally git push origin master # push changes to the server
Commands for VPS
scp /home/USER root@MY-VPS-IP:home/USER # sends files from localmachine to VPS
scp root@VPSIP:/INSERT_FILE_DIRECTORY_HERE /home/USER/WHEREVER # sends files VPS to PC (to do a whole folder) put -r eg.. scp -r /home/USER/FOLDER root@MY-VPS-UP:/home/USER
ssh -NCD 1080 USER@SERVERIP # go to firefox change to manual proxy and enter for Port 1080, no proxy for:localhost, 127.0.0.1 ## this will show put traffic through a VPN
1. Firstly change the ssh password authentication to yes
sudo nano /etc/ssh/sshd_config # modifies ssh parameters
2. ssh-copy-id NAME@IP # this uploads pub key to authorized keys
3. sudo service ssh restart
# If you want to rename for faster access do the following
sudo nano /etc/hosts #add a new line and put IP_ADDRESS_OF_SERVER NAMEWANTED
can also do the following
sudo echo "REMOTEIP INSERTPREFERREDNAME" >> /etc/hosts # does the same as above
Other Info
cat ~/.bash_history | grep apt-get # Show all the stuff I've tried to install or remove
ssh -NR 1234:localhost:22 cy.rusty.space # Make an SSH connection to my machine temporarily available on port 1234 in the server:
When you're not sure what the syntax is type
apropos KEYWORD # helps find the correct syntax user is looking for
If a file in the shell has spacebars used instead of _ or - I need to use a backward \ if I'm trying to do anything with it.