Linux下的基本操作命令集锦

对于Linux下的开发人员来说,除了编写代码之外,也要熟练掌握Linux操作系统的一些基本操作。 2016-12-29 12:42:45 Linux操作命令 MySQL数据库移植总结 MySQL是一种关联数据库管理系统,它将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 2016-12-29 12:24:33 MySQL数据库移植 这些方法助力Python开发者提高效率 在这篇文章,想强调的是一些Python可以节约时间并最大限度地提高生产力的方面。在做准备时,我咨询了几个 Pythonists,他们最节省时间的技巧是什么?答案在这里…

对于Linux下的开发人员来说,除了编写代码之外,也要熟练掌握Linux操作系统的一些基本操作。

[[180182]]

对于Linux下的开发人员来说,除了编写代码之外,也要熟练掌握Linux操作系统的一些基本操作。很多开发人员可能会有这样的经历:有很多非常简单的操作命令长期不用就忘掉了,等需要用到的时候又要到处去找,甚至去问周围的同事。在尴尬之余,我们也怪自己没有将那些简单而有用的操作命令记录下来。

本文汇总了我在使用Linux的过程中所使用过的一些基本操作,可供相关的开发人员参考。本文中的操作命令虽然比较简单,但很实用,相信对大家会有所帮助的。

这些基本的操作命令如下:

1.Linux下,如何从当前普通用户切换到root用户?如何从root用户切换到普通用户?如何从当前普通用户切换到其他普通用户?

1)从当前普通用户切换到root用户可使用su命令,并需要输入用户名(root)和密码。操作示例如下:

  1. zhou:~>su-root
  2. Password:
  3. root:~

其中,输入的密码是不会显示出来的。

2)从root用户切换到普通用户也使用su命令,只需要输入用户名。操作示例如下:

  1. root:~su-zhou
  2. zhou:~>

3)从当前普通用户切换到其他普通用户也使用su命令,并需要输入用户名和密码。操作示例如下:

  1. zhou~>su-zhao
  2. Password:
  3. zhao:~>

其中,输入的密码是不会显示出来的。

2.如何在Linux下的大量文件中搜索特定的文本内容?

可使用grep命令来实现特定文本内容的搜索,具体使用示例如下:

(1)在某个文件中搜索特定的文本内容,例如在Test.txt中搜索“Hello”,可使用如下两个命令:

  1. 1)grep“Hello”Test.txt
  2. 2)catTest.txt|grep“Hello”

(2)在某一系列文件中搜索特定的文本内容,例如在Test.txt、Test1.txt、Test2.txt…中搜索“Hello”,可使用如下两个命令:

  1. 1)grep“Hello”Test*
  2. 2)catTest*|grep“Hello”

其中,星号(*)为通配符。

(3)在某一个或一系列文件中搜索特定的文本内容出现的次数,例如在Test.txt、Test1.txt、Test2.txt…中搜索“Hello”的出现次数,可使用如下两个命令:

  1. 1)grep“Hello”Test*|wc-l
  2. 2)catTest*|grep“Hello”|wc-l

其中,星号(*)为通配符。

3.如何快速统计在Linux下的同类文件(相同前缀或后缀)的个数?

可使用“ls -ltr 文件名 | wc -l”命令,操作示例如下:

  1. zhou:~>ls-ltrTest*|wc-l
  2. 11

其中,星号(*)为通配符。

4.如何在Linux下对文件进行压缩和解压缩?

可使用tar命令对文件进行压缩和解压缩,具体操作示例如下:

1)如果想把test.txt文件压缩为test.tar,则可执行如下命令:

  1. tar-zcvftest.tartest.txt

2)如果想把test.tar解压缩,则可执行如下命令:

  1. tar-zxvftest.tar

5.如何在Linux下使用命令登录到MySQL、Oracle和Sybase?

(1)登录到MySQL使用如下命令:

mysql -u用户名 -p’密码’ -h网络IP地址 -P端口

如:

  1. mysql-uroot-p’root’-h10.10.10.10-P3306

(2)登录到Oracle使用如下命令:

sqlplus 用户名/’密码’@数据库服务名

如:

  1. sqlplususername/’userpwd’@db10_10_10_10

注意:登录Oracle之前需要到Oracle目录下的tnsnames.ora文件里面配置数据库服务名,如下所示:

  1. db10_10_10_10=
  2. (DESCRIPTION=
  3. (ADDRESS_LIST=
  4. (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.10)(PORT=1521))
  5. )
  6. (CONNECT_DATA=
  7. (SERVER=DEDICATED)
  8. (SERVICE_NAME=db)
  9. )
  10. )

