一句话,Linux是“命令行+文件”模式
![](https://img.haomeiwen.com/i17897286/1ed891659386e6e8.png)
几个常用命令
Linux修改密码 passwd
Linux创建用户 useradd
所有用户通过 cat /etc/passwd 查看
用户所在组通过 cat /etc/group 查看
linux 列出当前目录下的文件 ls -l (以列表形式列出)。ps:windows是dir
# ls -l
drwxr-xr-x 6 root root 4096 Oct 20 2017 apt
-rw-r--r-- 1 root root 211 Oct 20 2017 hosts
其中第一个字段的第一个字符是文件类型,第一个字段剩下的 9 个字符是模式,其实就是权限位(access permission bits)。3 个一组,每一组 rwx 表示“读(read)”“写(write)”“执行(execute)”。如果是字母,就说明有这个权限;如果是横线,就是没有这个权限。这三组分别表示文件所属的用户权限、文件所属的组权限以及其他用户的权限。第二个字段是硬链接(hard link)数目。第三个字段是所属用户,第四个字段是所属组。第五个字段是文件的大小,第六个字段是文件被修改的日期,最后是文件名。你可以通过命令chown改变所属用户,chgrp改变所属组。
linux安装软件
Linux安装包格式有两种:rpm (centOS)或者 deb(ubuntu)
举个栗子,安装jdk的命令分别为:
rpm -i jdk-XXX_linux-x64_bin.rpm #centOS下
dpkg -i jdk-XXX_linux-x64_bin.deb #ubuntu下
linux下查看安装包 rpm -qa和dpkg -l,但这样会将所有安装包都罗列出来,想要搜索指定的安装包需要使用 rpm -qa | grep jdk ,这个命令是将列出来的所有软件形成一个输出。| 是管道,用于连接两个程序,前面 rpm -qa 的输出就放进管道里面,然后作为 grep 的输入,grep 将在里面进行搜索带关键词 jdk 的行,并且输出出来。grep 支持正则表达式,因此搜索的时候很灵活,再加上管道,这是一个很常用的模式。同理dpkg -l | grep jdk也是能够找到的。
- 如果你不知道关键词,可以使用rpm -qa | more和rpm -qa | less这两个命令,它们可以将很长的结果分页展示出来。向后翻页用f,向前翻页用b。
- CentOS 下的 yum,Ubuntu 下的 apt-get 可以看做是windows中的软件管家,搜索软件包命令为yum search xxx和apt-cache search xxx,安装使用yum erase xxx和apt-get purge xxx,卸载软件使用yum erase xxx和apt-get purge xxx
- 配置从哪里下载软件:对于 CentOS 来讲,配置文件在/etc/yum.repos.d/CentOS-Base.repo里。
[base]
name=CentOS-$releasever - Base - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
对于 Ubuntu 来讲,配置文件在/etc/apt/sources.list里。
deb http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse
也可以通过wget + 网络路径 直接下载压缩包tar.gz,使用tar xvzf XXX.tar.gz进行解压缩,再通过export命令进行配置
如:
export JAVA_HOME=/root/jdk-XXX_linux-x64
export PATH=$JAVA_HOME/bin:$PATH
vim基本操作
- vim hello,就是打开一个文件,名字叫 hello。如果没有这个文件,就先创建一个。
- 移动光标使用上下左右,进行编辑则在想要输入的位置点击i(insert)进行编辑模式
- 保存文本则先使用ESC退出编辑模式,然后输出 “:”,在 : 后输入w 意为保存文本,输入q意为退出vim,如果编辑后不想保存则输入q!。
运行程序
普通运行只要文件有x执行权限,就可以到文件所在目录下,通过 ./filename运行该程序,若在PATH中配置了路径,就不用使用./了。这种运行程序的缺点在于需要一直开着交互命令行,一旦关闭程序停止运行。
后台运行使用nohup命令,一般形式为nohup command >out.file 2>&1 &。这里面,“1”表示文件描述符 1,表示标准输出,“2”表示文件描述符 2,意思是标准错误输出,“2>&1”表示标准输出和错误输出合并了。合并到哪里去呢?到 out.file 里。用这种方式启动的程序想要关闭时使用以下命令,其中假定启动的程序包含某个关键字:
ps -ef |grep 关键字 |awk '{print $2}'|xargs kill -9
ps -ef 可以单独执行,列出所有正在运行的程序,grep 通过关键字找到咱们刚才启动的程序,awk 工具可以很灵活地对文本进行处理,这里的 awk '{print $2}'是指第二列的内容,是运行的程序 ID。我们可以通过 xargs 传递给 kill -9,也就是发给这个运行的程序一个信号,让它关闭。如果你已经知道运行的程序 ID,可以直接使用 kill 关闭运行的程序。
以服务方式运行
例如Ubuntu 中,我们可以通过 apt-get install mysql-server 的方式安装 MySQL,然后通过命令systemctl start mysql启动 MySQL,通过systemctl enable mysql设置开机启动。之所以成为服务并且能够开机启动,是因为在 /lib/systemd/system 目录下会创建一个 XXX.service 的配置文件,里面定义了如何启动、如何关闭。
关机重启
shutdown -h now #现在关机,也可用init0,poweroff
reboot # 重启
查找文件位置
find / -name 文件名
![](https://img.haomeiwen.com/i17897286/b422afdfb767b4ca.png)
网友评论