The common Linux Commands

Linux的命令总结

1、 man在线请求系统帮助

例:man mkdir

 

 

 

 

 

NAME:这个命令的完整全名 mk(make directories)

SYNOPSIS:这个命令的基本语法

    mkdir [OPTION]... DIRECTORY...

        OPTION:参数

        DERECTORY:目录或者行为

DESCRIPTION:具体描述命令的使用方法

   

    -m, --mode=MODE

              set file mode (as in chmod), not a=rwx – umask

        左边的-m为短参数,右边的--mode为完整参数名称

        设置目录的状态(这里可以理解为权限),和chmod这个命令一样,并不是默认权限

用法:

        mkdir 777 test.c 使用短参数

        等价于

        mkdir --mode 777 test1 使用长参数

AUTHOR:作者

 

REPORTING BUGS:如果出现问题,请发邮件或者登录说明的网址

 

COPYRIGHT:受到了著作权的法律保护,是GPL

 

SEE ALSO:还可以在哪里查询这个命令的使用方法,例如:info mkdir

 

按键:

    [Page Dowm]: 向下翻页

    [空格键]: 向下翻页

    [page Up]:向上翻页

    [Home]:回到首页

    [End]:回到末页

    /String:向下查询字符串,如果要向下查询vbird,使用输入/vbird

    ?String:向上查询字符串,

    n/N:利用/或者?来查询字符串时,可以使用n来继续下一个查询(不论是\还是?),可以利用N来向下查询。举例来说,我以/vbird查询vbird字符串,那么我可以使用n来往下查询,使用N来

    q:结束这次的man page

 

touch

 

touch:chage file timestamps

       update the access and modification times of each FILE to current time .

        A FILE argument that does not exsit is created empty unless -c or -h is suppiled

    参数:

        -a:change only the access time

        -c:do not create any files

        -d –date=STRING:parse STRING and use it instead of use current time

        -f:ignore

        -m:change only the modification time

        -t STAMP:use [YYMMDDhhmm] instead of current time

        --time=WORD:change specified time :WORD is access,atime,or use:equivalent to -a WORD is modify or mtime:equivalent to -m

 

atime:access time :file is executed or read

ctime:creat time :file is change including content,owner,authority and so on

mtime:modify time:file is written

 

so if a file is written all time will change

 

If you want know more ,please click:

http://blog.sina.com.cn/s/blog_67178440010101gr.html

 

 

LS

 

ls – list directory contents

    List information about the FILES (the curren directory by default),sort entries alphabetically if none of -cftuzSUX nor

 -–sort

    -a,--all list

do not ignore entries starting with .

    -A –almost-all

           Do not list imply . and ..

    --author

           With l print the author of each file

    -d –-directory

           list directory entries instead of conents,and do not dereference  symblolic links

    -f

        Do not sort,enable -aU

    -F –- classify

        append indicator (one of */=>@|) to entries

    -h --human-readable

        With -l,print sizes human readable format(e.g.,234M,2G)

    -l

        Use long list format

    -S

        sort by file size

    -t

        sort by modification time

    -i

        print the index number of each file

 

           for example, use i l and h .             

 

 

-F --classify

    append indicator(one of */=>@|) to entries

   

 

usually use -F will add / at the end of the directory, so you can use it and grep to easily get directories.

for example:

 

 

    -p --indicator--style=slash

        append / indicator to directories

    we also think it: -F contain -p

    -r --reverse

        reverse order while sorting

    if you want find the latest file you create of many files,you can use: ls -lrt

 

 

 

 

 

mkdir

mkdir -- make directory

    Create the DIRECTOTY(ies) if the they do not already exsit

    args:

        -m,--mode=MODE

           set file mode (as in chomd),not a=rwx -umask

                      umask:default authority

        -p --parents

           no error if existing ,make parent directories as needed

 

       -v --verbose

           -v, --verbose

              print a message for each created directory

 

     -Z, --context=CTX

         set the SELinux security context of each created directory to CTX

 

 

cp(copy)

 

copy -- copy files and directories

    args

       -a --archive

           same as -dR --preserve=all

          

       -d:若为连接文件,则复制文件本身

       -i --interactive

           prompt before overwrite(overrides a previous -n position)  

       -p

           same as -preserve=mode,ownership,timestamps,using 备份

 