(3)登录到Sybase使用如下命令:

isql -U用户名 -P密码 -S数据库服务名

如:

  1. isql-Uusername-Puserpwd-Sdb10_10_10_10

6.如何在Linux下使用命令启动Oracle?

首先登录到Oracle用户下,然后按照如下步骤操作:

(1)打开Oracle监听

  1. lsnrctlstart

(2)进入sqlplus

  1. sqlplus/nolog

(3)使用sysdba角色登录sqlplus

  1. SQL>conn/assysdba

(4)启动数据库

  1. SQL>startup

经过上面的四个步骤,Oracle数据库就可以正常启动并使用了。

启动之后,可以用这个命令查看启动是否正常:lsnrctl status。

如果要关闭数据库,可在第(4)步执行“shutdown”命令,如果要强制关闭,则使用“shutdown abort”命令。

在Oracle用户下直接运行SQL脚本,可使用如下命令:

  1. sqlplususername/’userpwd’@db10_10_10_10@test.sql

7.如何在Linux下使用命令启动Sybase?

首先登录到Sybase用户下,然后按照如下步骤操作:

(1)转到install目录下

可使用cd命令,如本人使用的是15.0版本的Sybase,则需要执行如下命令:

  1. cd/home/sybase/ASE-15_0/install

(2)使用“startserver -f RUN_SYBASE”命令启动Sybase

注意,“RUN_SYBASE”是一个shell脚本文件,用于启动Sybase,不同的Sybase安装版本中的文件名会有所区别。

在Sybase用户下直接运行SQL脚本,可使用如下命令:

  1. isql-Uusername-Puserpwd-Sdb10_10_10_10-itest.sql

8.如何在Linux下查看当前系统的时间?

直接使用“date”命令即可,如下所示:

  1. ~date
  2. ThuMay511:10:41CST2016

9.如何在Linux下添加和删除用户?

首先切换到root用户下,然后按照如下示例执行添加用户的操作:

  1. ~useradd-d/home/zhou-mzhou
  2. ~passwdzhou
  3. Changingpasswordforzhou.
  4. ~Newpassword:
  5. ~Re-enternewpassword:
  6. ~Passwordchanged

删除用户时,只需在root用户下执行如下操作即可:

  1. userdel-rzhou

10.当Linux下有程序崩溃的时候,如何修改操作系统配置以产生core文件?

当Linux下程序异常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。

通过如下两个步骤可以让系统将core文件产生出来:

(1)在当前用户下执行“ulimit -a”命令以查看程序异常崩溃时是否会产生core文件。示例如下:

  1. ~ulimit-a
  2. corefilesize(blocks,-c)0
  3. datasegsize(kbytes,-d)unlimited
  4. schedulingpriority(-e)0
  5. filesize(blocks,-f)unlimited
  6. pendingsignals(-i)46741
  7. maxlockedmemory(kbytes,-l)64
  8. maxmemorysize(kbytes,-m)5095324
  9. openfiles(-n)1024
  10. pipesize(512bytes,-p)8
  11. POSIXmessagequeues(bytes,-q)819200
  12. real-timepriority(-r)0
  13. stacksize(kbytes,-s)8192
  14. cputime(seconds,-t)unlimited
  15. maxuserprocesses(-u)46741
  16. virtualmemory(kbytes,-v)4795600
  17. filelocks(-x)unlimited

(2)“core file size”为0表示不会产生core文件,可用“ulimit -c filesize”命令设置core文件大小。示例如下:

  1. ~ulimit-c1000000
  2. ~ulimit-a
  3. corefilesize(blocks,-c)1000000
  4. datasegsize(kbytes,-d)unlimited
  5. schedulingpriority(-e)0
  6. filesize(blocks,-f)unlimited
  7. pendingsignals(-i)46741
  8. maxlockedmemory(kbytes,-l)64
  9. maxmemorysize(kbytes,-m)5095324
  10. openfiles(-n)1024
  11. pipesize(512bytes,-p)8
  12. POSIXmessagequeues(bytes,-q)819200
  13. real-timepriority(-r)0
  14. stacksize(kbytes,-s)8192
  15. cputime(seconds,-t)unlimited
  16. maxuserprocesses(-u)46741
  17. virtualmemory(kbytes,-v)4795600
  18. filelocks(-x)unlimited

11.当Linux下使用VI编辑文件时,如何快速跳转到文件的第一行和最后一行?

