我是靠谱客的博主 美好月饼,最近开发中收集的这篇文章主要介绍【Linux】linux基本命令,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

      • 1. Linux 系统目录结构
      • 2. 基础
        • 2.1 Tab 补全
        • 2.2 光标
        • 2.3 man, info, help
      • 3. 10大基础命令
        • 3.1 cd , pwd
        • 3.2 mkdir , cp , mv , rm , touch
        • 3.3 ls ll
        • 3.4. vim , vi , nano
        • 3.5 find , locate/slocate
        • 3.6. wget
        • 3.7 chmod 修改权限
        • 3.8 sudo
        • 3.9 ping , telnet , nc/netcat
        • 3.10 ifconfig , netstat
      • 4. vim键位图

本博客转载自: https://blog.csdn.net/u012104219/article/details/79125771

1. Linux 系统目录结构

登录系统后,在当前命令窗口下输入命令:

ls /
你会看到如下图所示:
在这里插入图片描述
树状目录结构:

以下是对这些目录的解释:

/bin:
bin是Binary的缩写, 这个目录存放着最经常使用的命令。

/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。

/home:
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/lib:
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

/opt:
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

/root:
该目录为系统管理员,也称作超级权限者的用户主目录。

/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

/selinux:
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/srv:
该目录存放一些服务启动之后需要提取的数据。

/sys:
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

/tmp:
这个目录是用来存放一些临时文件的。

/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

/usr/bin:
系统用户使用的应用程序。

/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:
内核源代码默认的放置目录。

/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

2. 基础

2.1 Tab 补全

Tab 补全是非常有用的一个功能,可以用来自动补全命令或文件名,省时准确。
未输入状态下连按两次 Tab 列出所有可用命令
已输入部分命令名或文件名,按 Tab 进行自动补全,多用你就肯定会喜欢的了。

2.2 光标

up 方向键上(可以调出输入历史执行记录,快速执行命令)
down 方向键下(配合 up 选择历史执行记录)
Home 移动光标到本行开头
End 移动光标到本行结尾
PgUp 向上翻页
PaDN 向下翻页
Ctrl + C 终止当前程序
Ctrl + L 清屏 = clear命令(记住这个快捷键,比clear高效很多)

2.3 man, info, help

man命令:Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。

info命令:Linux下info格式的帮助指令。就内容来说,info页面比man page编写得要更好、更容易理解,也更友好,但man page使用起来确实要更容易得多。

help命令:用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看。

3. 10大基础命令

在这里我将介绍10组最常用的基础命令行,也是Linux入门必备的命令行,必须牢记于心,学习的过程中可以在Linux上熟练。这也是作为一个计算机专业人士必须熟练操作的最低要求。

3.1 cd , pwd

> cd
cd命令用来切换工作目录至dirname。 其中dirName表示法可为绝对路径或相对路径。(cd = Change Directory)

cd命令示例:

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

> pwd
pwd命令以绝对路径的方式显示用户当前工作目录。(pwd = print working Directory)
在这里插入图片描述

3.2 mkdir , cp , mv , rm , touch

> mkdir
mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 (mkdir = make directory)
在这里插入图片描述
> cp
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。(cp = CoPy)

cp命令示例:

# 将文件file复制到目录/usr/men/tmp下,并改名为file1
[root@localhost ~]# cp file usr/men/tmp/file1
# 复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。
[root@localhost ~]# cp aaa/* /bbb

> mv
mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中,将一组文件移至一个目标目录中。(mv = MoVe)

mv命令示例:

# 重命名,将~目录下的文件名frank.html修改为abby.html,对文件夹也可以修改
[root@localhost ~]# mv frank.html abby.html
# 将目录/usr/men中的所有文件移到当前目录(用.表示)中
[root@localhost ~]# mv /usr/men/* .

> touch
touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。(touch = touch 已经是全称了)

touch命令示例:

# 在当前目录下建立一个空文件ex2,然后,利用ls -l命令可以发现文件ex2的大小为0,表示它是空文件。
[root@localhost ~]# touch ex2

