常用linux命令(ubuntu)

来源:互联网 发布:vue.js修改data 编辑:程序博客网 时间:2024/05/17 11:35
Linux 常用文件夹结构
/bin 二进制文件目录
/sbin 二进制文件目录
/dev device,设备目录,光驱,磁盘,分区...
/etc 配置文件目录
/lib 库文件,共享对象文件
/home 用户的主目录(root除外)
/root root用户的主目录
/usr user用户(linux分支特色用户)
/use/bin 可执行文件(分支特色)
/use/sbin 可执行文件(分支特色)
/use/local/bin存放自己的可执行文件
/use/local/sbin存放自己的可执行文件
---------------------------------------------------
Linux 常用命令
reboot 重启系统
halt -p 关机,关电源
cd 改变目录
cd ~ 回到主目录
cd .. 回到上级目录
cd / 回到根目录
ls 查看目录 -al 显示所有文件
clear 清屏
pwd 查看当前目录
ifconfig ip地址
xx | yy 把xx命令输出的数据当成yy的输入参数
xx | `xargs` yy把xx命令输出的数据 (多行合并成1行 使用空格分割)
`xx` 把``中的xx当成命令执行(命令的嵌套)
xx --help 查看命令帮助
xx | more 查看命令帮助
info xx 查看命令帮助
sudo xx 在root权限下执行xx命令(ubuntu命令)
sudo passwd 初始化root密码(ubuntu命令)
su root 切换到root用户
ping ping网络
whoami 得到当前用户名
which xx 查看**所在的目录
echo $PATH 查看环境变量(区分大小写)
echo aaa > a.txt把aaa覆盖进a.txt
echo aaa >> a.txt把aaa追加进a.txt
rm 删除文件
rm -fR 递归强制删除文件(目录)
mkdir 创建目录;
mkdir -p a/b/c/f  递归创建/a/b/c/f目录 
find . | grep abc搜索名字含 abc 文件或目录
touch x.txt 创建空文件
cat 直接查看文件内容
nano xx 编辑文件(ubuntu命令)ctrl+o保存,ctrl+x退出,ctrl+k剪切一行ctrl+u复制一行
cp x.txt b/c/f.txt复制x.txt 到 f.txt中
cp -R x y 递归拷贝x目录至y目录下 
mv a aa a重命名为aa
mv a b/c/f a移动至b/c/f目录
head -n x.txt 显示文件前n行内容 n代表数字
tail -n x.txt 显示文件末n行内容 n代表数字
hostname 显示主机名称
uname -a 显示系统内存信息
file xx 查看xx文件类型(ubuntu)
tar -zcvf /x/x.tar.gz /y将y目录下的文件打包成 x目录下的x.tar.gz文件 打包后,以 gzip 压缩
tar -jcvf 打包后,以 bzip2 压缩
tar -cvf 仅打包,不压缩!
tar -zxvf x/x.tar.gz将x/x.tar.gz解压到当前目录
mount 挂载外设
umount 解除外设
ln a.txt a.txt.ln创建一个硬链接文件(a.txt.ln)连接a.txt
硬链接:a.txt的所有更改都会同步到a.txt.ln中(反之亦然) 删除除外;占用两倍的磁盘空间
ln -s 创建一个符号连接(只是指向了被连接的文件 如果源文件不存在,连接文件就失效)相当于快捷方式
jobs 显示后台作业
kill %n 杀死进程  n代表进程号
ps -Af 查看系统信息 A:所有进程 f:所有格式
cut -c n1-n2 显示文件中每行文本的 n1-n2 的字符

fdisk -1 /dev/sda查看sda磁盘的信息
df 查看磁盘的使用情况
dirname 查看文件(目录)所在的目录
basename /x/y.txt .txt显示文件的基本名称(无目录) .txt:省略后缀.txt 

$(xx) 类似`` 动态命令执行


linux内置变量的访问方式
-------------------------------------
$?   返回命令的返回值,0-成功   !0:失败

$# 返回命令的传参个数
rm -r xx $# = 2
$n 返回命令的第n个参数

$0 返回命令本身

$@ 返回命令所有参数

shift 向左移动参数,最左边的参数会被覆盖

