首页 > 代码库 > Linux 基本命令

Linux 基本命令

命令怎么用

shutdown --help

shutdown --?

man shutdown         这三种方法都可以

shutdown  用错了他会有提示

哪一个命令不知道怎么用了,问问男人就可以了

man 就是manual  手册, 指南   用手的, 手工的

clear

clear是清屏幕,windows是cls

Cd转换目录

转换目录是cd,与windows底下一样

cd /  这样就到了最根上的目录, 正斜杠是最根上的目录

mkdir

Mkdir  make dir创建一个新的目录,不是文件

Rm

rm -rf 最常用

rmdir   删除一个空的目录,该目录下面不能有任何东西

rmdir  空的目录名

rm -r 目录名  recursive 这个命令总是问我

rm -rf 目录名   force 强制 不要再问我了  最常用

rm -rf 文件名   也可以删掉文件

recursive    回归的,递归的    remove 去除

 

touch

创建一个文件

touch 1        文件名叫1,没有后缀名

在Linux下面,文件的后缀名在技术上没有任何意义。但是给文件起名字的时候还是正常一点好   例如 3.txt是文本   RT.exe 是可执行程序

列出文件的内容

cat  tac  head   tail    more

cat  3.txt                   正序  从第一行开始

tac  3.txt                   倒序  从倒数第一行开始

head 3.txt      头   head  -3  3.txt        列出前3行    head可以带参数  -lines

tail  3.txt            尾  tail  -1  3.txt        最后一行

more 3.txt -------more默认是可以分页的,所以很多管道用到了他

Cp+move

cp    copy 拷贝       mv     move 移动

cp 1   2   把1这个文件拷贝一份,名字叫2,这样我就有两个文件了

cp -r d1 d2  拷贝目录必须带参数 r

很容易理解:删出一个目录,先要删去目录下面的东西。要用递归,拷贝也是

mv d2  d1  把d2目录移到d1,如果不行,加递归  mv –r

改名字 mv

Mv除了可以移动外,还可以改名字

Mv 3.txt  4.txt  把3.txt的名字改为4.txt

关机+重启+退出

exit 是退出命令行

reboot是重启

shutdown关机,这个命令需要带一个参数   shutdown   now

init 0 也是关机,因为有好几层,6层吧

logout是注销

退出:q -- ctrl+c --- ctrl+d,说不清楚他们是退出什么的,到时候都试试

man ls 的时候会有很多内容,q 键可以退出

ls列出目录下的东西

windows下面是dir ,dir在Linux下面也可以

列出当前目录下面的东西(包括目录与文件),这个命令有几个参数

ls –l 这个最常用

ls     横着排显示,这一行显示满了接着下一行

ls -l           是L,也是一行一行的显示,不过,一行只显示一个文件或者目录,有关于这个文件或者目录详细的信息    

ls -m      横着排显示,这一行显示满了接着下一行

ls -R     有点像树状展示

whoami

显示当前的用户,是root还是其他用户

pwd

显示当前你所在的目录

按5下 ESC

按5下 ESC,会出现可以很多使用的命令

display all 2091 possiblities,所以说RedHat Linux有2000多个命令

mount 挂载+卸载

mount point 挂载点

挂载----------------------------------------------------------------------

mount  /dev/cdrom   /mnt/cdr    将根目录下的dev目录下的cdrom设备与

根目录下的mnt目录下的cdr目录关联起来,这就是挂载

挂载点------cdr   设备-----CDROM

 

卸载---------------------------------------------------------------------

umount  /dev/cdrom  或者 umount /mnt/cdr

VI is important

这个命令面试最多,vi是文本编辑器,类似于windows的notepad

touch是创建一个文件,但是这个文件没有内容,怎么往里面加内容,用vi

vi   3.txt  打完这个命令以后,

出来一个文本编辑器,但是输不进去内容,因为刚开始进入的是命令模式,只能敲命令

vi有两种模式--命令模式与编辑模式,刚开始进入的命令模式,不能输入内容

敲a进入编辑模式,底下会出现insert这个单词   append 追加

敲esc   退出编辑模式,进入命令模式

在命令模式下面,敲冒号 : ,然后底下也会出现冒号  ,然后再敲命令  w 是存盘

q 是退出   q!是不存盘退出   wq是存盘退出(最常用)

我想  wq是存盘退出   w是不是write的意思

more 3.txt 显示3.txt的内容

find

他与grep怎么区分

查找某个文件的名字(前提是你记得大概的名字),查找它的路径路径路径,他在哪里

find 功能很强大

还可以根据创建日期查找,查找rc.local

find  /   -name  *local  从根目录下面开始查找,指定一个位置,从那里开始查

find /etc  -name *local

