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