linux基础学习

时间:2022-03-03 06:09:35

1、默认不写端口号的就是80端口

本地ip:localhost或者127.0.0.1
2、用户管理
id和whoami:可以查看当前用户
who和w查看当前已经登录的用户
(1)添加用户,用户默认的家目录就是在/home/目录下
useradd username
useradd -g groupname -p passwd username
例如: useradd -g test -p 123456 mary
drwx------. 3 mary test 4096 12月 25 22:01 mary
drwx------. 3 tom  tom  4096 12月 25 21:42 tom
passwd username,给添加的用户加密码、也可以重置密码
        ~波浪线代表家目录,cd ~和cd可以快速回到家目录
(2)切换用户:su username和su - username
区别:su - 会重新加载用户的环境变量,因为有用户环境变量的存在。
sudo 获取超级用户权限,配置如下:
在/etc/sudoers文件中找到
root ALL=(ALL) ALL
username ALL=(ALL) NOPASSWD:ALL
(3)删除用户:userdel username
userdel -r username删除用户的时候也删除它的家目录
(4)组管理:
添加组:groupadd grpname
删除组:groupdel grpname
3、对目录(文件夹)的操作
pwd:显示当前所在的路径
cd:进入哪个目录(文件夹)
cd ..:回到上一级目录
cd../../回到上两级目录
cd -:返回上一次所在的目录
/:*目录,相当于windows的我的电脑
相对路径:相当于当前路径
绝对路径:实际的路径
(1)创建文件夹mkdir dirname
如果创建文件夹的父目录不存在:mkdir -p /tmp/logs/aa
(2)删除文件夹rm和rmdir
rmdir:只能删除空文件夹,一般使用rm -rf  文件夹名:递归强制删除文件夹
(3)查看文件下面的内容ls\ll\ls -a等
drwx------:1.d表示目录;2~4表示所有者权限;5~7表示同一组的权限;8~10表示其他用户权限
【1】加权限:x代表执行;w代表写;r代表读
chmod o+x 其他用户加执行权限
chmod g+x 本组用户加执行权限
chmod u+x 自己加执行权限
chmod +rwx或者chmod a+rwx 所有人加执行写读的权限
【2】去掉权限,就把+变成-
【3】数字模式代表权限r=4; w=2;x=1;
例如:chmod 755 file :意思就是所有者有读写执行的权限,本组有读执行的权限,其他有读执行的权限 fi
如果加权限的是一个文件夹的话要加大写R chmod -R 755 file
【4】chown改变文件的所有者chown user file ,意思是:把file这个文件的所有者变成user
drwx------. 3 mary test 4096 12月 25 22:01 mary
drwxr-xr-x. 2 root root 4096 12月 25 22:43 test
drwx------. 3 mary tom  4096 12月 25 21:42 tom
[root@besttest home]# chown test mary
chown: 无效的用户: "test"
[root@besttest home]# chown mary test
[root@besttest home]# ll
总用量 12
drwx------. 3 mary test 4096 12月 25 22:01 mary
drwxr-xr-x. 2 mary root 4096 12月 25 22:43 test
drwx------. 3 mary tom  4096 12月 25 21:42 tom
如果是一个文件夹的话要加 -R
【5】chgrp 改变文件的所属组,chgrp group file,如果是一个文件夹的话要加 -R
(4)移除和改名mv
mv如果后面跟的是文件名则改名mv 快乐  happy,如果后面跟的是路径则移动mv linux /tmp
(5)复制cp
复制文件:cp ax /tmp/
复制文件夹:cp -r linux /tmp/
复制的内容存在,强制复制:cp -rf linux /tmp/
(6)别名alias cp -i='cp'
修改完成后,退出再进入远程的时候,别名小时了,想要永久生效的话,加到/etc/profile配置文件中
(7)统计行数wc -l
(8)管道符:|,连接两条命令,把前面的命执行的结果给后面的命令处理
例如:ls|wc -l
(9)&&连接两条命令,先后执行
例如:sh startup.sh && tail -f /logs/catlina.out,意思是在执行启动程序的同事查看动态日志
4、对文件的操作
(1)编辑vi,有两种模式:编辑和命令模式
切换:
命令模式切换到编辑模式:i:当前位置;o:当前行的下一行;a:下一位置进行编辑
编辑模式切换到命令模式:esc
退出VI:命令模式下
:q没有修改的话可以直接退出;:q!不保存退出;:wq保存退出;:x也是保存退出;
查找:
/test 从头开始找 ;?test 从文件末尾开始找 
显示行号:set nu;取消显示行号 :set nonu;快去去到某一行:9 ;快速到文件末尾:shift+g;
x:删除单个字符; dd:删除整行 ;19dd:删除19行; 
u:撤销;
yy:复制一整行 ;19yy:复制19行;p:粘贴 
.:重复前一次操作 ;$:移动光标到行尾;0:移动光标到行首;
替换字符串: ":%s/src_str/new_str/g"
%代表所有行 ;S:替换;g:一行里所有;
(2)查看文件内容
cat查看短内容;more可分屏显示;less即可分屏又可以查找;tail -f动态查看日志;
(3)软连接ln -s:相当于windows中的快捷方式
lrwxrwxrwx. 1 root root    2 12月 25 23:37 aa -> aa
(4)硬连接:ln {原文件名}{目标文件名}
-rw-r--r--. 2 root root 29 12月 25 23:34 aa
-rw-r--r--. 2 root root 29 12月 25 23:34 bb
问题1:硬连接和复制的区别:
几个硬连接=几个名字的同一个房子,这些名字可以相同或不同但地址(inode)是一样的, 所以硬连接被删除只是把相应名字抹去,只有最后一个名字被抹去你才会找不到房
子;而复制是建造一个一模一样的房子,当然地址(inode)就不同的了。
问题2:硬链接和软连接之间的区别
1.硬链接和原来的文件没有什么区别,而且共享一个 inode 号(文件在文件系统上的唯一标识);而软链接不共享 inode,也可以说是个特殊的 inode,所以和原来的 inode 有区别。
2.若原文件删除了,则该软连接则不可以访问,而硬连接则是可以的。
3.由于符号链接的特性,导致其可以跨越磁盘分区,但硬链接不具备这个特性.
软连接,新建的文件以“路径”的形式来表示另一个文件,和Windows的快捷方式十分相似,新建的软链接可以指向不存在的文件
(5)查找文件/文件夹find / -name mysql
(6)查找文件内容grep xxx file
例如:tail -f /opt/lampp/logs/access_log |grep GET
过滤掉指定的关键字grep -v haha
(7)查看当前目录下所有文件的占用空间du -sh dirname
(8)查看当前磁盘已经使用了多少df -h
5、安装软件
上传、下载:
ftp工具:直接拖拽、什么都可以上传,要sftp协议
rz\sz命令可以直接上传下载,但是它不能上传文件夹
6、开关机、重启
(1)关机:
定时关机:shutdown -h 30
立即关机:shutdown -h now;init 0
(2)定时重启:reboot或者shutdown -r 20
(3)注销:exit
7、网络
(1)查看ip:ip a或者ifconfig;自动获取ip:dhclient
(2)查看端口号:Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等
详情:http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html
http://www.cnblogs.com/huaishui/p/5873870.html
查询这个进程号启动端口号是什么:netstat -nlpt|grep 18983
查看这个端口号有没有被占用:netstat -nlpt|grep port
常见参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
8、压缩、解压文件:
(1)–c创建; –x解压;-f归档;-z解压缩;-v输出过程;
直接打包,前面是包的名字,后面是要给谁打包:tar cvf linux.tar linux
压缩:tar  zcvf linux.tgz linux或者tar zcvf linux.tar.gz linux
解压,不管你压缩没压缩都能解开:tar xvf linux.tar 
(2)zip
打zip包:zip linux.zip linux
解压:unzip linux.zip
(3)gzip:只能对文件打包,打包后原来的文件就没有了
打gzip包:gzip file.gz file
解压:gunzip file.gz
9、重定向
覆盖原有的内容cat xx > new_xx
追加cat xx >> new_xx
10、查找进程ps和top
查找mysql进程除了grep: ps -ef|grep mysql|grep -v grep
区别:ps只是显示执行那一时刻的状态,top动态的查看进程
top:Linux系统可以通过top命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高。
11、杀进程kill
杀进程,可以跟多个pid:kill -9 pid
12、后台运行某个程序nohup:不挂断地运行命令
nohup ./jmeter-server &
13、定时任务crontab
编辑定时任务:crontab -e
查看当前有安歇定时任务:crontab -l
文件的格式为“M H D m d cmd”。其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1 ~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期天)。cmd表示要运行的程序,*代表 每分钟都执行
例如:* * * * *cp /opt/lampp/logs/access_log /tmp/logs/`date +%Y%m%d%H%M%S`_access_log && >/opt/lampp/logs/access_log
14、环境变量:环境变量的作用就是让一个脚本随便在哪个目录 下都能用
(1)系统环境变量:/etc/profile
(2)用户环境变量:~/.bashrc
(3)用法:export PATH=$PATH:-修改完一定要source /etc/profile或者source ~/.bashrc
15、shell脚本:shell其实就是多个命令写在一起,linux默认的shell解释器就是bash
例如:
重启:
#!/bin/bash
/root/fangdan/start_jmeter.sh
/root/fangdan/stop_jmeter.sh
启动:
#!/bin/bash
count=`ps -ef|grep jmeter|grep -v grep|awk '{print $2}'|wc -l`
if [ $count -gt 0 ]
then
echo "jmeter-server is running"
else
nohup /usr/local/apache-jmeter-3.1/bin/jmeter-server &
fi
停止:
#!/bin/bash
count=`ps -ef|grep jmeter|grep -v grep|awk '{print $2}'|wc -l`
pid=`ps -ef|grep jmeter|grep -v grep|awk '{print $2}'`
if [ $count -gt 0 ]
then
kill -9 $pid
echo "jmeter-server stoped"
else
echo "jmeter-server not running.."
fi
16、软件安装rpm\yum\源码安装等
(1)安装:rpm -ivh xx.rpm
卸载:rpm -e xxx
查询是否已经安装这个软件:rpm -qa|grep xxx
(2)yum:yum –y install lrzsz
(3)源码安装:
【1】生成编译文件./configure --prefix=/path
【2】编译make
【3】把编译好的文件放到你指定的目录下make install
17、date 可以用来显示或设定系统的日期与时间。
date 用法: date [OPTION]... [+FORMAT]
date +%Y%m%d%H%M%S--20161225163425