-r --recursive

    copy directories recursively

 

   

      

   

 

rm

rm --remove directories or files

    args:

       -f --force

           ignore nonexistent files,never prompt

       -i

           prompt before every removal

       -r --recursive

           remove directories and their contents recursiveable

 

 

mv

mv --move(rename) files

    args:

       -f --force

           do not prompt before overwriting

       -i --interactive

           prompt before overwriting

       -u --update

           move only when the SOURCE is newer than destination file or destination file is missing

 

 

echo

 

echo --display a line of a text

    -n do not output the trailing newline

    for example:

   

 

    -e enable interpretation of backslash escapes

       If e in effect the following sequences are recognized

           \n new line

           \t vertical tab

           for example:

          

 

      

    Example:

       create a file and write a line content:

 echo "This is a test file" > test.file

           if you execute the command secondly,it will overwrite the file and if you want to add  not to overwrite,you could use the command:

echo "This is a test file" >> test.file

1、 if PATH is a variable param is system,you use echo $PATH to input its value

2、 echo 123 --> 123

 

 

 

cat&tac

    cat -- concatenate files and print on the standard output

       -a --show-all

           equivalent to -vET

       -b --number-noneblank

           number nonempty output lines

       -e

           equvilent to -vE

       -E --show-ends

           display $ at the end of each line

       -n --number

           number all output lines

       -T --show-tabs

           display TAB characters as ^I

       -v show-nonprinting

           use ^ and M- natation except for LFD and TAB

 

       Example:

       if you want use cat to create file,you can use follow

       cat > test.file <<EOF

> ds

> dssdwew

> weew

> EOF

 

the content between EOE will be writtern the file and if the file is not exsit,will create or overwrite

 

tac: concatenate and print files in inverse

 

 

 

 

pwd

pwd --print name of current/working directory

        Print full name of current working directory

    -L --logcial

           use PWD from envirment,even if contains symlinks

    -P --physical

           avoid all symlinks

 

 

 

alias

alias --set a name or var of a long command or character

    Example:

       1、alias:show all alias in you system or user

 

 

    “cp = ‘cp -i’” mean that if you cp a file to destination directory and exsiting a same name file in the directory,The system will ask you whether overwrite

2、 if want to set some alias,you can do follow:

alias cat='cat -n',use cat to represent cat -n

in ‘ ’ ,you should use command

 

3、 if wan cancel some alias,you can use follow:

  unalias cat

But we suggest don’t modify system alias which can help we avoid some bad execution. If some command or path too long ,you could use alias. such as, I will use this command “mynet”  to respresent my network information:

alias mynet='cat /etc/sysconfig/network-scripts/ifcfg-eth0'

 

but if do above, this alias is temporary,if you want to use the alias forever, you shoud add the command in ~/.bashrc

 

 

 

 

 

head && tail

head --output the first part of files

Print  the  first 10 lines of each FILE to standard output.  With more than one FILE, precede each with a header

giving the file name.  With no FILE, or when FILE is -, read standard input.

Example:

    head -3 test.file.

        print the first 3 line of test.file

       head test.file   default 10 line

 

in contrast

 

tail -- tail - output the last part of files

Ways to use is same as head

 

Question: print 20~30 line of file

head -30 test.txt|tail -11

or

tail -81 test.txt|head -11

 

-f : listen a file tail

Open two terminal, one to write to test.txt

    for example:

       for n in `seq 1000`; do echo $n >> /tmp/test.txt;sleep 1; done

the other to use tail to listen test.txt

    for example: tail -f /tmp/test.txt

This command is used to listen log file of web ,you can view some information or exception from the tail of files

    -F the same as -f, but if the file is deleted, it will try too.

 

 

“|” means pipe

 

 

 

rmdir

rmdir --remove empty directory

    if want more, reference man rmdir.

 

 

 

seq

seq --print a sequence of numbers

   

    seq 1 3

   

 

 

 

 

 

use “\n” as the separator. you also can use ‘-s’ to change it

 

 

 

 

 

 

 

 

vi/vim

 

they are the notepad of linux, if want more, reference book.

 

 

find

This is a vital command, we explain it by examples.

1、find by type and name

