linux入门+常用命令 【CentOS7.2-Minimal】

wuchangjian2021-11-15 02:03:15编程学习

初始 linux

~:家目录

root 用户~规定为 /root

[root@localhost ~]$ pwd
/root

普通用户~默认 /home/username

[liqiang@localhost ~]$ pwd
/home/liqiang

pwd 显示当前光标所在路径

~ 与 / 的区别

~ 代表家目录, 对于root用户来讲就是: /root
/ 是根目录。/root 只是 / 下的其中一个子文件夹。

[root@localhost /]# ls
bin dev home root etc usr var

切换路径

去到家目录:

cd
cd ~

去到根目录

## 所有用户同一个根目录
cd /

回退到上一次停留目录

cd -

去到上一层、上两层目录

cd …/
cd …/…/

[cd ./ 是当前目录,相对路径 ]

绝对路径: 以根目录为起始

[root@localhost local]$ cd /usr/local/mysql

相对路径: 以当前目录为起始

[root@localhost local]$ cd mysql
[root@localhost local]$ cd ./mysql

文件

查看当前目录有那些文件/文件夹

ls
ll –> ls -l 的别名,列出文件/文件夹详细信息
ll -a –> ls -l -a 查看包括隐藏文件在内的所有文件/文件夹
ll -h 查看文件大小 【du -sh 可看文件/文件夹大小,小于4k的文件/夹只会显示4.0k】
ll -rt 按时间并排展示,一般 -rt 一起使用
ls --help 更多命令查看命令帮助

mkdir 创建文件夹
单个创建 mkdir  a 		 (相对路径创建在当前目录下)
        mkdir /xxx/xxx   (绝对路径可以往任意路径创建)
级联创建 mkdir -p 1/2/3  
并联创建 mkdir  a b c
复制和移动文件
cp  /xxx/xx  ./xxxx       [源文件] [目标文件]
mv  /xxx/xx  xxxx         [源文件] [目标文件]
ln -s mysql-5.6.23 mysql  [源文件] [快捷方式] ## 代替mv重命名,便于上线后版本变更,存储位置变更
上传、解压文件
# cd 到使用目录                      [yum install -y lrzsz]
# rz 从windows资源管理器选中文件上传到linux当前目录 【或使用xftp工具】
# sz filename 将文件下载到windows
                                    
# unzip file.zip         解压zip     [yum install -y unzip]
# tar -xzvf file.tar.gz  解压tar.gz  [yum install -y lrzsz]
# tar –xvf file.tar      解压tar      **需要安装工具包**
# unrar e file.rar       解压rar      **需要安装工具包**
创建空文件
  • touch xxx.xx
  • cat /dev/null > xxx.xx
  • echo “” > xxx.xx (空字符串并不完全空)
  • vi xxx.xx (前提xxx.xx不存在,vi后不编辑,保存退出)
将已有内容的文件清空内容
  • cat /dev/null > xxx.xx
  • echo “” > xxx.xx (空字符串并不完全空)
  • vi gg dG 【gg 第一行;dG删除光标所在及以后行;。。。】
  • rm -rf 后再 touch
查看文件的内容
cat  一次全部展示 (小文件)
more 按空格往下翻页,不能往上,按q退出  (大文件)
less 按上下箭头往上下,按q退出 (大文件)
  • cat xxx.xx|grep -C 20 ERROR
    【过滤出关键字 ERROR 出现的前20行+后20行的内容】
    【管道符:第一个命令的输出为第二个命令的输入】
    【grep:按关键字过滤 】
    【- A 后20行;-B 前20行;-C 前后20行 -after/-before】
  • 生成到log文件,再用sz命令 下载到windows来查看(一般在download目录下)
  • cat xxx.xx | grep -C 30 ERROR > error.log
    【> 新建/覆盖】 【把过滤出来的文件输出到新的文件】
  • cat xxx.xx| grep -C 30 ERROR >> error.log
    【>> 追加】
  • vi 进入文件去搜索
  • 实时查看
  • tail -200f xxx.xx 实时查看文件最新200行【没有-200F的,一般脚本里用F,自己操作时f】
  • tail -F xxx.xx 【F = f + retry,文件消失后会不停尝试重新获取文件】
全局搜索一个文件的名称

find / -name ‘*mysql*’ [*:模糊搜索;/ 根路径:全局会很慢,能确定部分目录就用/xxx 替换/]

环境变量和PATH

全局环境变量:/etc/profile
个人环境变量: (~自己家目录)

~/.bashrc
~/.bash_profile
最好配置在 .bashrc。【切换用户 su 不会执行.bash_profile;su - 才会】可能存在其他不会生效情况

   修改配置文件后:刷新、执行配置文件 [source 或 .]  
   (只会在当前会话,其他已经连接的会话也需要source)                