> rm

rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。(rm = ReMove)

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

千万不要随便尝试rm -rf /这个命令行,否则系统会GG了。

touch命令示例:

# 删除当前目录下除隐含文件外的所有文件和子目录
[root@localhost ~]# rm -r *
# 删除当前目录下,后缀为.cmd的所有文件
[root@localhost ~]# rm *.cmd
-

3.3 ls ll

> ls
ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。(ls = list)

ls命令示例:

# 显示当前目录下非影藏文件与目录
[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

# 输出长格式列表
[root@localhost ~]# ls -1
anaconda-ks.cfg
install.log
install.log.syslog
satools

# 查看文件大小更适合阅读的方式,可以加上-h(h = human)人类更适合阅读的方式。
[root@localhost ~]# ls -lh
-rw-------.  1 root root 1.1K 9月   7 2015 anaconda-ks.cfg
-rw-r--r--   1 root root 408K 9月   9 2015 banner.zip
-rw-r--r--   1 root root   15 1月  15 15:54 C
-rw-r--r--   1 root root 1.7G 10月 26 2015 db_.sql
-rw-r--r--   1 root root  33M 10月 26 2015 db_.tar.gz

> ll
ll:ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。 我们可以通过修改~/.bashrc添加任何其他的命令别名。
打开 ~/.bashrc找到 #alias ll=’ls -l’,去掉前面的#就可以了。(关闭原来的终端才能使命令生效)
ll安装点击这里查看详情。用法和ls一样,这里就不重复了。

3.4. vim , vi , nano

这一组的命令,我们介绍了文件编辑工具。这里介绍三种编辑工具,各有所长,根据自己的喜好来选择。我比较倾向于组合使用,发挥在Linux系统上文件编辑的最高效率。

> vim / vi
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。所以在这里只要学习vim的基本操作就ok了,本节命令更适合实践演练和操作,故只推荐一个慕课(点击这里),和学习的参考文档(点击这里)。

> nano
nano:nano是一个字符终端的文本编辑器,有点像DOS下的editor程序。它比vi/vim要简单得多,比较适合Linux初学者使用。某些Linux发行版的默认编辑器就是nano。

如果你没有安装nano编辑器的话,可以使用yum进行安装:yum -y install nano。

篇幅有限,对于nano编辑器感兴趣的请点击这里查看操作说明。

3.5 find , locate/slocate

> find
find:find命令用来在指定目录下查找文件。

find命令示例:

# 在/home目录下查找以.txt结尾的文件名
[root@localhost ~]# find /home -name "*.txt"

# 基于正则表达式匹配文件路径
[root@localhost ~]# find . -regex ".*(.txt|.pdf)$"

> locate/slocate
locate命令和slocate命令都用来查找文件或目录。

locate/slocate命令示例:

# 搜索etc目录下所有以sh开头的文件
[root@localhost ~]# locate /etc/sh

# 搜索用户主目录下,所有以m开头的文件
[root@localhost ~]# locate ~/m

# 搜索用户主目录下,所有以m开头的文件,并且忽略大小写
[root@localhost ~]# locate -i ~/m

3.6. wget

wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

wget命令示例:

# 使用wget下载单个文件
[root@localhost ~]# wget http://www.linuxde.net/testfile.zip

# 使用wget后台下载
[root@localhost ~]# wget -b http://www.linuxde.net/testfile.zip

# 当你打算进行定时下载,你应该在预定时间测试下载链接是否有效。我们可以增加--spider参数进行检查。
[root@localhost ~]# wget --spider URL

# 下载多个文件(filelist.txt保存了url信息,每行一个URL链接)
[root@localhost ~]# wget -i filelist.txt

3.7 chmod 修改权限

chmod命令用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。

权限范围的表示法如下:

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

在这里插入图片描述

  • Type: 很多种 (最常见的是 - 为文件, d 为文件夹, 其他的还有l, n … 这种东西, 真正自己遇到了, 网上再搜就好, 一次性说太多记不住的).
  • User: 后面跟着的三个空是使用 User 的身份能对这个做什么处理 (r 能读; w 能写; x 能执行; - 不能完成某个操作).
  • Group: 一个 Group 里可能有一个或多个 user, 这些权限的样式和 User 一样.
  • Others: 除了 User 和 Group 以外人的权限
chmod命令示例:

# 通常的修改形式是
[root@localhost ~]# chmod [谁][怎么修改] [哪个文件]

# 举个最简单的例子, 现在的 t1.py 是 ----rw-r--, 如果我们想让你(user)有读的能力. 下面这样改就行了.
[root@localhost ~]# chmod u+r t1.py
[root@localhost ~]# ls -l
-r--rw-r-- 1 frank frank 34 Oct 12 09:51 t1.py

上面的[谁]有下面几个可选字段:

  • u: 对于 User 修改
  • g: 对于 Group 修改
  • o: 对于 Others 修改
  • a: (all) 对于所有人修改

[怎么修改]

  • +, -, =: 作用的形式, 加上, 减掉, 等于某些权限
  • r, w, x 或者多个权限一起, 比如 rx

[哪个文件]

  • 施加操作的文件, 可以为多个

用数字表示rwx的权限
其中a,b,c各为一个数字,a表示User,b表示Group,c表示Other的权限。

r=4,w=2,x=1

  • 若要rwx(可读、可写、可执行)属性,则4+2+1=7
  • 若要rw-(可读、可写、不可执行)属性,则4+2=6
  • 若要r-w(可读、不可写、可执行)属性,则4+1=5

示例:

chmod a=rwx file 和 chmod 777 file 效果相同
chmod ug=rwx,o=x file 和 chmod 771 file 效果相同
若用chmod 4755 filename可使此程式具有root的权限

3.8 sudo

sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

3.9 ping , telnet , nc/netcat

这一组的命令主要用于测试网络连接状态,在很多配置的过程中有很重要的用途。
> ping
ping:ping命令用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

ping命令示例:

[root@localhost ~]# ping www.baidu.com
PING host.1.linuxde.net (100.42.212.8) 56(84) bytes of data.
64 bytes from 100-42-212-8.static.webnx.com (100.42.212.8): icmp_seq=1 ttl=50 time=177 ms
64 bytes from 100-42-212-8.static.webnx.com (100.42.212.8): icmp_seq=2 ttl=50 time=178 ms
64 bytes from 100-42-212-8.static.webnx.com (100.42.212.8): icmp_seq=3 ttl=50 time=174 ms
64 bytes from 100-42-212-8.static.webnx.com (100.42.212.8): icmp_seq=4 ttl=50 time=177 ms
...按Ctrl+C结束

> telnet
telnet:telnet命令用于登录远程主机,对远程主机进行管理。telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的。

相比ping命令来说,telnet还可以测试某个IP的端口是否能够正常连通

telnet命令示例:

# 测试IP:60.191.124.150:8081 是否能够连接的通
[root@localhost ~]# telnet 60.191.124.150 8081

# 另外我们也可以用wget进行模拟下载来测试是否能够连通
[root@localhost ~]# wget 60.191.124.150:8081

在我的CentOS中,没有telnet命令了。
在这里插入图片描述
> nc/netcat
nc:nc命令是netcat命令的简称,都是用来设置路由器。安装:yum install nc

# nc测试端口连接

 [root@localhost ~]# nc -u -z -w 1 60.191.124.150 8081

3.10 ifconfig , netstat

ifconfig:查看网络情况,netstat:显示网络状态信息

>ifconfig
iifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

> netstat
netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。更多使用方法

netstat命令示例:

# 在netstat输出中显示 PID 和进程名称
[root@localhost ~]# netstat -pt

# 列出所有端口 (包括监听和未监听的)
netstat -a     #列出所有端口
netstat -at    #列出所有tcp端口
netstat -au    #列出所有udp端口        

4. vim键位图

在这里插入图片描述

最后

以上就是美好月饼为你收集整理的【Linux】linux基本命令的全部内容,希望文章能够帮你解决【Linux】linux基本命令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部