find --search for files in a directories

find / -type f -name "att.txt"

/:the directory you think the file searched in

-type: the file’s type

        f:regular file

        d:directory

        ...

-name :the file name you want to search

 

-maxdepth +number choose how depth the directory you would search

-pruen: True,if the file is a directory ,do not descend into it. If -depth is given ,not effective

 

 

! :not

 

 

 

 

 

-o || -or:OR

 

 

-a or -and :and

 

 

 

you have fond some files, but you want to view or execute them?

how do to? Following

 

2、find and execute

find / -type f -name "att.txt" -exec ls -l {} \;

you could comprehension as follow:

-exec  COMMAND \

“;” is the bash

 

 

 

 

But above command also can be replaced by “xargs”, please reference “xargs”

 

    3、find by time

       find / -type f -mtime -4

-4:the last 4 days

4 :the fourth day

+4 the fourth day ago

 

 

 

 

 

xagrs

xargs --built and execute command lines from standard input

some command may not support pipe,but we can use xargs to standard input.we use example to explain the command:

 

 

 

find / -type f -name "att.txt"|xargs cat

use xargs to cat file

 

 

 

 

 

 

 

grep/egrep

grep --print lines matching a pattern

    args

       -a --text

           process a binary file as if it were text this is equivalent to the --binary-files=text option

       -c --calculate the matching pattern counts.

       -i --ignore-case

           ignore case distinctions in both PATTERN and input files

        -E : for example: grep -E “A|B|C” means to show A or B C

         -n, --line-number

              Prefix each line of output with the 1-based line number within its  input  file.   (-n  is  specified  by

              POSIX.)

       -v --invert-match

Invert the sense of matching, to select non-matching lines.  (-v is specified by POSIX.)

       -A means after N, except for current line we needs ,it will show after N lines

       -B means before N expect for current lines we need, it will show before N lines.

       for example, if want to list current and its after 3 lines, you can use:

    cat test.txt |grep -A 3 30

   

 

 

similarly,

cat test.txt |grep -B 3 30 

 

 

    --color=auto the characters which is PATTERN will be show by color, for example

dmesg | grep -n --color=auto 'eth0'

 

 

 

 the result is colorful!

so we can use alias to use it forever

alias grep = ‘grep --color=auto’

add it in your ~/.bashrc

 

 

 

 

sed

sed -- sed - stream editor for filtering and transforming text

 we will examples to use this command

    -n:use silent mode, only deal with date will be show screen

    -i:means insert

    Examples:

    1、search 20-30 line a file

   

 

 

2、search all file named att.txt and replace their content “oldboyWindows” to ”oldboyLinux” how to do ?

    Firstly, find those files

    find / -type f -name att.txt

 

 

   

    Secondly, change them in screen,but source files don’t update

find / -type f -name att.txt|xargs sed #oldboyWindows#oldboyLinux#g

           sed s#P1#P2#g

           P1:the content if source files

           P2:the content you want to replace

 

 

Thirdly: replace in source files, we only need add “-i” after sed, successful!

 

 

 

/^S/:begin with S

 

 

 

/\/$/:/$ is the end of /,because of //,nend to uer \ to change it

 

 

 

what to do to use ‘sed’ to get you ip address;

use the regex to match, \(.*\) is the content we need,we can use

“\1” to get it at the behind of the second “#”.if you use more one ”\(\)”,you can user “\1” to the get first one, use “\2” to get the second. if you get nothing, express you regex is not match the character. Be careful of “-n” and ‘p’

 

 

 

if you want to insert some content to some files, you can use find and sed

sed -i '1 i http://oldboy.blog.51cto.com/2561410/'

    -i insert ‘1(line number) i(insert) http://oldboy.blog.51cto.com/2561410/  (the content you want to insert)’

some hacker may use it to attract you web

 

 

 

you can use following ways to solve it.

1、 delete it(recommend because it will not anything including blank line)

sed -i ‘/the content you want delete/d(delete)’

 

 

2、 replace it(don’t recommend ,because if will keep blank line)

find /tmp/ -type f|xargs sed -i ‘s#the content you want to replace#(keep blank)#g’

awk

 

awk -- pattern scanning and processing language

    -F --field-separator FS

       Use FS for the input field separator and if want use more one, user’[]’

       example:

   

 

      

