Linux命令格式
命令 [选项] [参数]
命令:就是具体命令,比如常用的cd,表示进入到哪个路径
选项:可有可无,针对命令的一些特殊操作,都是以-开头加上字母的形式,比如ls -l
参数:命令的一些参数
linux路径
Linux中,没有C盘、D盘等盘符的概念,只有根目录、子目录一说,“/”:表示根目录,根目录下面有若干子目录,子目录就用“/”加上目录文件名表示。
- /home:表示家目录,每个用户都会有一个自己的目录,在home下面,使用用户的账号命名;
- /boot:存放的是Linux启动时用到的核心文件,包括一些连接文件,镜像文件等;
- /bin:是存放一些常用命令的地方;
- /opt:外部安装的应用都会存放在这里;
- /root:系统管理员,超级用户的目录,只有系统管理员可以进入;
- /etc:存放系统管理所需要的子目录和配置文件;
- /var:这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下;
- /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的;
...
了解到这些目录结构以及目录存放的内容,我们就大概知道大部分目录我们是不能随便动的,尽量在自己的家目录中操作命令。
cd 命令
cd是进入到某个路径使用的命令。注意cd以及其他所有命令的后面都有一个空格。
cd /home:进入根目录下的home目录。
cd /home/admin:进入根目录下的home目录下的admin目录,只要是以/开头的路径,都是绝对路径,/表示根目录。
cd files:files表示相对路径,cd files表示进入到当前目录下的files文件夹中。
cd ..:路径往上返一级;
cd ~:回到当前用户家目录,如果是root用户,cd ~ 相当于 cd /root,如果是普通用户,cd ~ 相当于cd /home/当前用户名;
cd -:回退功能,回退到上一次cd命令的目录下
pwd:显示当前的目录
ls命令
ls命令是用来列出当前目录下都有哪些文件和文件夹的;
ls:只显示文件夹和文件名,不显示隐藏的文件;
ls -a:显示所有文件包括隐藏文件,隐藏文件名都是以“.”开头;
ls -l:显示文件和文件夹的详细信息,比如权限,文件大小,创建时间等
ls -lh:-l中的文件大小是以b为单位显示,改成-lh后,就是以KB或者MB显示;
ls -lha:显示所有的文件包括隐藏文件的详细信息;
ll:等同于ls -l
ll -h:将文件大小以KB以上的单位显示。
也可以使用通配符,来列出你想要的某些文件,比如 ll a*:列出当前目录下的以a开头的所有文件夹。
另外还有一些常用通配符,比如:
? :表示文件名中任意一个字符
[abc] :匹配abc中任意一个字符
[a-c] :也是匹配abc中任意一个字符
:表示后面的字符就是一个普通字符,比如* 就代表*号而不是通配符
上面的命令都是必须先cd到某个路径,然后再查看当前路径的文件,事实上ls或者ll后面可以跟一个参数:路径,不需要cd到路径再ll:
ls ~:列出家目录的所有文件
ls /home/admin/pic 列出“/home/admin/pic”这个路径下的所有文件。
文件详细信息
从上面的截图中复制下来两条,如下:
-rw-------. 1 root root 1.9K 2月 28 16:26 anaconda-ks.cfg
drwxr-xr-x. 3 root root 4.0K 3月 1 21:38 soft
第一个字母有些是-,有些是d,-表示这一条是一个文件,d表示是一个文件夹,也可能会有l表示软连接;
1.9k、4.0k是文件大小,接下来是时间,表示最后一次修改的时间,然后是文件名。
root root:有两个root,第一个表示当前用户是root,第二个表示当前用户所在组是root
root前面的数字是硬连接数
rwxr-xr-x:是权限,三个字母为一组:rwx r-x r-x,第一个字母r表示可读,如果改成-表示不可读,第二个字母w表示可写,改成-表示不可写,第三个字母x可执行,改成-表示不可执行,rwx的顺序始终都是这样的。那么为什么分三个组呢,第一个组rwx是表示文件拥有者的权限,第二个r-x表示文件拥有者所在组的权限,第三个r-x表示该组以外的用户的权限。
mkdir命令
创建文件夹的命令。
mkdir picture:在当前路径创建一个picture的文件夹
mkdir /home/admin/self/picture:在admin目录下创建一个picture文件夹,这种时候必须保证/home/admin/self路径是存在的,否则会报错。
如果想要admin/self路径不存在也能创建成功,就需要在命令后面加一个-p,mkdir /home/admin/self/picture -p
mkdir a b:在当前路径创建两个文件夹
mkdir self/{a,b}:在self下创建两个文件夹,等同于mkdir self/a self/b
mkdir .aa:创建隐藏文件。
touch命令
创建文件的命令。
touch a.txt :在当前目录下创建a.txt文件。
gedit a.txt : 在当前目录下创建一个a.txt并且使用Linux自带的gedit工具打开。
rm命令
删除文件或者文件夹
rm a.txt :删除文件
rm abc :删除文件夹,直接删会报错,需要加-r:rm abc -r
rm * :删除所有的文件,不删文件夹,一定要小心使用。
rm * -r :删除当前目录下的所有文件和文件夹
rm /tmp/* -rf 删除/tmp目录下的所有文件
上面的这些rm,执行的时候会提示是否确认删除,加一个-f就不会再提示了,比如rm * -rf 删除当前目录下的所有文件和文件夹
cp命令
拷贝命令
cp 1.txt 2.txt : 可以理解为将当前目录的1.txt拷贝一份2.txt
cp 1.txt /home/admin/pic :将当前目录的1.txt移动到后面的pic文件夹下
cp a a_bak -r :拷贝文件夹,注意必须有-r
mv命令
剪切/移动命令
mv 1.txt 2.txt :将当前目录的1.txt重命名为2.txt
mv 1.txt ~ :将当前目录的1.txt移动到指定目录:家目录
重定向
ls > 1.txt :将>左边的命令返回的结果写入到1.txt
ls >> 1.txt :将>>左边的命令返回的结果追加到1.txt
注意:重定向的前提是左边的命令有返回值,如果没有,没办法写入文件
cat 查看文件内容
cat 1.txt 将1.txt中的内容显示到屏幕上
cat 1.txt 2.txt : 同时显示1.txt和2.txt的内容到屏幕上
cat 1.txt 2.txt > 3.txt :将1.txt 2.txt的内容输入到3.txt中
more查看文件内容
more也可以查看文件内容,如果文件内容比较长,适合用more命令,翻页查看。
more 1.txt : 查看1.txt的内容
空格键是向下翻页,b键是回退一页,q是退出,回车是向下翻一行。
管道命令
|是管道符,意思是将这个符号左边的命令的返回结果交给右边命令处理
ls -l / | more :将根目录下的文件列表用more的方式显示。
help命令
--help可以提供帮助文档,英文的,比如ls --help
man +命令也可以查看帮助文档。
键盘的操作键:
空格:显示下一页
回车:一次滚动一行
b:回滚一屏
f:前滚以屏
q:退出
/word:搜索word字符串
软连接和硬链接
软连接:类似Windows中的快捷方式,这个链接不记录文件内容,只是一个指向某个文件的快捷方式。软连接记录的是指向的文件的文件名。
ln -s 1.txt soft_link
soft_link指向了1.txt,等同于给1.txt设置了一个别名:soft_link
cat soft_link :显示的是1.txt中的内容
还可以将软连接放到不同的路径下:
ln -s /home/admin/test/1.txt /home/admin/soft_link
注意:如果是放到不同路径,前面的路径必须是绝对路径
软连接可以给文件夹创建
硬链接:类似拷贝,会将文件的内容同时记录到硬链接中,修改其中一份,其他的硬链接会同步修改。ll出来的结果的值中的连接数就是指的硬链接数,该文件有几个硬链接。
命令:ln 1.txt hard_link
硬链接不可以为文件夹创建。
grep命令
文本搜索命令
grep -n Desktop 1.txt
找1.txt中的有没有Desktop,-n表示在第几行
根据文件内容找到具体在哪个文件的哪一行:
grep -n ab . -r
返回值: ./2.txt:4:ab/
在当前路径下,找包含ab的内容
grep -n后面还可以跟正则表达式:
^a:表示以a开头
a$:表示以a结尾
- :点表示任意一个字符,除了 ,a后面有一个字符
grep -niv ab . -r
-n前面说了表示行号
-i 表示不区分大小写
-v 表示反向查找,即查找不包含ab的文件
find命令
find + 目录 + -name + ‘*.txt’
find ~ -name ‘*.txt’ : 在home目录下找到文件名为txt结尾的,如果查找的内容带通配符,必须用单引号引起来。
find . -name 1.txt :寻找当前目录下的1.txt,1.txt可以不带引号
tar打包命令
tar cvf 4.tar 1.txt 2.txt
打包,但是没有压缩,将1.txt和2.txt打包到4.tar中,f必须放在最后,打包后的文件必须是.tar文件,也可以打包一个路径
tar tf 4.tar
1.txt
2.txt
查看4.tar中都包含哪些文件
tar xvf 4.tar 将4.tar解压放到当前目录
其中-c/-x分别表示create/extract,即打包/解包.
-v 是verbose,表示显示打包/解包的详细过程.
-f 表示file,表示打包输出/解包输入文件
tar xvf 4.tar -C +目录 :后面加上-C(大写),然后加上已存在的目录,可以解压到目录中。
tar命令只是打包,但是没有压缩,下面的命令会压缩。
tar+gzip打包并且压缩命令
tar czf b.tar.gz *txt
把当前目录下的txt结尾的文件,压缩成b.tar.gz
tar zxf b.tar.gz -C tar
解压b.tar.gz到tar文件目录下
tar+bzip2命令
tar jcf j.tar.bz2 *txt # 压缩
tar xjf j.ftar.bz2 -C jtar # 解压缩
zip命令
zip -r zz *txt ZZ是要生成的压缩文件,会自动生成zip扩展名
unzip -d zz zz.zip 押解时自动创建目录
压缩率:zip最差,其次gzip,最好的是bzip2
zip比较通用,Windows和Linux都能用,gzip平时用的最多。
其他命令
which +命令:查找命令位置
su 回车输入密码,切换到root用户
su + 用户名: 从root用户切换到普通用户
passwd:修改密码,如果想要修改简单密码,用root用户修改。
exit : 退出当前用户,返回到上次用户,多次输入后整个退出
chmod命令
chmod是用来修改权限的
一种是字母的方式修改权限:
chmod u/g/o/a +/-/= rwx 文件
u: 表示文件所有者
g:表示文件所有者属于的组
o:组以外的人
a:表示三者都是
+:表示增加某个权限
-:表示删除某项权限
=:表示设定权限
r是可以读取,没有r权限就不能进入这个目录或者文件
w是可以写入,没有w权限就不能在该目录下创建文件
x是可以执行,没有x权限就意味着不能cd到这个目录
比如:chmod u + w file.txt 给file.txt的创建者增加file.txt的w权限。
rwx可以使用数字代替:
0:没有任何权限
1:执行权限
2:写权限
3:执行和写的权限(1+2)
4:读权限
5:读取和执行权限(1+4)
6:读取和写入权限(4+2)
7:所有权限(1+2+4)
runlevel命令
输入runlevel,返回当前的level
如果忘记密码,可以进入到level 1 修改,进入方法:init 1
init 5是切换到图形界面
init 3是命令界面
修改ip地址
首先可以查看当前的ip,输入ifconfig,正常来说会返回下面这样两个网卡,一个eth0,一个lo,不需要管,eth0就是本机的ip,可以看到ip地址是192.168.142.128
如果我们想要修改这个ip,可以输入命令:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
打开这个文件后,可以看到最下面这里的BOOTPROTO的值是dhcp,表示动态获取IP地址,想要修改的话就改成静态的:
按照图修改,改完后IP就是192.168.142.129了。
修改完成后需要重启服务:/etc/init.d/network restart命令即可。
然后再通过ifconfig查看当前ip
网卡配置完,如果想要上网,还需要修改DNS:
nameserver 202.106.0.20
nameserver 8.8.8.8
然后ping www.baidu.com能ping通就可以上网了。
远程连接linux
IP配置完之后可以通过远程工具来连接linux服务器,常见的有:
putty、secureCRT(主流)、xshell等
比如在windows上安装一个xshell免费版,新建一个会话,输入名称和linux服务器的ip,就可以使用xshell来操作linux了。