作者大学是非计算机专业的,之前未接触过linux,最近因工作开始接触到一点linux。本人比较菜,目前从事的工作也比较初级,本文的这些linux命令都是比较初级的,不过却刚好可以覆盖本人当前阶段的使用。 至于一些比较比较高级的命令,例如网络、进程、文件管理的,本人也仍在学习。本文会随着本人学习linux的深入,持续更新。 本文主要参考文献来自于平时的百度或谷歌检索,以及《鸟哥的Linux私房菜》一书。 学习Linux系统,必须有一台安装了Linux的电脑可供使用。可以在自己的电脑上安装虚拟机,例如VMware的。本人使用的学生版腾讯云服务器,贵在便宜省事。 本文仍在持续创作中,内容或排版仍有很大不足,本人会及时更新
一 Linux简介
命令 命令行模式下用户可以直接输入命令控制计算机的运行,这些程序也被称为shell,由bash运行。命令格式如下 command [-options] parameter1 parameter2 … command是命令的名字 [ ] 中表示可选的参数,选项前带 - 号,例如 ls -a。如果用选项全名,带– parameter这些是参数,例如 cd home 命令、选项、参数之间空格隔开,几个空格Linux都会当成一个 回车键会立即执行命令 命令太长使用 \ 转义回车键 command --help 显示命令的帮助信息 uname -a 查看Linux的发行版本 hostname 主机名 修改主机名
基础命令 基础命令提供一些所有计算机都具备的基础功能 clear 清理cli界面 date 查看系统日期 date +%Y%m%d 格式化输出日期 date -s 14:20:50 设置时间 date -s “2016-12-07 12:00:00” 修改日期 date +%Y%m%d -s “20191120” clock c查看硬件时间
cal 显示日历 cal [month] [year] 某年某月的日历,可选参数可选0,1,2个
bc 进入计算器 quit 退出计算器,当然也可以 ctrl+c退出
shutdown 关机(这俩命令一般不要用) reboot 重启机器 last reboot 查看rebbot命令的历史执行记录 history 列出历史执行的命令 history 10 列出10行历史命令 echo “hello world” 输出信息到命令行界面
常用快捷键 tab 命令后双击按tab,可补全命令。比如fi 之后双击tab,提示所有以fi开头的命令 tab 单击,可补齐文件名 ctrl+c 终止当前程序 ctrl+d 退出cli(命令行模式) Q 终端出现end无法退出时按q
二 linux常用命令
目录切换 cd direc 进入direc目录 cd … 回到上一级目录 cd / 回到根目录 cd ~ 回到用户目录 pwd 显示当前全目录
文件更改 rm -rf direc 直接删除目录及其文件 rm file 删除file文件,会询问,确认输y;不能删文件夹 rm -f * 删除当前目录下所有文件 rm -rf *.tmp 删除指定后缀名的文件 mv ma.txt dandan 移动文件到dandan下 mv ma.txt cece 没有cece目录的话,就是把文件重命名为cece mv ma.txt /home/cece 移动到绝对路径下 mv ma.txt /home/dandan/dan.txt 移动过去并改名 mv dandan ma 重命名目录或文件 cp dan.txt ma.txt 拷贝文件 mkdir lichong 新建文件夹 rmdir dandan 只能删除空文件夹 rmdir -p test1/test2/test3 删除层级目录需要加-p (parents)
文件压缩 tar -zcvf dandan.tar.gz dandan 压缩dandan目录为tar.gz格式 tar -zcvf dan.tar.gz /dandan 也行,不建议加斜杠的,推荐上面的 tar zxvf dandan.tar.gz 解压文件 zip -q -r dandan.zip dandan 压缩成zip格式 unzip dandan.zip 解压zip文件
查看文件 cat 由第一行开始显示文件所有内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写! nl 显示的时候,顺道输出行号! more 一页一页的显示文件内容 less 与 more 类似,但是比 more 更好的是,他可以往前翻页! head 只看头几行,默认5行 head -n 20 log.file tail 只看尾巴几行
查看日志 tail -f mysql.log 实时查看日志文件内容 tail -n 100 mysql.log 查看最后100行 cat mysql.log 从头显示 tac mysql.log 从尾显示 nl mysql.log带行号显示
vim基本操作 vi my.cnf 打开Mysql配置文件 上下键 可移动光标 a 进入编辑模式,光标处编辑 esc 进入命令模式 ctrl+: 进入底线模式 exit 退出vim
磁盘管理 df -h 显示系统的整体磁盘使用量(在任何目录看一样),加-h以M或G du 显示当前目录下每个子文件或子目录的磁盘使用情况。递归显示每个 du -ah 以M显示所有的子文件或子目录磁盘情况(根目录不建议用,输出太多) du -h --max-depth=1 只显示当前目录下第1层的文件和目录 du -sh user 只显示user的大小 fdisk -l 磁盘分区信息
三 linux目录结构
/bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令。 /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 /dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问 文件的方式是相同的。 /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。 /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账 号命名的。 /lib: 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。 /lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 shutdown –h 20:25 # 系统会在今天20:25关机 shutdown –h +10 # 十分钟后关机 shutdown –r now # 系统立马重启 shutdown –r +10 # 系统十分钟后重启 reboot # 就是重启,等同于 shutdown –r now halt # 关闭系统,等同于shutdown –h now 和 poweroff 8910111213141516171819 ls / 1 /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备 挂载到这个目录下。 /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上, 然后进入该目录就可以查看光驱里的内容了。 /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个 目录下。默认是空的。 /proc: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获 取系统信息。 /root:该目录为系统管理员,也称作超级权限者的用户主目录。 /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 /srv:该目录存放一些服务启动之后需要提取的数据。 /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。 /tmp:这个目录是用来存放一些临时文件的。 /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows 下的program files目录。 /usr/bin: 系统用户使用的应用程序。 /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。 /usr/src: 内核源代码默认的放置目录。 /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录 下。包括各种日志文件。 /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
四 linux权限命令
用户信息 cat /etc/passwd 查看所有用户名 输出如下 root?0:0:Superuser:/: daemon?1:1:System daemons:/etc: bin?2:2:Owner of system commands:/bin: sys?3:3:Owner of system files:/usr/sys: adm?4:4:System accounting:/usr/adm: uucp?5:5:UUCP administrator:/usr/lib/uucp: auth?7:21:Authentication administrator:/tcb/files/auth: cron?9:16:Cron daemon:/usr/spool/cron: listen?37:4:Network daemon:/usr/net/nls: lp?71:18:Printer administrator:/usr/spool/lp: sam?200:50:Sam san:/home/sam:/bin/sh 上面用户属性对应的信息 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
cat /etc/shadow 查看所有密码 可以用网上的解密工具获取真实密码
用户管理 useradd -m name 创建用户,-m自动创建用户使用的目录,一般在root用户下创建新用户 userdel 选项 name 删除用户 usermod -s /bin/ksh -d /home/z –g developer sam 修改账号 su name 切换到名为name的用户 exit 退回root用户 passwd dandan 修改账号dandan的密码 注意Linux输密码不显示,可以同时登多个账户 passwd -l dandan 锁定丹丹的账户,锁定之后不能用了
五Linux文件属性
ls -l 查看文件属性
从左至右用 0-9 这些数字来表示。 第 0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。 其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;第 2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。 可以用数字表示rwx这三种权限对应的分数,r w x分别是4,2,1。给定一个分数时完全可以确定一组权限。例如有-rwxrwx—,对应权限 owner = rwx=4+2+1=7 grout = rwx=4+2+1=7 others = — = 0+0+0=0 则改文件的权限可以表示为 770。同理给定数字 435,文件的权限只可能为 r—wxr-x。因此可以用三个数字 xyz 指定文件的读写属性 chmod [-R] xyz 目录名 chmod u=rwx,g=rx,o=r filename 也可以这样指定文件的属性, u, g, o 来代表三种身份的权限,此外a代表所有人
chgrp [-R] 属组名 文件名 更改文件属组,-R会更改目录下所有文件 chown [–R] 属主名 文件名 更改文件属主
六 linux 进程环境命令
进程信息查看 ps –选项 -a:显示当前终端的进程信息 -u:以用户的形式显示进程信息 -x:显示后台进程运行的参数 -A 所有进程 命令格式:命令A|命令B,即命令A的正确输出作为命令B的操作对象 grep 命令用于查找文件里符合条件的字符串 我 ps -x并不会显示所有进程,mysql没有显示
通常直接这样使用 ps -aux|grep xxx ,查看某个服务的进程 如,ps -aux|grep mysql Ps -ef 查看父进程 pstree 选项 进程树,可以更加直观的来看进程信息 -p :显示进程的PID -u :显示进程的所属用户 kill -9 PID 杀进程
export 该命令可以显示或设置环境变量 语法:export [-fnp] [变量名称]=[变量设置值] -f 代表[变量名称]中为函数名称。 -n 删除指定变量export。变量实际上未删除,只是不输出到后续指令的执行环境中。 -p 列出所有的shell赋予程序的环境变量。 export -p 显示所有环境变量 export test=”value” 设置环境变量 export test 导出环境变量,这样后续的子shell就能使用该环境变量了 export -n test 删除变量的export,此时export就看不到test环境变量了
export -f name 导出name函数供后续的子shell使用。一个shell脚本的函数想在其他shell中使用,是否需要加export?我觉得需要,待验证
七 linux 网络命令
注意下面这些命令是centOs的,我不确定其它linux发行版是否支持。 curl curl 用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。它的命令行参数多达几十种,如果熟练的话,可以做到postman请求后台的功能。 curl https://google.com 请求谷歌 curl -b ‘foo=bar’ https://google.com -b参数用来向服务器发送 Cookie
防火墙 systemctl status firewalld 查看firewall的详细状态 systemctl start firewalld 这也可以开启防火墙 firewall-cmd --state 查看firewall的运行状态 service firewalld start 开启防火墙 service firewalld stop 关闭防火墙 service firewalld restart 重启防火墙
防火墙使用 firewall-cmd --list-all 查看防火墙规则 firewall-cmd --query-port=8080/tcp 查询端口是否开放 firewall-cmd --permanent --add-port=8080/tcp 永久开放8080端口 firewall-cmd --permanent --remove-port=8080/tcp 开放8080端口 firewall-cmd --reload 修改配置后要更新防火墙规则,更新后,设置的端口就能开放了 参数解释 1、firwall-cmd:是linux提供的操作firewall的一个工具; 2、–permanent:表示设置为持久; 3、–add-port:标识添加的端口;
检查网络 ping 在linux系统中,当能ping通一个主机时,此时ping命令会一直执行,要想终止,可采用ctrl+c或ctrl+z方式退出。也可以设置选项方式,使得ping命令执行若干次包就终止。ping 192.168.34.44 -c 4,此时ping命令将执行4次。
测试端口的连通性 方式1 telnet yum install telnet –y 安装telnet telnet 175.24.68.139 3306 测试服务器端口 方式2 ssh ssh -v -p port username@ip ssh命令来测试端口的连通性 ssh -v -p 8080 root@175.24.68.139
八 搜索查询命令
find / -iname *mysql 搜索根目录下以mysql结尾的目录 find / -iname ysq 模糊查询名字包含ysq的目录或文件
九 Linux下载软件
待补充
十 shell脚本
待补充
|