for example:

1、search 20-30 line a file

 

awk '{if(NR>19 && NR<31) print $0}' test.txt

NR meas line numbers $0 meas all characters

 

 

/^d/: begin with d

$0:all characters

 

 

/\/$/:/$ is the end of /,because of //,nend to uer \ to change it

 

 

 

if want to use more separator, you can use “-F”, for example:

 

 

Above we use “ ” and “,” two separators, so we can get result we want.

but if the characters have one more “ ” or “,”, what we to do it. We can use “+” end the ‘]’,it express that if has many separators, we will see it as one.

 

 

 

 

histioy

view your history command

history -c :clean all history command

histoty -d +number :delete the number of the history command

!+numer: execute corresponding command

!!: execute the latest command

!+”CHARACTER”: exrcute latest start with “CHARACTER”

 

 

 

yum series

yum install pagename (-y) :install package name not need interactive

    -y: allow all operate

yum groupinstall “Devolopment Tools” : install page groups, and pagegroup name must use “”

 

yum grouplist : view how many package your system has installed and available   

 

 

 

yum update or yum upgrade: update you system to the newest version

   

 

   

 

SELinux

SELinux has three status :

1、 enforce(default) must  to do some operation

2、 permissive  permit to do some operation but give warning

3、 disabled : don’t manage operation

But we don’t use it in server, so we will close it.

 

update the /etc/selinux/config can change its setting,but this operation need to reboot

 

 

getenforce :view current SELinux status

setenforce set the status of SELinux and not neeed reboot

 


In this situation: Your server is running ,but you can’t reboot it and you want to close SELiux, how to do it?

1、 update the /etc/seliunx/config SELINUX=disabled

2、 enforence 0 :change current SELinux status to permissive

So when the next time your system reboot, your SELinux will change to disabled

This is perfect ways!

 

                     runlevel & init

runlevel:view you system run level

init +number : switch you system level

If your want more, reference Homework: Linux seven pattern of start

 

 

chkconfig

   chkconfig:update and queries runlevel  information for system service

    chkconfig --list:list all system levels service

    chkconfig --del  +name  delete the system service

    chkconfig --add +name add service on system

    chkconfig --level RUN_LEVEN SERVICE_NAME ON/OFF :set service on    RUN_LEVEL that you set

    chkconfig SERVICE_NAME ON/OFF :set SERVICE_NAME ON/OFF on all run_level except for 0 and 6;

 

You also can User setup--system-servide or User the command “ntsysv” to open system_service windows

 

 

reload or restart

SSH SERVICE:if you update the /etc/ssh/sshd_config, and want it available, you can user this command to reload the file “/etc/init.d/sshd reload”.And use this command “/etc/init.d/sshd restart” to restart sshd service

 

Open/Close the firewall:

    /etc/init.d/iptables stop

/etc/init.d/iptables stop

 

 

 

netstat & lsof

netstat:Print network connections, routing tables, interface statistics, masquerade connections, multicast memberships

-l --listen

-n --numeric

-t --tcp

-u --udp

-p --program

So we always to use the five params together

 

 

    -a -all

       We also user -an together

      

 

losf --list open file

-i: This option selects the listing of files any of whose Internet address matches the address specified in              i.   If  no address is specified, this option selects the listing of all Internet and x.25 (HP-UX) net-

                work files.

    we also use the command “lsof -i:52113” to view the port:52113 status

 

 

 

 

which

which: show the full path of (shell) commands

for example:

 

 

 

PATH

we use the command or shell ,but what does the system to search the command and execute it. This is PATH, is a environmental parameter

 

 

you command directory in PATH, you can use it in Terminal or shell.

    you can use “PATH=$PATH:/root/oldboy” to add your path,but is temporary ,if you want to save it forever, to add it in /etc/profile. and,

if you want user the command on you own, you can add it at ~/.bashrc or /home/.bash_profile

 

 

il8n

if you want to change you character coding ,you change it in /etc/sysconfig/i18n

 

 

you need to use the command  “souce /etc/sysconfig/i18n” ,it will change in you system now,or it will change an next reboot

you also can user LANG=CH to change it temporary.  

 

you can user “locale” to view the character coding specific information.

 

 

 

 

