Linux下的基本操作命令集锦

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 对于Linux下的开发人员来说,除了编写代码之外,也要熟练掌握Linux操作系统的一些基本操作。

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

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

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

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

zhou:~> su - root
Password:
root:~

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

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

root:~ su - zhou
zhou:~>

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

zhou~> su - zhao
Password:
zhao:~>

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


2.如何在Linux下的大量文件中搜索特定的文本内容?
可使用grep命令来实现特定文本内容的搜索,具体使用示例如下:
(1)在某个文件中搜索特定的文本内容,例如在Test.txt中搜索“Hello”,可使用如下两个命令:

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

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

1)grep “Hello” Test*
2)cat Test* | grep “Hello”

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

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

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

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


3.如何快速统计在Linux下的同类文件(相同前缀或后缀)的个数?
可使用“ls -ltr 文件名 | wc -l”命令,操作示例如下:

zhou:~> ls -ltr Test* | wc -l
11

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


4.如何在Linux下对文件进行压缩和解压缩?
可使用tar命令对文件进行压缩和解压缩,具体操作示例如下:
1)如果想把test.txt文件压缩为test.tar,则可执行如下命令:

tar -zcvf test.tar test.txt

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

tar -zxvf test.tar


5.如何在Linux下使用命令登录到MySQL、Oracle和Sybase?
(1)登录到MySQL使用如下命令:
mysql -u用户名 -p’密码’ -h网络IP地址 -P端口
如:

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

(2)登录到Oracle使用如下命令:
sqlplus 用户名/’密码’@数据库服务名
如:

sqlplus username/’userpwd’@db10_10_10_10

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

db10_10_10_10 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.10)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER=DEDICATED)
(SERVICE_NAME = db)
)
)

(3)登录到Sybase使用如下命令:
isql -U用户名 -P密码 -S数据库服务名
如:

isql -Uusername -Puserpwd -Sdb10_10_10_10


6.如何在Linux下使用命令启动Oracle?
首先登录到Oracle用户下,然后按照如下步骤操作:
(1)打开Oracle监听

lsnrctl start

(2)进入sqlplus

sqlplus /nolog

(3)使用sysdba角色登录sqlplus

SQL> conn /as sysdba

(4)启动数据库

SQL> startup

经过上面的四个步骤,Oracle数据库就可以正常启动并使用了。
启动之后,可以用这个命令查看启动是否正常:lsnrctl status。
如果要关闭数据库,可在第(4)步执行“shutdown”命令,如果要强制关闭,则使用“shutdown abort”命令。
在Oracle用户下直接运行SQL脚本,可使用如下命令:

sqlplus username/’userpwd’@db10_10_10_10 @test.sql


7.如何在Linux下使用命令启动Sybase?
首先登录到Sybase用户下,然后按照如下步骤操作:
(1)转到install目录下
可使用cd命令,如本人使用的是15.0版本的Sybase,则需要执行如下命令:

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

(2)使用“startserver -f RUN_SYBASE”命令启动Sybase
注意,“RUN_SYBASE”是一个shell脚本文件,用于启动Sybase,不同的Sybase安装版本中的文件名会有所区别。

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

isql -Uusername -Puserpwd -Sdb10_10_10_10 -itest.sql


8.如何在Linux下查看当前系统的时间?
直接使用“date”命令即可,如下所示:

~date
Thu May 5 11:10:41 CST 2016


9.如何在Linux下添加和删除用户?
首先切换到root用户下,然后按照如下示例执行添加用户的操作:

~useradd -d /home/zhou -m zhou
~passwd zhou
Changing password for zhou.
~New password:
~Re-enter new password:
~Password changed

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

userdel -r zhou


10.当Linux下有程序崩溃的时候,如何修改操作系统配置以产生core文件?
当Linux下程序异常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。
通过如下两个步骤可以让系统将core文件产生出来:
(1)在当前用户下执行“ulimit -a”命令以查看程序异常崩溃时是否会产生core文件。示例如下:

~ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 46741
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) 5095324
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 46741
virtual memory (kbytes, -v) 4795600
file locks (-x) unlimited

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