find /etc | grep  local   系统回去找含有local这几个字母的所有文件或者目录

find  /  -name MySQL   系统只是回去找名字叫MySQL的文件或者目录

find  /  -name MySQL*   系统回去找名字叫前几个字母是MySQL(后面任意)

的文件或者目录

名字不必写全

whereis

whereis  ls  查找ls这个命令在哪里

/bin  bin 目录下面有各种命令  vi  cat   ls   pwd 等等

/usr/bin   目录下面也有各种命令

查看环境变量

在DOS下面看环境变量

echo %path%

echo %classpath%

Linux下面  echo $PATH   PATH  必须大写

 

链接  ln

是 LN   ------------- link

ln  3.txt  4        more 4

链接与拷贝有什么区别 ----------对于链接,我改了3.txt,4的内容也会自动跟着改

前提是你没有修改4

 

ln 3.txt  4   这是硬链接,相当于你又复制了一份,然后再在两个文件之间建立了快捷方式

修改3.txt,4也会变

 

ln -s 3.txt 5    soft这是软连接,相当于windows里面的快捷方式

软连接:修改3.txt,5也会变

 

两种链接的不同之处

将3.txt删去,5不存在了,连接断掉了,4还存在

wc

word count  不是厕所   wc  -l  lines  这个文件有多少行

grep

grep 很常用的一个命令,请你牢牢记住他                   他的全称是什么

global  regular expressions  print  全局正则表达式版本

在文本文件中查找指定的字符串,并且把包含的那一行给显示出来,注意是那一行

grep student    4

在4这个文本文件中找student这个字符串,哪一行包含它,显示出来

^在正则表达式中,代表一行的开头

ls -l | grep ‘^d‘  只把目录列出来,/etc下面的文件与目录很多

^ 这个字符在数字6上面

rpm –qa 把所有的包都列出来,

rpm -qa | grep MySQL   查找含有MySQL这几个词的所有包,只要包名里面有MySQL这几个字母,就会被找出来

grep 与 find

find /  -name MySQL*

find /  | grep MySQL

fdisk  -l              L

显示当前的磁盘信息

dmesg

列出开机的启动信息  全称是------d  message

dmesg | grep eth0    看第一块网卡启动正常吗

命令替换wall

命令替换---用的不多   开俩个命令行

wall 的全称------warning  all  通知所有人,警告所有人,不是墙

wall  helloworld  

wall  `date`  警告的字符是当前的时间,把date当做一个命令,把这个命令执行的结果警告出去

wall  date   警告的字符是  date

