关于Linux的操作,相信很多人都不是很熟悉。Linux不像windosw系统那样,可视化操作,傻瓜式管理。Linux系统没有专用的桌面ui,一切都要靠一些命令来操作,不过学好Linux操作,对以后的技术生涯是有很大的帮助的。
今天我们说一说,Linux中有哪些操作命令!
一、目录操作
ls(文件和目录显示)
参数:
-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出); -A:显示除影藏文件“.”和“..”以外的所有文件列表; -C:多列显示输出结果。这是默认选项; -l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列; -F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符; -b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出; -c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间; -d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表; -f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果; -i:显示文件索引节点号(inode)。一个索引节点代表一个文件; -k:以KB(千字节)为单位显示文件大小; -l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等; -m:用“,”号区隔每个文件和目录的名称; -n:以用户识别码和群组识别码替代其名称; -r:以文件名反序排列并输出目录内容列表; -s:显示文件和目录的大小,以区块为单位; -t:用文件和目录的更改时间排序; -L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录; -R:递归处理,将指定目录下的所有文件及子目录一并处理;
示例:
显示当前目录下非影藏文件与目录;
[root@localhost ~]# ls anaconda-ks.cfg install.log install.log.syslog satools
显示当前目录下包括影藏文件在内的所有文件列表。
[root@localhost ~]# ls -a . anaconda-ks.cfg .bash_logout .bashrc install.log .mysql_history satools .tcshrc .vimrc .. .bash_history .bash_profile .cshrc install.log.syslog .rnd .ssh .viminfo
pwd(显示当前所在目录)
示例:
root@localhost ~]# pwd /root [root@localhost mail]# pwd -P /root/spool/mail
mkdir(新建目录)
示例:
[root@localhost mail]# mkdir test [root@localhost mail]# mkdir /test/test [root@localhost mail]# mkdir -m 700 /usr/meng/test [root@localhost mail]# mkdir -p-m 750 bin/os_1
rmdir(删除空的目录|有文件无法删除)
示例:
删除子目录os_1和其父目录bin
[root@localhost mail]# cd /usr/meng/test [root@localhost mail]# rmdir -p bin/os_1
cp(复制文件或目录)
参数:
-a:此参数的效果和同时指定"-dpR"参数相同; -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录; -f:强行复制文件或目录,不论目标文件或目录是否已存在; -i:覆盖既有文件之前先询问用户; -l:对源文件建立硬连接,而非复制文件; -p:保留源文件或目录的属性; -R/r:递归处理,将指定目录下的所有文件与子目录一并处理; -s:对源文件建立符号连接,而非复制文件; -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件; -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀; -b:覆盖已存在的文件目标前将目标文件备份; -v:详细显示命令执行的操作。
示例:
[root@localhost mail]# cp ../mary/homework/assign . [root@localhost mail]# cp file /usr/men/tmp/file1 [root@localhost mail]# cp -r /usr/men /usr/zh [root@localhost mail]# cp -i /usr/men m*.c /usr/zh [root@localhost mail]# cp aaa/* /bbb
复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录;
[root@localhost mail]# cp -r aaa/* /bbb
这次依然需要按Y来确认操作,但是没有忽略子目录;
[root@localhost mail]# cp -r -a aaa/* /bbb
依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb;
[root@localhost mail]# \cp -r -a aaa/* /bbb
成功,没有提示按Y、传递了目录属性、没有略过目录。
cd(改变目录)
参数:
-p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录 -L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。
示例:
[root@localhost mail]# cd
进入用户主目录;
[root@localhost mail]# cd ~
进入用户主目录;
[root@localhost mail]# cd –
返回进入此目录之前所在的目录;
[root@localhost mail]# cd ..
返回上级目录(若当前目录为“/”,则执行完后还在“/“,”..”为上级目录的意思);
[root@localhost mail]# cd ../..
返回上两级目录;
[root@localhost mail]# cd !$
把上个命令的参数作为cd参数使用。
二、文件操作
less(浏览文件的内容)
参数:
-e:文件内容显示完毕后,自动退出; -f:强制显示文件; -g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度; -l:搜索时忽略大小写的差异; -N:每一行行首显示行号; -s:将连续多个空行压缩成一行显示; -S:在单行显示较长的内容,而不换行显示; -x<数字>:将TAB字符显示为指定个数的空格字符。
示例:
[root@localhost mail]# less test.txt
more(按页显示文本文件的内容)
参数:
-<数字>:指定每屏显示的行数; -d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”; -c:不进行滚屏操作。每次刷新这个屏幕; -s:将多个空行压缩成一行显示; -u:禁止下划线; +<数字>:从指定数字的行开始显示。
示例:
[root@localhost mail]# more -dc file
显示文件file的内容,但在显示之前先清屏,并且在屏幕的最下方显示完核的百分比;
[root@localhost mail]# more -c -10 file
显示文件file的内容,每10行显示一次,而且在显示之前先清屏。
touch(创建新的空文件)
参数:
-a:或--time=atime或--time=access或--time=use 只更改存取时间; -c:或--no-create 不建立任何文件; -d:<时间日期> 使用指定的日期时间,而非现在的时间; -f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题; -m:或--time=mtime或--time=modify 只更该变动时间; -r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同; -t:<日期时间> 使用指定的日期时间,而非现在的时间; --help:在线帮助; --version:显示版本信息。
示例:
[root@localhost mail]# touch ex2
cat(显示文件的内容)
参数:
-n或-number:有1开始对所有输出的行数编号; -b或--number-nonblank:和-n相似,只不过对于空白行不编号; -s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行; -A:显示不可打印字符,行尾显示“$”; -e:等价于"-vE"选项; -t:等价于"-vT"选项;
示例:
[root@localhost mail]# cat m1
在屏幕上显示文件ml的内容;
[root@localhost mail]# cat m1 m2
同时显示文件ml和m2的内容;
[root@localhost mail]# cat m1 m2 > file
将文件ml和m2合并后放入文件file中。
vi(编辑器)
参数:
Ctrl+u:向文件首翻半屏; Ctrl+d:向文件尾翻半屏; Ctrl+f:向文件尾翻一屏; Ctrl+b:向文件首翻一屏; Esc:从编辑模式切换到命令模式; ZZ:命令模式下保存当前文件所做的修改后退出vi; :行号:光标跳转到指定行的行首; :$:光标跳转到最后一行的行首; x或X:删除一个字符,x删除光标后的,而X删除光标前的; D:删除从当前光标到光标所在行尾的全部字符; dd:删除光标行正行内容; ndd:删除当前行及其后n-1行; nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字; p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方; P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方; /字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示; ?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示; a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作; a:在当前字符后添加文本; A:在行末添加文本; i:在当前字符前插入文本; I:在行首插入文本; o:在当前行后面插入一空行; O:在当前行前面插入一空行; :wq:在命令模式下,执行存盘退出操作; :w:在命令模式下,执行存盘操作; :w!:在命令模式下,执行强制存盘操作; :q:在命令模式下,执行退出vi操作; :q!:在命令模式下,执行强制退出vi操作; :e文件名:在命令模式下,打开并编辑指定名称的文件; :n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件; :f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例; :set number:在命令模式下,用于在最左端显示行号; :set nonumber:在命令模式下,用于在最左端不显示行号;
示例:
[root@localhost mail]# ll -rwxr-xr-x 1 root root 395 Jul 4 11:45 test.txt [root@localhost mail]# vi test.txt
输入参数操作,Esc退出后,:wq!保存,:q!强制退出。
unlink(删除文件)
示例:
[root@localhost mail]# unink test.txt
rm(删除文件)
参数:
-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录; -f:强制删除文件或目录; -i:删除已有文件或目录之前先询问用户; -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理; --preserve-root:不对根目录进行递归操作; -v:显示指令的详细执行过程。
示例:
交互式删除当前目录mail下的文件test和example
[root@localhost mail]# rm -i test example [root@localhost mail]# Remove test ?n
不删除文件test;
[root@localhost mail]# Remove example ?y
删除文件example。
删除当前目录mail下除隐含文件外的所有文件和子目录
[root@localhost mail]# rm -r *
rename(文件重命名)
示例:
[root@localhost mail]# rename main1.c main.c main1.c
mv(移动文件)
参数:
--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份; -b:当文件存在时,覆盖前,为其创建一个备份; -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录; -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。 --strip-trailing-slashes:删除源文件中的斜杠“/”; -S<后缀>:为备份文件指定后缀,而不使用默认的后缀; --target-directory=<目录>:指定源文件要移动到目标目录; -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
示例:
将文件ex3改名为new1;
[root@localhost mail]# mv ex3 new1
将目录/usr/men中的所有文件移到当前目录(用.表示)中。
[root@localhost user]# mv /usr/men/* .
三、通用指令
history(显示指定数目的指令命令)
参数:
-c:清空当前历史命令; -a:将历史命令缓冲区中命令写入历史命令文件中; -r:将历史命令文件中的命令读入当前历史命令缓冲区; -w:将当前历史命令缓冲区命令写入历史命令文件中。
示例:
[root@localhost ~]# history 10 92 ls 93 cd.. 94 ls 95 exit 96 ls -a 97 cd .ssh/ 98 ls 99 cat known_hosts 100 exit 101 history 10
ps(查看进程)
示例:
[root@localhost user]# ps -ef|grep procmon user 34078864 5439738 0 10:02:38 pts/45 0:00 grep procmon
5439738为进程拥有着,34078864为进程号,执行以下命令杀掉进程;
[root@localhost user]# kill 34078864
执行后再执行ps -ef | grep procmon命令将不会看到该进程号的weblogic进程。
kill(删除执行中的程序或工作)
参数:
-a:当处理当前进程时,不限制命令名和进程号的对应关系; -l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称; -p:指定kill 命令只打印相关进程的进程号,而不发送任何信号; -s <信息名称或编号>:指定要送出的信息; -u:指定用户。
示例:
列出所有信号名称:
kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略,下面是常用的信号:
HUP 1 终端断线 INT 2 中断(同 Ctrl + C) QUIT 3 退出(同 Ctrl + \) TERM 15 终止 KILL 9 强制终止 CONT 18 继续(与STOP相反, fg/bg命令) STOP 19 暂停(同 Ctrl + Z)
先用ps查找进程,然后用kill杀掉:
[root@localhost ~]# ps -ef | grep vim root 3268 2884 0 16:21 pts/1 00:00:00 vim install.log root 3370 2822 0 16:21 pts/0 00:00:00 grep vim [root@localhost user]# kill 3268 [root@localhost user]# kill 3268 [root@localhost user]# -bash: kill: (3268) - 没有那个进程
本文来源:绿叶之秋博客
本文Linux系统中常用操作命令到此结束。每条路都很难走,可是一旦选择了,就必须要走下去。小编再次感谢大家对我们的支持!