if[$# -lt 1] 判断上一个命令的传参个数 是否小于1

if[$# -gt 1] 判断上一个命令的传参个数 是否大于1

if[-e xxx] 判断是否存在xxx

if[-d xxx] 判断xxx是不是目录

命令组合
------------------
a && b a执行成功后再执行b

a || b a执行失败后才会执行b (成功则不执行)

a ; b a执行后执行b(没成功失败约束条件,就是按顺序执行)

(a ; b) 同上(但是不切换目录) 


NetCat
-----------------------
nc -l post   开启 ServerSocket 端口号为 post(8888)
nc -l post & 开启 ServerSocket(后台运行)

nc ip post 启动客户端,连接到服务器端口(post)

fg %n 把n号的进程激活调到前台运行(n 可以使用 jobs 查看)
bg %n 把后台job激活,并在后台运行

ctrl + d 结束连接
ctrl + z 将进程暂停并放入后台,变成作业(jobs)

nc -l post >xxx.txt 重定向接收数据到xxx.txt 文件

nc ip post < xxx.txt 重定向输入文件内容

nc ip -z port1 - port2 指定需要扫描的主机ip和端口区间
-v 详细信息 ;-w n 连接超市 n为数字单位:秒; -z端口扫描

文件和权限
------------------------------
123456789a b c    d     e   f   g  h    i
drwxr-xr-x 3 root root 4096 Dec 1 17:03 ../
1.文件类型  -- 1
d:目录 -:文件 b:block l:link
2.权限 
Owner(user) 主人 --234
r:read读4   查看文件内容;查看目录包含的内容
w:write写2 修改文件内容;是否能添加删除目录内容
x:execut执行1 执行文件;是否可进入目录
-:无权限0
rwx = 111 =7 ; r-x = 101 =5  ; ..........
group 组   --567 用户隶属于组,可以是多个组,但只能隶属一个首要组其他为从属组
other 其他 --89a
拥有者 --c
所在分组 --d
chmod ugo+rwx xxx给xxx修改权限 u:user g:group o:other a:all所有
chmod 777 xxx 分别给 ugo 分配权限   7= r+w+x = 111 = 4+2+1 
-r  递归修改目录下的所有权限


增减新用户
---------------------------------
useradd 添加用户 较底层不推荐
adduser --home /home/ubuntu2 --gid 1000 ubuntu2    在home的目录下创建用户ubuntu2到1000组里面
deluser --remove-home ubuntu2 删除用户ubuntu2


apt(高级包管理工具)
---------------------------------
apt-get update 更新软件包列表 
upgrade 升级
install 安装
remove 删除
purge 删除软件和配置文件
clean 清除

apt-cache search jdk 在仓库中查看 含jdk字样的 软件


修改ubuntu的软件源列表 /etc/apt/source.list 
ubuntu桌面   ubuntu-desktop
gedit xxx.txt 图形化界面的nano


配置静态IP
---------------------
编辑ubuntu的网络配置文件:
/etc/network/interfaces  修改如下

auto lo
iface lo inet loopback


iface eth0 inet static
address 192.168.25.138
netmask 255.255.255.0
gateway 192.168.25.2
dns-nameservers 192.168.25.2
auto eth0

sudo /etc/init.d/networking restart 重启网络  

shell
---------------------------------------------
#!/bin/bash  ..................................

条件运算语句
------------------------------------------------
if cmd ; then cmd ;[elif cmd ; then cmd ;].........[else cmd ;] fi  

if [[ $# -lt 1 ]] ;then echo  no param!!! ; exit ; fi

循环语句

-----------------------------------------------

for NAME in [work ......] ; do cmd ; done
例 for NAME in [1 2 3 4 5] ; do echo ${i} ; done

for (( exp1 ; exp2 ; exp3 )); do cmd ; done
例 for (( i = 1 ; i < 11 ; i = i+1 )); do echo ${i} ; done

(( exp1 ))
while (( EXP2 ))) ; 
do cmd 
(( EXP3 )) 
done
(( i = $1 ))
while (( i < 10 )) ;
do echo hello${i} 
(( i = i+1 ))
done



shell
---------------------------------------------
#!/bin/bash  ..................................


原创粉丝点击