`  这个字符是数字1左边那个字符

 

重定向

重定向  ---用的也不多

Java原来的一个程序

把out替换掉

System.out.println()   原来这个命令会输出到命令行中,现在他把命令输出到了文件中

ls

ls > cmd.txt 把刚才ls执行的命令的结果输入到cmd.txt这个文件中

错误输出重定向---------

lssss > cmd.txt   不行 , lsss这个命令不存在

lssss 2> cmd.txt

重定向输入

 wall < cmd.txt  把cmd.txt里面的内容警告出去

空的

管道

管道用的巨多

分页显示,/etc下面的内容很多

ls -R

ls -R  | more  这句话的意思

把上一个命令执行的结果交给下一个命令

ls -l /etc |  more

| ----------------是管道连接符

more默认是可以分页的,但是ls -l 不会分页,有时候显示的内容巨多无比,用more将结果。分页岂不很好

管道一旦学会后,他的功能会很强大

ls -l | grep ‘^d‘  只把目录列出来,/etc下面的文件与目录很多

文件权限 file privilege

Linux极其极其重要的东西--文件权限------必须掌握-----------file privilege

前言

最左边的一共有10位

    - (代表文件)  d(代表目录)   l(是L代表链接)

把最左边的那一个去掉,就剩下9个了,可以划分成3组

-rw-r--r--                 划分成3组    -   rw-   r--   r--

drwxr-xr-x

lrwxrwxrwx

除过代表字符,还有9位,他们代表什么

Linux文件的权限分为4种---------

read  write   execute   none(什么也没有)

9位分成3组

第一组代表这个文件的所有者有什么权限

第二组代表这个文件的所有者同组的人所拥有的权限

第三组代表剩下的人具有什么权限

x--------------execute

r-------------read

w---------------write

- 代表什么也没有  none

Chmod-不专业

你也可以修改权限change  mode  change modify

chmod  +x 4  给4这个文件加上可执行权限,那么,那三组人都具有了这个权限

chmod  -x 4  取消权限

 

我想给只给自己加上可执行权限,剩下的那两组人我不管,只给第一组加上权限

chmod u+x  4

 

怎样让同组的其他人也有这个权限   chmod g+x 4,只给第二组加上权限  group

 chmod o+x 4,只给第三组加上权限  other

专业改法

上面的写法不专业,下面好---------------------

chmod 755 4             chmod 777 4

7表示权限都齐了   5表示没有写的权限

在Linux(Unix)内部表示权限,是用3个八进制数来表示的

000  =====0               111 ======7

读             写                  可执行

一个8进制     一个8进制        一个8进制

三位               三位                 三位

 

怎么修改文件的所有者

chown    testuser1   4  -------------change owner

 

简单用户的管理

 

当一个用户登录的时候,默认的路径是这个用户的主目录

添加用户

useradd  testuser   adduser  testuser

这两个都可以

设置密码

passwd testuser  给这个用户设置密码,你要是输错了密码,按了退格键 ---没戏,不行。因为密码不显示

两个位置变化

增加一个用户后,系统有俩个位置会有变化-------------- /home 与  /etc

--------------------------------------1

cd /home   ls

home目录会有一个自动生成的目录,叫做testuser

--------------------------------------2

etc目录呢

cd /etc

more  passwd    打开 passwd这个文件

passwd这个文件没有存密码,存的是所有的用户,testuser这个用户在这里也可以找到

testuser:x:501:502::/home/testuser:/bin/bash

这句话的意思:这个用户 id号---501   所位于的组:502

用户的主目录为----/home/testuser

这个用户用到的shell  --------  /bin/bash

用户组------------------------------------------------

组的信息在group这个文件中  /etc/group

当你添加一个用户不指定组的时候,他会添加一个和你用户名一样的组

 

添加一个组

groupadd testg

useradd testuser2 -g testg  添加用户的时候指定组

你也可以修改用户所属的组   usermod -g testuser   testuser2

                                     新的组     用户名

usermod---------user modify

删除用户与组

删除用户分两步---删掉用户  删掉他的目录

userdel  testuser

cd /home

rm -rf testuser

 

组的删除

groupdel  testg

 

用户切换

switch  user

su  testuser2

Shell

用户的shell ---------

你不会与内核直接打交道

内核外面有一层,叫做shell,shell会解释你在Linux下面敲的命令,然后再与内核打交道

shell有不同的形式

有不同的shell,c  shell -------c 语言形式的shell

不同的shell执行的命令是不一样的,同样的命令在不同的shell底下不能通用,常用的命令

可以通用

咱们用的shell叫做 bash,这个以前的名字叫做bsh,名字的由来,是由一个叫做bone的人

写的,所以叫做bsh,后来他又写了一边,bone again shell ,所以叫做 bash

bash ------ 切换到bash

csh  --- 切换到 C  shell

ksh -----  切换到k   shell

sh  最原始最原始的shell

bsh ------ 切换到bsh

修改系统默认的启动级别

修改那一个配置文件时,先备份

修改配置文件  /etc/inittab,将id:5:initdefault中的数字5改为3

因为

3 纯命令行界面,有网络共享

5 图形界面

下一回系统启动的就不进入那个图形界面了

重要的几个

IP

查看IP地址与设置IP地址

ifconfig既可以查询IP,又可以设置IP

ipconfig是windows下面的命令

Linux 查询IP命令   ifconfig----------------

ifconfig 命令也能配置IP----------

ifconfig   eth0   IP地址

服务 service

启动服务,例如启动Mysql的服务

service mysql  start   不是所有的命令都有这个d这个字母

service iptables stop  关掉防火墙

service vsftpd  start  启动vsFTP服务器

service vsftpd  stop  服务停止

service vsftpd  restart 重新启动

但是,你怎么知道服务的名字呢??用这个命令chkconfig

Ps -ef

怎么知道该项服务已经启动了,例如Mysql的服务已经启动了

ps---process 进程   -e ==  -A 列出所有的进程

ps -ef | grep 服务名

ps -ef | grep mysql     ps -ef | grep tomcat

还有疑问(当结果只有一行的时候,可以认为他们就是关闭的)

开机自启动

你不用再手动的再去启动Mysql,vsftp,apache等等

用chkconfig这个命令,check configure  检查配置

你不仅可以知道这个服务是否开机启动了

还可以为这个服务设置开机自启动

还可以知道这个服务的名字

如何知道这个服务的名字呢------------

chkconfig --list 这个命令会列出所有的服务项,你可以慢慢看,又可以搜

chkconfig --list |  more

chkconfig --list | grep mysql

chkconfig --list | grep vsftpd

chkconfig mysql on    这几个3 4 5级别都启动

chkconfig --level 3 mysql on 只是在3这个级别启动

chkconfig mysql off

Mysql数据库的服务--------------mysql

vsFTP服务器的服务------------vsftpd

防火墙的服务------------iptables

ssh的服务------------sshd

http------------------httpd

Linux 基本命令