linux基本命令
Linux 对我们的生活产生了巨大的冲击。至少你的安卓手机使用的就是 Linux 核心。尽管如此,在第一次开始使用 Linux 时你还是会感到难以下手。因为在 Linux 中,通常需要使用终端命令来取代 Windows 系统中的点击启动图标操作。但是不必担心,这里我们会介绍 10 个 Linux 基本命令来帮助你开启 Linux 神秘之旅。
帮助新手走出第一步的 10 个 Linux 基本命令
当我们谈论 Linux 命令时,实质上是在谈论 Linux 系统本身。这短短的 10 个 Linux 基本命令不会让你变成天才或者 Linux 专家,但是能帮助你轻松开始 Linux 之旅。使用这些基本命令会帮助新手们完成 Linux 的日常任务,由于它们的使用频率如此至高,所以我更乐意称他们为 Linux 命令之王!
让我们开始学习这 10 条 Linux 基本命令吧。
1. sudo
这条命令的意思是“以超级用户的身份执行”,是 SuperUserDo 的简写,它是新手将要用到的最重要的一条 Linux 命令。当一条单行命令需要 root 权限的时候,sudo命令就派上用场了。你可以在每一条需要 root 权限的命令前都加上sudo。
$ sudo su
2. ls
跟其他人一样,你肯定也经常想看看目录下都有些什么东西。使用列表命令,终端会把当前工作目录下所有的文件以及文件夹展示给你。比如说,我当前处在 /home 文件夹中,我想看看 /home 文件夹中都有哪些文件和目录。
/home$ ls
在 /home 中执行ls命令将会返回类似下面的内容:
imad lost+found
3. cd
变更目录命令(cd)是终端中总会被用到的主要命令。它是最常用到的 Linux 基本命令之一。此命令使用非常简单,当你打算从当前目录跳转至某个文件夹时,只需要将文件夹键入此命令之后即可。如果你想跳转至上层目录,只需要在此命令之后键入两个点 (..) 就可以了。 举个例子,我现在处在 /home 目录中,我想移动到 /home 目录中的 usr 文件夹下,可以通过以下命令来完成操作。
/home $ cd usr
/home/usr $
4. mkdir
只是可以切换目录还是不够完美。有时候你会想要新建一个文件夹或子文件夹。此时可以使用 mkdir 命令来完成操作。使用方法很简单,只需要把新的文件夹名跟在 mkdir 命令之后就好了。
~$ mkdir folderName
5. cp
拷贝-粘贴copy-and-paste是我们组织文件需要用到的重要命令。使用 cp命令可以帮助你在终端当中完成拷贝-粘贴操作。首先确定你想要拷贝的文件,然后键入打算粘贴此文件的目标位置。
$ cp src des
注意:如果目标目录对新建文件需要 root 权限时,你可以使用 sudo命令来完成文件拷贝操作。
6. rm
rm 命令可以帮助你移除文件甚至目录。如果不希望每删除一个文件都提示确认一次,可以用-f参数来强制执行。也可以使用-r参数来递归的移除文件夹。
$ rm myfile.txt
7. apt-get
这个命令会依据发行版的不同而有所区别。在基于 Debian 的发行版中,我们拥有 Advanced Packaging Tool(APT)包管理工具来安装、移除和升级包。apt-get 命令会帮助你安装需要在 Linux 系统中运行的软件。它是一个功能强大的命令行,可以用来帮助你对软件执行安装、升级和移除操作。
在其他发行版中,例如 Fedora、Centos,都各自不同的包管理工具。Fedora 之前使用的是 yum,不过现在 dnf 成了它默认的包管理工具。
$ sudo apt-get update
$ sudo dnf update
8. grep
当你需要查找一个文件,但是又忘记了它具体的位置和路径时,grep命令会帮助你解决这个难题。你可以提供文件的关键字,使用grep命令来查找到它。
$ grep user /etc/passwd
9. cat
作为一个用户,你应该会经常需要浏览脚本内的文本或者代码。cat命令是 Linux 系统的基本命令之一,它的用途就是将文件的内容展示给你。
$ cat CMakeLists.txt
10. poweroff
最后一个命令是 poweroff。有时你需要直接在终端中执行关机操作。此命令可以完成这个任务。由于关机操作需要 root 权限,所以别忘了在此命令之前添加sudo。
$ sudo poweroff
总结
如我在文章开始所言,这 10 条命令并不会让你立即成为一个 Linux 大拿,但它们会让你在初期快速上手 Linux。以这些命令为基础,给自己设置一个目标,每天学习一到三条命令,这就是此文的目的所在。
linux查找文件内容命令
搜索、查找文件当中的内容,一般最常用的是grep命令,另外还有egrep, vi命令也能搜索文件里面内容
1:搜索某个文件里面是否包含字符串,使用grep “search content“ filename1, 例如
$ grep ORA alert_gsp.log
$ grep “ORA“ alert_gsp.log
例如我们需要搜索、查找utlspadv.sql文件中包含ORA的字符内容
[oracle@DB-Server admin]$ grep “ORA“ utlspadv.sql
-- ORA-XXXXX: Monitoring already started. If for example you want
-- ORA-20111:
-- ORA-20112:
-- ORA-20113: ’no active monitoring job found’
-- ORA-20113: ’no active monitoring job found’
-- 0 |《PS》 =》DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 0 0 2 99.3% 0% 0.7% ““
-- |《PR》 DBS1.REGRESS.RDBMS.DEV.US.ORACLE.COM=》 100% 0% 0% ““ |《PR》 ...
-- =》DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 92 7 99.3% 0% 0.7% ““ |《PR》 ...
-- |《C》 CAPTURE_USER1=》DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 2 0 0 0.E+00
-- |《C》 CAPTURE_USER1=》DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM
-- ORA-20111:
-- ORA-20112:
-- ORA-20100:
-- ORA-20113: ’no active monitoring job found’
-- ORA-20113: ’no active monitoring job found’
[oracle@DB-Server admin]$
-linux基本命令
如上所示,这个是一个模糊匹配,其实我是想要查看ORA这类错误,那么我要过滤掉哪一些没有用的,搜索的内容修改一下即可(当然也可以使用特殊参数,后面有讲述),如下所示。
[oracle@DB-Server admin]$ grep “ORA-“ utlspadv.sql
-- ORA-XXXXX: Monitoring already started. If for example you want
-- ORA-20111:
-- ORA-20112:
-- ORA-20113: ’no active monitoring job found’
-- ORA-20113: ’no active monitoring job found’
-- ORA-20111:
-- ORA-20112:
-- ORA-20100:
-- ORA-20113: ’no active monitoring job found’
-- ORA-20113: ’no active monitoring job found’
[oracle@DB-Server admin]$
-命令
2: 如果你想搜索多个文件是否包含某个字符串,可以使用下面方式
grep “search content“ filename1 filename2.... filenamen
grep “search content“ *.sql
例如我想查看当前目录下,哪些sql脚本包含视图v$temp_space_header(注意:搜索的内容如果包含特殊字符时,必须进行转义处理,如下所示)
[oracle@DB-Server admin]$ grep “v\$temp_space_header“ *.sql
catspacd.sql:drop public synonym v$temp_space_header;
catspacd.sql:drop public synonym gv$temp_space_header;
catspace.sql:create or replace view v_$temp_space_header as select * from v$temp_space_header;
catspace.sql:create or replace public synonym v$temp_space_header for v_$temp_space_header;
catspace.sql:create or replace view gv_$temp_space_header as select * from gv$temp_space_header;
catspace.sql:create or replace public synonym gv$temp_space_header
catspace.sql: FROM gv$temp_space_header
[oracle@DB-Server admin]$
-linux基本命令
3:如果需要显示搜索文本在文件中的行数,可以使用参数-n
[oracle@DB-Server admin]$ grep -n “v\$temp_space_header“ *.sql
catspacd.sql:68:drop public synonym v$temp_space_header;
catspacd.sql:71:drop public synonym gv$temp_space_header;
catspace.sql:1952:create or replace view v_$temp_space_header as select * from v$temp_space_header;
catspace.sql:1953:create or replace public synonym v$temp_space_header for v_$temp_space_header;
catspace.sql:1956:create or replace view gv_$temp_space_header as select * from gv$temp_space_header;
catspace.sql:1957:create or replace public synonym gv$temp_space_header
catspace.sql:2357: FROM gv$temp_space_header
[oracle@DB-Server admin]$
-命令
4: 如果搜索时需要忽略大小写问题,可以使用参数-i
[oracle@DB-Server admin]$ grep “V\$TEMP_SPACE_HEADER“ *.sql
[oracle@DB-Server admin]$ grep -i “V\$TEMP_SPACE_HEADER“ *.sql
catspacd.sql:drop public synonym v$temp_space_header;
catspacd.sql:drop public synonym gv$temp_space_header;
catspace.sql:create or replace view v_$temp_space_header as select * from v$temp_space_header;
catspace.sql:create or replace public synonym v$temp_space_header for v_$temp_space_header;
catspace.sql:create or replace view gv_$temp_space_header as select * from gv$temp_space_header;
catspace.sql:create or replace public synonym gv$temp_space_header
catspace.sql: FROM gv$temp_space_header
[oracle@DB-Server admin]$
-linux基本命令
另外,例如检查安装的MySQL组件
[root@DB-Server init.d]# rpm -qa | grep -i mysql
MySQL-devel-5.6.23-1.linux_glibc2.5
MySQL-client-5.6.23-1.linux_glibc2.5
MySQL-server-5.6.23-1.linux_glibc2.5
-命令
5:从文件内容查找不匹配指定字符串的行:
$ grep –v “被查找的字符串“ 文件名
例如查找某些进程时,我们不想显示包含命令grep ora_mmon的进程,如下所示
[oracle@DB-Server admin]$ ps -ef | grep ora_mmon
oracle 16675 16220 0 00:09 pts/1 00:00:00 grep ora_mmon
oracle 21412 1 0 Aug22 ? 00:00:07 ora_mmon_gsp
[oracle@DB-Server admin]$ ps -ef | grep ora_mmon | grep -v grep
oracle 21412 1 0 Aug22 ? 00:00:07 ora_mmon_gsp
[oracle@DB-Server admin]$
-linux基本命令
6:搜索、查找匹配的行数:
$ grep -c “被查找的字符串“ 文件名
[oracle@DB-Server admin]$
[oracle@DB-Server admin]$ grep “v\$temp_space_header“ *.sql
catspacd.sql:drop public synonym v$temp_space_header;
catspacd.sql:drop public synonym gv$temp_space_header;
catspace.sql:create or replace view v_$temp_space_header as select * from v$temp_space_header;
catspace.sql:create or replace public synonym v$temp_space_header for v_$temp_space_header;
catspace.sql:create or replace view gv_$temp_space_header as select * from gv$temp_space_header;
catspace.sql:create or replace public synonym gv$temp_space_header
catspace.sql: FROM gv$temp_space_header
[oracle@DB-Server admin]$ grep -c “v\$temp_space_header“ catspacd.sql
2
[oracle@DB-Server admin]$ grep -c “v\$temp_space_header“ catspace.sql
5
[oracle@DB-Server admin]$
-命令
7:有些场景,我们并不知道文件类型、或那些文件包含有我们需要搜索的字符串,那么可以递归搜索某个目录以及子目录下的所有文件
[oracle@DB-Server ~]$ grep -r “v\$temp_space_header“ /u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/-linux基本命令
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace view v_$temp_space_header as select * from v$temp_space_header;-命令
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace public synonym v$temp_space_header for v_$temp_space_header;-linux基本命令
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace view gv_$temp_space_header as select * from gv$temp_space_header;-命令
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace public synonym gv$temp_space_header-linux基本命令
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspace.sql: FROM gv$temp_space_header
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspacd.sql:drop public synonym v$temp_space_header;-命令
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspacd.sql:drop public synonym gv$temp_space_header;-linux基本命令
[oracle@DB-Server ~]$
8:如果我们只想获取那些文件包含搜索的内容,那么可以使用下命令
[oracle@DB-Server ~]$ grep -H -r “v\$temp_space_header“ /u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1-命令
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspacd.sql
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspacd.sql
[oracle@DB-Server ~]$ grep -H -r “v\$temp_space_header“ /u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1 | uniq-linux基本命令
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/product/11.1.0/dbhome_1/rdbms/admin/catspacd.sql
[oracle@DB-Server ~]$
9:如果只想获取和整个搜索字符匹配的内容,那么可以使用参数w
你可以对比一下两者的区别
[oracle@DB-Server admin]$ grep -w “ORA“ utlspadv.sql
-- ORA-XXXXX: Monitoring already started. If for example you want
-- ORA-20111:
-- ORA-20112:
-- ORA-20113: ’no active monitoring job found’
-- ORA-20113: ’no active monitoring job found’
-- ORA-20111:
-- ORA-20112:
-- ORA-20100:
-- ORA-20113: ’no active monitoring job found’
-- ORA-20113: ’no active monitoring job found’
[oracle@DB-Server admin]$ grep “ORA“ utlspadv.sql
-- ORA-XXXXX: Monitoring already started. If for example you want
-- ORA-20111:
-- ORA-20112:
-- ORA-20113: ’no active monitoring job found’
-- ORA-20113: ’no active monitoring job found’
-- 0 |《PS》 =》DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 0 0 2 99.3% 0% 0.7% ““
-- |《PR》 DBS1.REGRESS.RDBMS.DEV.US.ORACLE.COM=》 100% 0% 0% ““ |《PR》 ...
-- =》DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 92 7 99.3% 0% 0.7% ““ |《PR》 ...
-- |《C》 CAPTURE_USER1=》DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 2 0 0 0.E+00
-- |《C》 CAPTURE_USER1=》DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM
-- ORA-20111:
-- ORA-20112:
-- ORA-20100:
-- ORA-20113: ’no active monitoring job found’
-- ORA-20113: ’no active monitoring job found’
[oracle@DB-Server admin]$
-命令
10: grep命令结合find命令搜索
[oracle@DB-Server admin]$ find . -name ’*.sql’ -exec grep -i ’v\$temp_space_header’ {} \; -print
create or replace view v_$temp_space_header as select * from v$temp_space_header;
create or replace public synonym v$temp_space_header for v_$temp_space_header;
create or replace view gv_$temp_space_header as select * from gv$temp_space_header;
create or replace public synonym gv$temp_space_header
FROM gv$temp_space_header
./catspace.sql
drop public synonym v$temp_space_header;
drop public synonym gv$temp_space_header;
./catspacd.sql
[oracle@DB-Server admin]$
-linux基本命令
11: egrep -w -R ’word1|word2’ ~/klbtmp
12: vi命令其实也能搜索文件里面的内容,只不过没有grep命令功能那么方便、强大。
Redhat linux常用的命令有哪些
《1》ls:列目录。
用法:ls或ls
dirName,参数:-a显示所有文件,-l详悉列出文件。
《2》mkdir:建目录。
用法:mkdir
dirName,参数:-p建多级目录,如:mkdir
a/b/c/d/e/f
-p
《3》mount:挂载分区或镜像文件(.iso,.img)文件。
用法:
a.磁盘分区:mount
deviceName
mountPoint
-o
options,其中deviceName是磁盘分区的设备名,比如/dev/hda1,/dev/cdrom,/dev/fd0,mountPoint是挂载点,它是一个目录,options是参数,如果分区是linux分区,一般不用-o
options,如果是windows分区那options可以是iocharset=cp936,这样windows分区里的中文文件名就能显示出来了。用例:比如/dev/hda5是linux分区,我要把它挂到目录a上(如没目录a那就先mkdir
a),mount
/dev/hda5
a,这样目录a里的东西就是分区hda5里的东西了,比如hda1是windows分区,要把它挂到b上,mount
/dev/hda1
b
-o
iocharset=cp936。
b.镜像文件:mount
fileName
mountPoint
-o
loop,fileName是镜像文件名(*.iso,*.img),其它的不用说了,跟上面一样。用例:如我有一个a.iso光盘镜像文件,mount
a.iso
a
-o
loop,这样进入目录a你就能浏览a.iso的内容了,*.img文件的用法一样。
《4》find:查找文件。
用法:find
inDir
-name
filename,inDir是你要在哪个目录找,filename是你要找的文件名(可以用通配符),用通配符时filename做好用单引号引起来,否则有时会出错,用例:find
.
-name
test*,在当前目录查找以test开头的文件。
《5》grep:在文件里查找指定的字符串。
用法:grep
string
filename,在filename(可用通配符)里查找string(最好用双引号引起来)。参数:-r在所有子目录里的filename里找。用例:grep
hello
*.c
-r在当前目录下(包括子目录)的所有.c文件里查找hello。
《5》vi:编辑器。不用说,用linux的话,这个东西一定要会用。
用法:(只能简单说一下),vi
filename。filename就是你要编辑的文本文件。用了执行vi
filename后,你可能会发现你无法编辑文本内容,不要着急,这是因为vi还没进入编辑状态,按a或i就可以进入编辑状态了,进入编辑状态后你就可以编辑文本了。要退出编辑状态按Esc键就可以了。以下操作均要在非编辑状态下。查找文本:输入/和你要查找的文本并回车。退出:
输入:
和q并回车,如果你修改了文本,那么你要用:q!回车才能退出。保存:输入:
w回车,如果是只读文件要用:
w!。保存退出:输入:
wq回车,如果是只读就:
wq!回车。取消:
按u就可以了,按一次就取消一步,可按多次取消多步。复制粘贴一行文本:把光标移到要复制的行上的任何地方,按yy(就是连按两次y),把光标移到要粘贴地方的上一行,按p,刚才那行文本就会被插入到光标所在行的下一行,原来光标所在行后面所有行会自动下移一行。复制粘贴多行文本:跟复制一行差不多,只是yy改成先输入要复制的行数紧接着按yy,后面的操作一样。把光标移到指定行:输入:和行号并回车,比如移到123行:123回车,移到结尾回车。
-命令