(1)要跳转到文件的第一行,可以使用如下命令:

1)gg

2):0 (注意:冒号是不可少的)

3):1 (注意:冒号是不可少的)

(2)要跳转到文件的最后一行,可以使用如下命令:

1):$ (注意:冒号是不可少的)

2)Shift + G (即Shift键和G键的组合)

12.如何查看Linux下的文件中的重复记录?

(1)如果是单个文件,可使用如下命令:

cat 文件名 | uniq -d

如:

  1. cattest.txt|uniq-d

(2)如果是多个文件(相同前缀或后缀),可使用如下命令:

cat (文件前缀)或(文件后缀) | uniq -d

如:

  1. cattest*|uniq-d

其中,星号(*)为通配符。

13.如何统计Linux下的文件中的记录行数和字节数?

(1)对于单个文件中的记录行数和字节数的统计,可使用如下命令:

1)统计记录行数

wc -l 文件名

如:

  1. ~wc-lTestFile.txt
  2. 5TestFile.txt

2)统计字节数

wc -c 文件名

如:

  1. ~wc-cTestFile.txt
  2. 48TestFile.txt

(2)对于多个文件中的记录行数和字节数的统计,可使用如下命令:

1)统计记录行数

wc -l (文件前缀)或(文件后缀)

如:

  1. ~wc-lTestFile*
  2. 2TestFile1.txt
  3. 5TestFile.txt
  4. 7total

2)统计字节数

wc -c (文件前缀)或(文件后缀)

如:

  1. ~wc-cTestFile*
  2. 18TestFile1.txt
  3. 48TestFile.txt
  4. 66total

其中,星号(*)为通配符。

14.如何查看Linux下的某个目录下的文件总数?

可使用如下命令:

ls -1 | wc -l

如:

  1. ~ls-1|wc-l
  2. 41

15.如何在Linux下使用FTP功能?

第一步,启用系统的FTP功能

在root用户下执行如下命令:

  1. servicevsftpdstart

第二步,执行ftp命令,连接到对端IP

  1. ~ftp10.10.10.10
  2. Connectedto10.10.10.10.
  3. 220(vsFTPd2.0.7)
  4. Name(10.10.10.10:zhou):

第三步,输入用户名和密码

  1. ~Name(10.10.10.10:zhou):zhou
  2. 331Pleasespecifythepassword.
  3. ~Password:
  4. 230Loginsuccessful.
  5. RemotesystemtypeisUNIX.
  6. Usingbinarymodetotransferfiles.
  7. ftp>

通过以上三步,就已经通过FTP的方式连接到对端机器上了。

如果还要获取某个文件,可继续执行第四步操作。

第四步,获取某个文件

  1. ftp>gettest.txt
  2. local:test.txtremote:test.txt
  3. 229EnteringExtendedPassiveMode(|||30090|)
  4. 150OpeningBINARYmodedataconnectionfor166servicemain.sh(698bytes).
  5. 100%|*******************************************************************************|6982.28MB/s00:00ETA
  6. 226FilesendOK.
  7. 698bytesreceivedin00:00(64.39KB/s)
  8. ftp>

如果要停止FTP,则继续执行第五步操作。

第五步,停止FTP

  1. ftp>bye
  2. 221Goodbye.

16.如何在Linux下使用GCC将C代码文件编译为可执行的文件?

假设现有HelloWorld.c文件,可以使用如下命令(命令中的gcc均可替换为cc)将其编译为可执行的文件:

(1)生成a.out可执行文件

第一步,执行:gcc -c HelloWorld.c

第二步,执行:gcc HelloWorld.o

即可生成a.out文件,然后执行./a.out命令,即可看到程序运行结果。

(2)生成HelloWorld可执行文件

第一步,执行:gcc -c HelloWorld.c

第二步,执行:gcc -o HelloWorld HelloWorld.o

即可生成HelloWorld文件,然后执行./HelloWorld或HelloWorld命令,即可看到程序运行结果。

(3)生成HelloWorld可执行文件

直接执行:gcc -o HelloWorld HelloWorld.c

即可生成HelloWorld文件,然后执行./HelloWorld或HelloWorld命令,即可看到程序运行结果。

(4)生成带调试信息的HelloWorld可执行文件

直接执行:gcc -g -o HelloWorld HelloWorld.c 或 gcc -g HelloWorld.c -o HelloWorld

即可生成HelloWorld文件,然后执行./HelloWorld或HelloWorld命令,即可看到程序运行结果。