~ ulimit -c 1000000
~ ulimit -a
core file size (blocks, -c) 1000000
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 46741
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) 5095324
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 46741
virtual memory (kbytes, -v) 4795600
file locks (-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
如:

cat test.txt | uniq -d

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

cat test* | uniq -d

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


13.如何统计Linux下的文件中的记录行数和字节数?
(1)对于单个文件中的记录行数和字节数的统计,可使用如下命令:
1)统计记录行数
wc -l 文件名
如:

~ wc -l TestFile.txt
5 TestFile.txt

2)统计字节数
wc -c 文件名
如:

~ wc -c TestFile.txt
48 TestFile.txt

(2)对于多个文件中的记录行数和字节数的统计,可使用如下命令:
1)统计记录行数
wc -l (文件前缀)或(文件后缀)
如:

~ wc -l TestFile*
2 TestFile1.txt
5 TestFile.txt
7 total

2)统计字节数
wc -c (文件前缀)或(文件后缀)
如:

~ wc -c TestFile*
18 TestFile1.txt
48 TestFile.txt
66 total

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


14.如何查看Linux下的某个目录下的文件总数?
可使用如下命令:
ls -1 | wc -l
如:

~ ls -1 | wc -l
41


15.如何在Linux下使用FTP功能?
第一步,启用系统的FTP功能
在root用户下执行如下命令:

service vsftpd start

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

~ ftp 10.10.10.10
Connected to 10.10.10.10.
220 (vsFTPd 2.0.7)
Name (10.10.10.10:zhou):

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

~ Name (10.10.10.10:zhou): zhou
331 Please specify the password.
~ Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

通过以上三步,就已经通过FTP的方式连接到对端机器上了。
如果还要获取某个文件,可继续执行第四步操作。

第四步,获取某个文件

ftp> get test.txt
local: test.txt remote: test.txt
229 Entering Extended Passive Mode (|||30090|)
150 Opening BINARY mode data connection for 166servicemain.sh (698 bytes).
100% |*******************************************************************************| 698 2.28 MB/s 00:00 ETA
226 File send OK.
698 bytes received in 00:00 (64.39 KB/s)
ftp>

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

第五步,停止FTP

ftp> bye
221 Goodbye.


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”进程的详细信息,可使用如下命令:

ps -ef | grep HelloWorld

命令执行结果如下:

~ ps -ef | grep HelloWorld
1009 7437 1 0 09:04 ? 00:00:21 HelloWorld

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


18.如何查看Linux下某个文件的类型及编码格式等?
直接使用“file 文件名”命令即可,使用示例如下:

~ file HelloWorld.c
HelloWorld.c: ASCII C program text, with CRLF line terminators
~ file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped

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


19.如何查看Linux下某个可执行文件所依赖的库文件?
直接使用“ldd 文件名”命令即可,使用示例如下:

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

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


20.如何查看Linux下磁盘空间的占用情况?
直接使用“df -h”命令即可,示例如下:

~ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda3 77G 19G 54G 26% /
udev 3.8G 120K 3.8G 1% /dev
tmpfs 3.8G 72K 3.8G 1% /dev/shm
/dev/vda2 190M 36M 145M 20% /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 …)。
在这里,命令执行如下:

~ dos2unix example.sh
dos2unix: converting file example.sh to UNIX format …

(3)使用chmod命令修改文件的权限
在执行了dos2unix命令之后,还是不能立马生成文件,还需要修改文件的权限。
chmod命令是Linux系统中最常用到的命令之一,用于改变文件或目录的访问权限。
在这里,命令为:chmod 777 example.sh

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

~ example.sh
example.sql no exits and is creating it

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

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


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

~ tail -f test.log
Hello,world
Hello,world
Hello,world

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

~ vi test.log
Hello,world
Hello,world
Hello,world
Hello,world

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


23.如何在Linux下查看某个系统程序是否存在?
直接使用“whereis 程序名”命令即可,示例如下:

~ whereis telnet
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 原文件名 备份文件名”。示例如下:

~ ll
-rw——- 1 zhou users 94 2016-05-09 09:43 HelloWorld.c
~ cp HelloWorld.c HelloWorld1.c
~ ll
-rw——- 1 zhou users 94 2016-05-12 15:18 HelloWorld1.c
-rw——- 1 zhou users 94 2016-05-09 09:43 HelloWorld.c

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