source /etc/profile
. .bashrc 【第一个. 与 source同样效果,代表执行】

which java 【检查修改有没有生效】
echo $JAVA_HOME -->能输出 /usr/java/jdk1.8.0_121 是因为在/etc/profile里添加了JAVA_HOME

别名
[root@localhost ~]# alias jk='pwd'   ## 当前会话生效 【注意=前后不能有空格】

如果要永久生效需要配置在 /etc/profile 中

vi /etc/profile
添加一句 :alias jdk='echo $JAVA_HOME'  【注意=前后不能有空格】
source /etc/profile
vi 编辑文件的过程

vi xxx.xx 打开进入命令行模式
i 进入编辑模式
esc 进入命令行模式
shift+: 进入尾行模式
wq 保存退出;q退出;q!不保存;wq!强制保存退出

用户

添加用户

[root@localhost ~]# useradd liqiang
[root@localhost ~]# id liqiang
uid=1002(liqiang) gid=1002(liqiang) groups=1002(liqiang)
【 gid:主组; groups:所在的所有用户组】

如果创建用户时,家目录空文件夹提前存在但没有配置文件,会报错:
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.

处理办法(把缺少的文件从 [/etc/skel/.*] 复制一份过来)
 [root@localhost ~]# cp /etc/skel/.* /home/liqiang/
设置密码

[root@localhost ~]# passwd liqiang

删除用户

[root@localhost ~]# userdel liqiang
用户组下唯一用户删除时,用户组也会删

创建用户组

[root@localhost ~]# group -g 101 dba
[root@localhost ~]# useradd -u 514 -g dba -G root -d /usr/local/mysql mysqladmin

将用户 liqiang 添加到另外一个用户组 bigdata 

[root@localhost ~]# usermod -a -G bigdata liqiang
[root@localhost ~]# id liqiang
uid=1002(liqiang) gid=1002(liqiang) groups=1002(liang),1003(bigdata)

修改主组【修改gid后groups也只剩主组这一个,需要添加原来的组到groups】

[root@localhost ~]# usermod --gid bigdata liqiang
[root@localhost ~]# id liqiang
uid=1002(liqiang) gid=1003(bigdata) groups=1003(bigdata)
[root@localhost ~]# usermod -a -G liqiang liqiang
uid=1002(liqiang) gid=1003(bigdata) groups=1003(bigdata),1002(liang)

权限

r4 w2 x1
rwxr-xr-x 代表 755

第一组 rwx代表用户的权限              [读、写、执行]
第二组 r-x代表同用户组下其他用户的权限  [读、执行]
第三组 r-x代表其他用户组的权限         [读、执行]

chown -R 用户:用户组 文件夹/文件路径
chmod -R 777 文件夹/文件路径

[root@localhost ~]# chown -R mysqladmin:dba /usr/local/mysql
[root@localhost ~]# chmod -R 755 /usr/loacl/mysql

切换用户
su ruoze   切换到用户,但pwd在切换前的目录(临时)  
su - ruoze 切换到该用户的家目录,且执行环境变量文件

.bash_profile  su 不会执行;su - 都执行
.bashrc        su 执行   ;su - 都执行
普通用户获取root的最大权限 [sudo]

[root@localhost ~]# vi /etc/sudoers

    liqiang   ALL=(ALL)      NOPASSWD:ALL

服务

查看服务,服务的端口号

[root@localhost ~]# ps -ef|grep mysql
[root@localhost ~]# netstat -nlp|grep pid

检查ip / 端口号通不通
ping ip
telnet ip [端口号] 【yum install telnet】
查看系统磁盘,内存的命令
df -h  
free -m
查看机器负载
top

历史命令记录 查看/清空

history ;  history -c ;    

linux的 /tmp 目录超过30天没有访问会自动删除
关于部署服务的任何东西不要配置在/tem下
/tmp 的权限是777,可以放一下需要传送的文件,不用考虑权限问题

安装JDK

mkdir /usr/java
cd /usr/java

rz  从windows上传jdk压缩包 到 /usr/java

unzip jdk1.8___.zip

查看解压后jdk文件夹的权限,如果不是root需要设置为root
chown -R root:root /usr/java/*

配置JAVA_HOME到环境变量

vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH

[root@Gargantua java]# source /etc/profile
[root@Gargantua java]# which java
/usr/java/jdk1.8.0_121/bin/java
[root@Gargantua java]# echo $PATH
/usr/java/jdk1.8.0_121/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

安装完成


安装 scala

未完待续…

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。