chattr && lsattr

 

chattr +i +filename can give a file a limits that don’t do any operate to it

lsattr +filename view the special limits about a file

 

 

whomi && w

whoami: print effective userid

 

 

 

w - Show who is logged on and what are they doing

 

 

 

tree

tree: list contents of directories in a tree-like format

    -L:--level +number show the depth of directories

    -d: list directories only

 

    examples:

      

 

 

 

 

 

file

file:determin file type

1、 view file type

file +filenamePath

 

 

dumpe2fs

dumpe2fs:dump ext2/ext3/ext4 filesystem information

for example:

 

 

 

tar

-c --create

    create a new archive

-x --extract,--get  

    extract files from a archive

-t --list

    list the contents of an archive

 

-v --verbose

    verbosely list files processed

-f --file=ARCHIVE

    user archive file or device file

 

-C --directory=DIR

        change directory to DIR

-z --gzip

    filter the archive through gzip.

 

-j --bgzip2

filter the archive through bgzip2

 

so we also use those commands

zip:

    tar -zcvf ARCHIVE.tar.gz SOURCE

        create archive from files foo and bar through zip

    tar -zxvf ARCHIVE.tar.bz (-C DIRECTORY)

        extract all files from archive.tar through zip

    tar -ztvf ARCHIVE.tar

        list all files in ARCHIVE.tar verbosely through zip

bgzip2

    tar -jcvf ARCHIVE.tar.gz SOURCE

        create an archive from files foo and bar through bgzip2

    tar -jxvf ARCHIVE.tar (-C DIRECTORY)

        extract all files from archive.tar through bgzip2

    tar -ztvf ARCHIVE.tar

        list all files in ARCHIVE.tar verbosely through bgzip2

    examples:

 

 

 

 

 

 

 

 

 

 

 

cut

cut remove sections from each line of files, default “ ”

-c --character=LIST

        select only these characters

-d --delimiter=DELIM

        use DELIM instead of TAB for field delimiter

-f --field

        select only these field; also print any line that contains no delimiter character, unless the -s option is specified

-s, --only-delimited

        do not print lines not containing delimiters

for example:

 

 

 

what to do get your ip address by using “cut”

 

 

wc

wc print newline, word, and byte counts for each files

    -L --max-line-length

        print the length of  the longest line

    

 

 

 

ln

ln make links between files

    -s --symbolic

         make symbolic instead of hard links

hard link:

ln SOURCE_FILE HARD_FILE_LINK

symbolic link

ln -s SOURCE_FILE SYMBOLIC_LINK_FILE

 

mkfs

mkfs: build a Linux file system

for example:

    mkfs.ext4 /dev/sdb

 

tr

tr --translate or delete characters

    for example:

 

 

date

date --print or set system date or time

    -s --set=STRING

       set time described by STRING

    %F --full-date; same as %Y-%m-%d

    %Y year

    %y last two digits of year

    %m month (01..12)

    %d day of month

    %H hour(00..23)

    %M minute(00..59)

    %S second(00..60)

    %w day of week(0..6) 0 is Sunday

    %u day of week(1..7) 1 is Monday

    %T time same as %H:%M:%S

special characters

.: current directory

.. : parent directory

-    cd - : back the directory you open latest

 

 

>> && > && << && <  

    standard (stdin) input: code: 0 <<(0) or <(0)

    standard output (stdout) code 1 (1)>> or (1)>

 standard error (stderr) code 2 2>> or 2>

2>&1:let let stderr redirect to stdout

for example

 

 

`command`: let the command to execute

 

~:cd ~  redirect home directory

{}:

 

 

 

; the separator about many commands

 

/:root or path deperator

^: startwith character

$: endwith character

^$:blank line

 

 

 

 

Hotkeys:

Tab: complement command

Ctrl+C stop current process in the front

在CRT中

Ctrl+Shift+C copy

Ctrl+Shift+V paste

Ctrl+d: exit or quit

 

Ctrl+a: move to the first of current line

Ctrl+e: move to the end of current line

Ctrl+u :delete current line

Cthr+r search command in your history

Ctrl+l clean screen

 

posted @ 2017-01-02 10:12  浪漫逆风  阅读(324)  评论(0编辑  收藏  举报