~ cp HelloWorld.c /home/zhou/zhouzx/HelloWorld1.c

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

~ cp -rf HelloWorld HelloWorld_bak

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

~ cp -rf HelloWorld /home/zhou/zhouzx/HelloWorld_bak


26.如何在Linux下杀死某个进程?
首先要查找到要杀死的进程的PID,之后执行“kill -9 PID”命令即可。
例如,我们要杀死名为“HelloWorld”的进程,则执行示例如下:

~ ps -ef | grep HelloWorld
zhou 24046 1 2 08:43 ? 00:00:00 HelloWorld
~ kill -9 24046
~ ps -ef | grep impservice
~


27.如何修改Linux下某个文件所属用户和群组?
直接在root用户下执行“chown 所属用户:群组 文件名”命令即可,示例如下:

~ll
-rw-r–r– 1 root root 4 May 16 17:14 TestFile.txt
~chown zhou:zhao TestFile.txt
~ll
-rw-r–r– 1 zhou zhao 4 May 16 17:14 TestFile.txt


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

~ ll -a
drwx—— 2 zhou users 192 2016-05-19 17:09 .
drwx—— 4 zhou users 96 2016-05-05 17:39 ..
-rw-r–r– 1 zhou users 491010 2016-05-19 17:09 Test.txt
-rwxrwxrwx 1 zhou users 6774 2016-05-19 17:09 .Test.txt.swap
~ rm .Test.txt.swap
~ ll -a
drwx—— 2 zhou users 192 2016-05-19 17:09 .
drwx—— 4 zhou users 96 2016-05-05 17:39 ..
-rw-r–r– 1 zhou users 491010 2016-05-19 17:09 Test.txt


29.如何查看Linux操作系统的位数?
有如下两个命令可以查看Linux操作系统的位数:
1) uname -a
2) lsb_release -d

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

~ uname -a
Linux suse 3.0.76-0.11-default #1 SMP Fri Jun 14 08:21:43 UTC 2013 (ccab990) x86_64 x86_64 x86_64 GNU/Linux

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

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

~ lsb_release -d
Description: SUSE Linux Enterprise Server 11 (x86_64)

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


30.如何修改Linux的系统时间?
登录或切换到root用户下,然后执行如下命令:

date -s “YYYY/MM/DD HH:MI:SS”

命令示例:

date -s “2016/05/04 13:49:07”

31.如何在Linux下使用命令启动MySQL?
首先登录到mysql用户下,然后执行如下命令:

xpecdmoni

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

xsuperstop

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

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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
2天前
|
监控 Linux Windows
50个必知的Linux命令技巧,你都掌握了吗?(下)
50个必知的Linux命令技巧,你都掌握了吗?(下)
|
2天前
|
Linux Shell Windows
Linux 常用基本命令
Linux 常用基本命令
|
3天前
|
Ubuntu Linux Shell
linux免交互登陆远程主机并执行命令(密钥对和Expect)
linux免交互登陆远程主机并执行命令(密钥对和Expect)
|
3天前
|
Linux
【Linux】常用命令
【Linux】常用命令
24 0
|
3天前
|
安全 Ubuntu Linux
Linux 网络操作命令Telnet
Linux 网络操作命令Telnet
16 0
Linux 网络操作命令Telnet
|
4天前
|
Linux 数据安全/隐私保护
Linux常用命令实例带注释
Linux常用命令实例带注释
30 0
|
4天前
|
Linux 开发工具 数据安全/隐私保护
Linux(19)常用解压命令记录
Linux(19)常用解压命令记录
9 0
|
5天前
|
Linux Perl
Linux系统替换字符串常用命令
请注意,`sed`命令可以非常强大,可以根据不同的需求使用不同的选项和正则表达式来进行更复杂的字符串替换操作。
18 0
|
8天前
|
安全 Linux 开发工具
Linux中可引起文件时间戳改变的相关命令
【4月更文挑战第12天】Linux中可引起文件时间戳改变的相关命令
18 0