17.如何查看Linux下某进程的详细信息?

直接使用“ps -ef | grep 进程(或程序)名”即可。

例如,要想查看正在运行的“HelloWorld”进程的详细信息,可使用如下命令:

  1. ps-ef|grepHelloWorld

命令执行结果如下:

  1. ~ps-ef|grepHelloWorld
  2. 100974371009:04?00:00:21HelloWorld

其中,第二个参数(即7437)为PID。

18.如何查看Linux下某个文件的类型及编码格式等?

直接使用“file 文件名”命令即可,使用示例如下:

  1. ~fileHelloWorld.c
  2. HelloWorld.c:ASCIICprogramtext,withCRLFlineterminators
  3. ~filea.out
  4. a.out:ELF32-bitLSBexecutable,Intel80386,version1(SYSV),forGNU/Linux2.2.5,dynamicallylinked(usessharedlibs),notstripped

可以看到,HelloWorld.c文件是ASCII格式的C文件,而a.out是可执行文件。

19.如何查看Linux下某个可执行文件所依赖的库文件?

直接使用“ldd 文件名”命令即可,使用示例如下:

  1. ~ldda.out
  2. linux-gate.so.1=>(0xffffe000)
  3. libc.so.6=>/lib/tls/libc.so.6(0x40032000)
  4. /lib/ld-linux.so.2(0x40000000)

可以看到,a.out依赖于3个库文件。

20.如何查看Linux下磁盘空间的占用情况?

直接使用“df -h”命令即可,示例如下:

  1. ~df-h
  2. FilesystemSizeUsedAvailUse%Mountedon
  3. /dev/vda377G19G54G26%/
  4. udev3.8G120K3.8G1%/dev
  5. tmpfs3.8G72K3.8G1%/dev/shm
  6. /dev/vda2190M36M145M20%/boot

21.如何将Linux下的数据库脚本文件从sh格式变为SQL格式?

假设要将example.sh文件变为example.sql,则执行步骤如下:

(1)上传sh文件

使用FTP工具(如filezilla)将example.sh文件上传到Linux的对应目录下。

(2)使用dos2unix命令修改文件格式

由于example.sh文件是在本地的Windows操作系统下编写的,因此要先转换为Linux下的格式才能使用。

dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的,其使用的格式为:dos2unix file,如果一次转换多个文件,把这些文件名直接跟在dos2unix之后(dos2unix file1 file2 file3 …)。

在这里,命令执行如下:

  1. ~dos2unixexample.sh
  2. dos2unix:convertingfileexample.shtoUNIXformat…

(3)使用chmod命令修改文件的权限

在执行了dos2unix命令之后,还是不能立马生成文件,还需要修改文件的权限。

chmod命令是Linux系统中最常用到的命令之一,用于改变文件或目录的访问权限。

在这里,命令为:chmod 777 example.sh

(4)生成SQL文件

直接运行带后缀的sh文件名,即可生成SQL文件。命令如下:

  1. ~example.sh
  2. example.sqlnoexitsandiscreatingit

表示example.sql文件之前不存在,这是第一次生成。

注意:如果example.sh文件本来就是在Linux下编辑的,那么就可以直接执行第四步操作(生成SQL文件)。

22.如何在Linux下跟踪程序所生成的日志?

程序所生成的日志文件一般以.log作为后缀,在产生日志的过程中,可以用“tail -f 日志文件名”命令来跟踪日志。示例如下:

  1. ~tail-ftest.log
  2. Hello,world
  3. Hello,world
  4. Hello,world

如果要查看具体的日志文件内容,可以使用“vi 日志文件名”命令。示例如下:

  1. ~vitest.log
  2. Hello,world
  3. Hello,world
  4. Hello,world
  5. Hello,world

可以直接使用键盘上的上下左右按钮来查看日志内容,如果要搜索文本内容,可以使用“/欲查找内容”命令(如:/world)。

23.如何在Linux下查看某个系统程序是否存在?

直接使用“whereis 程序名”命令即可,示例如下:

  1. ~whereistelnet
  2. telnet:/usr/bin/telnet/usr/share/man/man1/telnet.1.gz

24.如何将Linux下的makefile文件所编译的程序从32位移植为64位?

在将编译程序所需要的库都替换为64位的库之后,只需要直接修改makefile文件即可。

具体要修改makefile文件中的内容为:

(1)在“CF_MACRO”项值的后面添加“-D_64_BIT_ -D_REENTRANT -D_PSTAT64”。

