当前位置: 代码迷 >> 综合 >> linux最常用的20个命令
  详细解决方案

linux最常用的20个命令

热度:14   发布时间:2024-02-12 12:13:31.0

cd命令:

它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。

cd [目录名]cd /root/Docements 切换到目录/root/Docements
cd ~  进入用户主目录;
cd -  返回进入此目录之前所在的目录;
cd ..  返回上级目录(若当前目录为"/",则执行完后还在"/";".."为上级目录的意思);
cd ../..  返回上两级目录;
cd !$  把上个命令的参数作为cd参数使用。

ls命令:

这是一个非常有用的查看文件与目录的命令,list之意,它的参数非常多,下面就列出一些我常用的参数吧

ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
ls -R 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来注:参数可结合使用 例如:ls -lR 

grep命令:

全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

在文件中搜索一个单词,命令会返回一个包含“match_pattern”的文本行:
grep match_pattern file_name 
grep "match_pattern" file_name在多个文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...

find命令:

find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

find pathname -参数 [-print -exec -ok ...]find -atime -2  查找 48 小时内修改过的文件
find ./ -name '*.log'  在当前目录查找 以 .log 结尾的文件。 . 代表当前目录
find /opt -perm 777  查找 /opt 目录下 权限为 777 的文件
find -size +1000c  查找大于 1K 的文件find . -type f -mtime +10 -exec rm -f {} \;  在当前目录中查找更改时间在10日以前的文件并删除它们(无提醒)
find . -name '*.log' mtime +5 -ok -exec rm {} \;  当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。 按y键删除文件,按n键不删除更加具体详细内容请详细了解

cp命令:

将源文件复制至目标文件,或将多个源文件复制至目标目录。

注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!