(2)在“CFLAGS”项值的最前面添加“-fPIC”。

(3)在最后一个gcc紧接着的后面添加“-fPIC”。

25.如何使用命令对Linux下的文件和目录进行备份?

直接使用cp命令即可,具体如下:

(1)文件的备份

1)直接在当前目录下备份文件,使用命令“cp 原文件名 备份文件名”。示例如下:

  1. ~ll
  2. -rw——-1zhouusers942016-05-0909:43HelloWorld.c
  3. ~cpHelloWorld.cHelloWorld1.c
  4. ~ll
  5. -rw——-1zhouusers942016-05-1215:18HelloWorld1.c
  6. -rw——-1zhouusers942016-05-0909:43HelloWorld.c

2)将文件备份到其他目录中,使用命令“cp 原文件名 备份目录/备份文件名”。示例如下:

  1. ~cpHelloWorld.c/home/zhou/zhouzx/HelloWorld1.c

(2)目录的备份

1)直接将目录备份到当前位置,使用命令“cp -rf 原目录名 备份目录名”。示例如下:

  1. ~cp-rfHelloWorldHelloWorld_bak

2)将目录备份到其他地方,使用命令“cp -rf 原目录名 备份目录/备份目录名”。示例如下:

  1. ~cp-rfHelloWorld/home/zhou/zhouzx/HelloWorld_bak

26.如何在Linux下杀死某个进程?

首先要查找到要杀死的进程的PID,之后执行“kill -9 PID”命令即可。

例如,我们要杀死名为“HelloWorld”的进程,则执行示例如下:

  1. ~ps-ef|grepHelloWorld
  2. zhou240461208:43?00:00:00HelloWorld
  3. ~kill-924046
  4. ~ps-ef|grepimpservice
  5. ~

27.如何修改Linux下某个文件所属用户和群组?

直接在root用户下执行“chown 所属用户:群组 文件名”命令即可,示例如下:

  1. ~ll
  2. -rw-r–r–1rootroot4May1617:14TestFile.txt
  3. ~chownzhou:zhaoTestFile.txt
  4. ~ll
  5. -rw-r–r–1zhouzhao4May1617:14TestFile.txt

28.如何删除Linux下的.swap文件?

先查看.swap文件的完整文件名,再将其删除。执行示例如下:

  1. ~ll-a
  2. drwx——2zhouusers1922016-05-1917:09.
  3. drwx——4zhouusers962016-05-0517:39..
  4. -rw-r–r–1zhouusers4910102016-05-1917:09Test.txt
  5. -rwxrwxrwx1zhouusers67742016-05-1917:09.Test.txt.swap
  6. ~rm.Test.txt.swap
  7. ~ll-a
  8. drwx——2zhouusers1922016-05-1917:09.
  9. drwx——4zhouusers962016-05-0517:39..
  10. -rw-r–r–1zhouusers4910102016-05-1917:09Test.txt

29.如何查看Linux操作系统的位数?

有如下两个命令可以查看Linux操作系统的位数:

  1. 1)uname-a
  2. 2)lsb_release-d

如:

1)执行第一个命令之后,结果如下:

  1. ~uname-a
  2. Linuxsuse3.0.76-0.11-default#1SMPFriJun1408:21:43UTC2013(ccab990)x86_64x86_64x86_64GNU/Linux

可以看出,操作系统是64位的(x86_64 x86_64 x86_64 GNU/Linux)。

2)执行第二个命令之后,结果如下:

  1. ~lsb_release-d
  2. Description:SUSELinuxEnterpriseServer11(x86_64)

可以看出,操作系统是64位的(x86_64)。不仅如此,还可以看出使用的操作系统是SUSE Linux的第11版。

30.如何修改Linux的系统时间?

登录或切换到root用户下,然后执行如下命令:

  1. date-s“YYYY/MM/DDHH:MI:SS”

命令示例:

  1. date-s“2016/05/0413:49:07”

31.如何在Linux下使用命令启动MySQL?

首先登录到mysql用户下,然后执行如下命令:

  1. xpecdmoni

如果要停止MySQL的运行,可执行如下命令:

  1. xsuperstop

在MySQL用户下直接运行SQL脚本,可使用如下命令:

  1. mysql-uroot-p’root’-h10.10.10.10-P3306-Ddb_name

【本文是清一色专栏作者周兆熊的原创文章,作者微信公众号:周氏逻辑(logiczhou)】

戳这里,看该作者更多好文

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月7日 17:21
下一篇 2023年5月7日 17:21

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信