cp file /usr/men/tmp/file1  将文件file复制到目录/usr/men/tmp下,并改名为file1
cp -r /usr/men /usr/zh  将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中
cp -i /usr/men m*.c /usr/zh  交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中cp aaa/* /bbb  复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。
cp -r aaa/* /bbb  这次依然需要按Y来确认操作,但是没有忽略子目录。
cp -r -a aaa/* /bbb  依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。
\cp -r -a aaa/* /bbb  成功,没有提示按Y、传递了目录属性、没有略过目录。

 

mv命令:

移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。

mv test.log test1.txt  将文件 test.log 重命名为 test1.txt
mv llog1.txt log2.txt log3.txt /test3  将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中
mv -i log1.txt log2.txt  将文件 log1.txt 改名为 log2.txt,如果 log2.txt 已经存在,则询问是否覆盖
mv * ../  移动当前文件夹下的所有文件到上一级目录

rm命令:

删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。

rm -i test example  交互式删除当前目录下的文件test和example(逐一询问确认删除)
rm -rf test  删除 test 子目录及子目录中所有档案删除,并且不用一一确认

ps命令:

用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用 top

ps 工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) processps -ef  显示当前所有进程环境变量及进程间关系
ps -A  显示当前所有进程
ps -aux | grep apache  与grep联用查找某进程
ps aux | grep '(cron|syslog)'  找出与 cron 与 syslog 这两个服务有关的 PID 号码

kill命令:

用来删除执行中的程序或工作。

-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a  当处理当前进程时,不限制命令名和进程号的对应关系
-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s  指定发送信号
-u  指定用户信号:
HUP     1    终端断线
INT     2    中断(同 Ctrl + C)
QUIT    3    退出(同 Ctrl + \)
TERM   15    终止
KILL    9    强制终止
CONT   18    继续(与STOP相反, fg/bg命令)
STOP   19    暂停(同 Ctrl + Z)kill -9 63552  强制终止进程号为63552的进程
kill -9 $(ps -ef | grep pro1)  先使用ps查找进程pro1,然后用kill杀掉

killall命令:

killall 使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。

killall vi  杀死所有名为vi的进程

file命令:

用来探测给定文件的类型。

[root@localhost ~]# file install.log
install.log: UTF-8 Unicode text[root@localhost ~]# file -b install.log      <== 不显示文件名称
UTF-8 Unicode text[root@localhost ~]# file -i install.log      <== 显示MIME类别。
install.log: text/plain; charset=utf-8[root@localhost ~]# file -b -i install.log
text/plain; charset=utf-8

tar命令:

用来压缩和解压文件。

压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称  
查询:tar -jtv -f filename.tar.bz2  
解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录  

cat命令:

三大功能:一次显示整个文件;从键盘创建一个文件,只能创建新文件,不能编辑已有文件;将几个文件合并为一个文件。

cat filename  一次显示整个文件
cat > filename  从键盘创建一个文件,只能创建新文件,不能编辑已有文件
cat file1 file2 > file  将几个文件合并为一个文件cat filename | less # 查看filename文件中的内容,一页页地查看  

chgrp命令:

用来改变文件或目录所属的用户组。

chgrp -R mengxin /usr/meng  将/usr/meng及其子目录下的所有文件的用户组改为mengxin

chown命令:

该命令用于改变文件的所有者,与chgrp命令的使用方法相同,只是修改的文件属性不同。

chown -c mail:mail log2012.log  改变拥有者和群组 并显示改变信息
chown -c :mail t.log  改变文件群组
chown -cR mail: test/  改变文件夹及子文件目录属主及属组为 mail

chmod命令:

该命令用于改变文件的权限。

u User,即文件或目录的拥有者;
g Group,即文件或目录的所属群组;
o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
a All,即全部的用户,包含拥有者,所属群组以及其他用户;
r 读取权限,数字代号为“4”;
w 写入权限,数字代号为“2”;
x 执行或切换权限,数字代号为“1”;
- 不具任何权限,数字代号为“0”;
s 特殊功能说明:变更文件或目录的权限。chmod 0755 file  把file的文件权限改变为-rxwr-xr-x  
chmod g+w file  向file的文件权限中加入用户组可写权限  

vim命令:

:e file –关闭当前编辑的文件,并开启新的文件。 如果对当前文件的修改未保存,vi会警告。
:e! file –放弃对当前文件的修改,编辑新的文件。
:e+file – 开始新的文件,并从文件尾开始编辑。
:e+n file – 开始新的文件,并从第n行开始编辑。
:enew –编译一个未命名的新文档。(CTRL-W n)
:e – 重新加载当前文档。
:e! – 重新加载当前文档,并丢弃已做的改动。
:e#或ctrl+^ – 回到刚才编辑的文件,很实用。
:f或ctrl+g – 显示文档名,是否修改,和光标位置。
:f filename – 改变编辑的文件名,这时再保存相当于另存为。
gf – 打开以光标所在字符串为文件名的文件。
:w – 保存修改。
:n1,n2w filename – 选择性保存从某n1行到另n2行的内容。
:wq – 保存并退出。
ZZ – 保存并退出。
:x – 保存并退出。
:q[uit] ——退出当前窗口。(CTRL-W q或CTRL-W CTRL-Q)
:saveas newfilename – 另存为
:browse e – 会打开一个文件浏览器让你选择要编辑的文件。 如果是终端中,则会打开netrw的文件浏览窗口; 如果是gvim,则会打开一个图形界面的浏览窗口。 实际上:browse后可以跟任何编辑文档的命令,如sp等。 用browse打开的起始目录可以由browsedir来设置:
:set browsedir=last – 用上次访问过的目录(默认);
:set browsedir=buffer – 用当前文件所在目录;
:set browsedir=current – 用当前工作目录;
:Sex – 水平分割一个窗口,浏览文件系统;
:Vex – 垂直分割一个窗口,浏览文件系统;

gcc命令:

使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器

gcc -c testfun.c    #将testfun.c编译成testfun.o
gcc -c test.c       #将test.c编译成test.o
gcc -o testfun.o test.o -o test    #将testfun.o和test.o链接成test

time命令:

该命令用于测算一个命令(即程序)的执行时间。

time ./process  
time ps aux