Linux服务器使用相关笔记

 

各种与Linux 相关的命令 ,仅做笔记参考  略有重复或缺失,不影响观看

 

护眼色

 199 237 204 | 172 206 174

 

repo相关命令

repo start dev --all 在在清单文件设定的分支基础上全都切换到dev分支

repo start BRANCH_NAME [PROJECT_LIST]
参数BRANCH_NAME指定新的分支名称,后面的PROJECT_LIST是可选的。如果指定了PROJECT_LIST,就表示只对特定的子项目创建分支,否则的话,就对所有的子项目创建分支

repo start dev platform/device platform/device/mstar  相当于在platform/device platform/device/mstar两个仓库创建dev分支
repo checkout dev 切换分支
repo checkout dev platform/device platform/device/mstar 当于在platform/device platform/device/mstar两个仓库切换到dev分支
repo abandon dev 删除dev分支
repo status 查看修改的文件
repo status platform/device      查看device从仓库的修改
repo push dev 用于向服务器提交代码
repo remote rm dev 删除远程仓库
repo manifest -0 android.xml 显示manifest的文件内容
repo grep 对项目文件内容进行查找
repo version 显示repo的版本号
repo upload 

git remote update 相当于对每一个remote源执行fetch操作
git rebase origin/branch 针对当前分支的跟踪根治执行rebase操作
repo branch 查看代码分支
repo forall -c git checkout -b 648-release 所有仓库都执行这个命令
repo forall -c git pull  所有仓库都执行这个命令-下拉

git 相关命令


git init 初始化一个仓库 默认创建master分支

git reset 删除暂缓区的提交
git reset --hard 标签名  删除此标签的改动
git reset --hard HEAD^ 回退到上一个版本
1. git clean -df  第一个命令只删除所有untracked的文件,如果文件已经被tracked, 修改过的文件不会被回退。
2. git reset --hard 而第二个命令把tracked的文件revert到前一个版本,对于untracked的文件(比如编译的临时文件)都不会被删除。
git reset HEAD <file> 可以把暂存区的修改撤销掉
git cherry-pick 标签   /添加改动
git cherry-pick --abort //撤销cherry-pick
git pull origin puze 合并指定分支代码

git checkout -b  name创建一个新的分支并切换分支
git checkout name 切换一个分支
git push origin puze origin puze把本地库推送到远程
git status 查看缓存区状态
    -un0 查看自己修改的
git diff 查看修改的内容
git show 标签/查看此标签修改的内容ean
git show 标签 --stat 查看此次提交的文件
git commit 提交将缓存区修改提交到本分支
git branch 查看当前分支
            -a查看所有分支
git branch -av 查看所有分支和每个分支最新的提交
git branch name 创建一个新的分支
git branch -d <name> 删除分支
git log 查看提交日志
git log --pretty=oneline 简化显示从最近到最远的提交日志
git log --graph --pretty=oneline --abbrev-commit查看分支合并的情况
git remote 查看远程库
git pull 从远程抓取分支,如果有冲突,要先处理冲突
git add 添加到缓存区
git checkout -b puze origin/puze 创建并合并此分支\
git checkout -b branch-name origin/branch-name 在本地创建和远程分支对应的分支,分支的名称最好一致
git branch --set-upstream branch-name origin/branch-name 建立本地分支和远程分支的关联
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
            :取消了commit ,取消了add
            ,是将git的HEAD变了(也就是提交记录变了),但文件并没有改变,(也就是working tree并没有改变)。
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
            取消了commit
            实际上,是git reset –mixed id 后,又做了一次git add
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
                取消了commit ,取消了add,取消源文件修改
                .是将git的HEAD变了,文件也变了。
                
已经推送(push)过的文件,想从git远程库中删除,并在以后的提交中忽略,但是却还想在本地保留这个文件
执行命令 

git rm --cached 文件名                
                
                
更新                
git merge --no-ff E828_dev 
git revert 仅仅是撤销某次提交
git commit 把暂缓区的所有内容提交到当前分支
git reset HEAD  文件 可以撤销add提交

git push origin --delete [branch_name] 删除远程分支

修改.sh添加IP
运行.sh\
合并分支
git merge --no-ff develop
查看版本回退的版本号
git reflog
撤销某文件的修改
git checkout - -文件名
删除文件后从版本库恢复文件s
git checkout -- 文件名
删除分支:
git branch –d name
隐藏工作现场
git stash 
查看隐藏的工作现场
git stash list
恢复工作现场但是不删除stash中保存的内容
git stash apply
删除工作线程 
git stash drop
恢复工作现场并且删除stash
git stash pop
git stash pop --index stash@{0}
要查看远程库的详细信息
git remote –v
查看文件内容
删除新增提交
git clean -df  

 git log |grep 6263 -C2
 查看所有log和显示其详细的分支和tag
 git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

git lg 让git log显示彩色简洁的日志书
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

git lg 让git log显示彩色简洁的日志书
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci) %C(bold blue)<%an>%Creset' --abbrev-commit"

git 配置颜色 
git config --global color.ui auto
git config --global color.status auto 
git config --global color.diff auto 
git config --global color.branch auto 
git config --global color.interactive auto 

 查看全部log
  git log --graph --oneline
cd  .git 进去git库
vi .ignore输入让git库忽略的文件
git show-branch -a --color=always 显示所有分支最新log和与服务器的提交的差别
git fetch更新
将LOG改为输出到1.log
 git log > ~/1.log
git push origin 本地分支:远程分支   提交到远程分支
        -f 强制推送到远程
git push origin local_branch:remote_branch
git push origin --tags 提交打印的tag
 git tag -a sn-648-6.0-v1.2.0 -m "sn-648-6.0-v1.2.0" 添加tag到最新的提交上面
 git commit --amend 修改最后一次提交记录
git fsck --lost-found 历史操作记录
git remote add origin [email protected]:dwqs/bless.git   把本地仓库和远程仓库关联起来
find .git/objects -type f | xargs ls -lt | sed 60q ,这里 60q 的意思是最近60次的add

git diff 608e120 4abe32e --name-only | xargs zip update.zip 对比两个版本的差异并打包

git diff cached 查看暂存区的不同


告诉git忽略对已经纳入版本管理的文件 .classpath 的修改,git 会一直忽略此文件直到重新告诉 git 可以再次跟踪此文件
$ git update-index --assume-unchanged .classpath

告诉 git 恢复跟踪 
$ git update-index --no-assume-unchanged .classpath

查看当前被忽略的、已经纳入版本库管理的文件:
$ git ls-files -v | grep -e "^[hsmrck]"

替换字符 \r 替换为空白
sed -i 's/\r$//' git.sh

git rm -r -n --cached name 列表查看要删除的
git rm -r --cached name 删除git对这些文件的跟踪


linux 相关命令


linux新建用户
adduser 用户名
passwd 用户名
samba服务器新建用户
cd /etc/samba/ 当前目录下修改smb.conf 文件
smbpasswd -a 用户名    加samba密码

加管理员权限/etc/sudoers

建立软连接 ln -s /mnt/4TOne /home/zhuwang

dd删除整行
ndd 删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行
yy 复制
:s(substitute) 命令用来查找和替换字符串。
语法》 :{作用范围}s/{目标内容}/{替换内容}/{替换标志}
例如》 :%s/name/names/g 会在全局范围(%)查找name并且替换为names,所有出现的都会被替换(g)

find 笔记
在当前目录下查找带有'  '的.h文件并用颜色标识
find ./ -name '*.h' | xargs grep -3n --color ''
find ./ -name ".git" |xargs rm -rf 查找并删除
find ./ -name ".git" -print -exec rm -fr {} \; 查找并删除
git archive --format=zip HEAD `git diff --name-only 52fa787 d45a14b` > a.zip 从git里面提取两个commit之间变更过的文件

setprop 设置系统属性
df 查看系统占用的内存
设置默认安装的位置
 pm set-install-location 0
查看APK默认预装位置980
 pm get-install-location
cat -n或--number  yesuo.txt 由一开始对文件编号输出
cat -n/--number  yesuo.txt >yesuo1.txt 由1开始编号后复制到yesuo1.txt
    -b/--number-nonblank    由1开始不编号空白行
    -s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
  -v 或 --show-nonprinting

chattr 命令用于改变文件属性
chattr +a file1 只允许以追加方式读写文件 
chattr +c file1 允许这个文件能被内核自动压缩/解压 
chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件 
chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接 
chattr +s file1 允许一个文件被安全地删除 
chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘 
chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件 
chgrp    命令用于变更文件或目录的所属群组
chgrp -v yesuo da.txt 更改文件所属的用户组
chmod 设置文件权限借以控制文件如何被他人所调用
    若要rwx属性则4+2+1=7;
    若要rw-属性则4+2=6;
    若要r-x属性则4+1=5
cmp    命令用于比较两个文件是否有差异
cmp test.txt test1.txt比较文件是否相同
diff    命令用于比较文件的差异
diff  test.txt test1.txt比较文件参数百度
file test.txt      显示文件类型
find test.txt        查找文件
find . -name "libutopia.so" |xargs rm -rf  查找并删除

find . -name "*.c"    将目前目录及其子目录下所有延伸档名是 c 的文件列出来。
find . -ctime -20    将目前目录及其子目录下所有最近 20 分钟内更新过的文件列出
find . -type f -perm 644 -exec ls -l { } ;查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件
        -ctime n : 在过去 n 天过修改过的文件
        -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组
        -cmin n : 在过去 n 分钟内被修改过
        -atime n : 在过去 n 天过读取过的文件
        -amin n : 在过去 n 分钟内被读取过
indent命令用于调整C原始代码文件的格式        
ln test.txt test            创建硬连接
                -b 删除,覆盖以前建立的链接
less test.txt         查看文件
                v 编辑文件 g已到最后一行
ps -ef |less         ps查看进程信息并通过less分页显示
locate     test.txt       从数据库中查找文件 
lsattr test.txt           查看文件属性
 mktemp                命令用于建立暂存文件
mmove test.txt test        #移动文件到目录test中 
rm test.txt         删除test.txt 文件价
    -r             删除目录
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容 
rm -rf dir1 dir2 同时删除两个目录及它们的内
slocate fdisk     #显示文件名中含有fdisk关键字的文件的路径信息    
mv     文件名 文件名    将源文件名改为目标文件名
mv     文件名 目录名    将文件移动到目标目录
mv     目录名 目录名    目标目录已存在,将源目录
                    移动到目标目录;目标
                    目录不存在则改名
mv info/ logs         将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。
cp –r test/ newtest        使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下
        -l:不复制文件,只是生成链接文件
        -f:覆盖已经存在的目标文件而不给出提示
## 生成ssh 密钥文件
    ssh-keygen -t rsa

ls 查看当前目录下所有文件
ls -l 查看文件的权限和所属
pwd     显示工作路径 
ls -a 显示隐藏文件 
ls *[0-9]* 显示包含数字的文件名和目录名 
mkdir dir1 创建一个叫做 'dir1' 的目录' 
mkdir dir1 dir2 同时创建两个目录 
rm -rf /var/log/httpd/access 将会删除/var/log/httpd/access目录以及其下所有文件、文件夹
cp -a /tmp/dir1 . 复制一个目录到当前工作目录 
cp -a dir1 dir2 复制一个目录 
touch -t 0712250000 file1 修改一个文件或目录的时间戳
groupadd group_name 创建一个新用户组 
groupdel group_name 删除一个用户组 
useradd user1 创建一个新用户 
userdel -r user1 删除一个用户 ( '-r' 排除主目录
passwd 修改口令 
passwd user1 修改一个用户的口令 (只允许root执行
chown user1 file1 改变一个文件的所有人属性 
bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件 
bzip2 file1 压缩一个叫做 'file1' 的文件 
gunzip file1.gz 解压一个叫做 'file1.gz'的文件 
gzip file1 压缩一个叫做 'file1'的文件 
gzip -9 file1 最大程度压缩 
rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包 
rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1' 
rar x file1.rar 解压rar包 
unrar x file1.rar 解压rar包 
tar -cvf archive.tar file1 创建一个非压缩的 tarball 
tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件 
tar -tf archive.tar 显示一个包中的内容 
tar -xvf archive.tar 释放一个包 
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下 
tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包 
tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包 
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包 
tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包 
zip file1.zip file1 创建一个zip格式的压缩包 
 cat proc/kmsg  查看内核文件
 busybox vi    编辑文件]
  例子:从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”thermcontact”的行
  find . -name "*.mk" | xargs grep "TvSettings"
   START u0 {act=com.android.systemui.recents.SHOW_RECENTS flg=0x10804000 cmp=com.android.systemui/.recents.RecentsActivity 
  在后台编译
  nohup make -j8 &
  显示系统进程
  ps -aux
  显示系统占用前五的进程
  ps auxw | head -1;ps auxw|sort -rn -k4|head -5
  更新编译api
  make update-api
    top 
    编译OTA包
    make otapackage
set ff=unix  将Windows转化为Linux

zip -s SIZE origin.zip --out new.zip zip分卷压缩SIZE为分卷的大小4m,4g,4t等
git archive --format=zip HEAD `git diff --name-only 52fa787 d45a14b` > a.zip 从git里面提取两个commit之间变更过的文件
echo 3 > /proc/sys/vm/drop_caches 内存回收命令
cat /proc/PID/oom_adj
CMD 命令
adb connect IP  连接Ip地址
adb kill-server 断开连接
adb -r install APK地址 安装APK
 -s 安装到SD卡
 -f 安装到data


 dumpsys命令:
dumpsys meminfo 显示当前进程的内存使用及每个adj可回收内存的情况
dumpsys meminfo com.mstar.tv.service 显示某包的内存使用情况
dumpsys cpuinfo 查看CPU的使用情况
dumpsys SurfaceFlinger 显示surfaceflinger中的信息,包括每个layer的分辨率等
dumpsys activity 显示四大组件的一些正在运行和历史的全局变量信息,比如stack中的activity
dumpsys activity top 查看栈顶Activity
  
检测经过了多少个网关
tracert ip
查看网络中所有主机的Ip缓存
arp -a
arp -d 删除缓存
查看本机端口
netstat
显示域列表电脑列表,电脑共享资源列表
net view
显示电脑帐号 
net user 
停止系统中的网络服务
net stop
创建删除,显示共享资源的命令
net share
查看当前栈中的Activity
adb shell dumpsys activity
查看进程信息
adb shell ps
上传文件到手机
adb push
从手机上下载文件到电脑
adb pull
查看系统中的设备
adb devices 
启动应用
adb shell am start -n

getevent:查看 输入设备是否有数据输出
input keyevent +[键] :模拟IR发送按键
pm list packages -f :显示所有已安装的apk的包名及位置
am 命令:
am start -a android.intent.action.View -d Http://www.baidu.com 打开百度
am start com.jrm.localmm/.ui.main.FileBrowserActivity 启动某个activity
am startservice -n com.android.music/com.android.music.MediaPlaybackService 启动一个service, -n 表示组件
am broadcast -a com.smz.mybroadcast 发送一个广播(这里-a表示动作,就是在androidmanifest里的定义的)

sqlite3 /tvdatabase/Database/factory.db 读取某个db,然后通过.table显示表,在通过select* from Table 查看表的内容
ime list 显示所有输入法,ime set com.android.inputmethod.pinyin/.PinyinIME 设置当前输入法


7zr解压
7zr x 文件名 -o生成文件名
压缩
7zr a -t7z 压缩文件的名字.7z 要压缩的东西

//屏幕录像,保存路径为/mnt/sdcard/1.mp4,需要注意的是屏幕录像只支持android4.4以上的设备使用ctrl+c停止录像
screenrecord /mnt/sdcard/1.mp4
//将sd卡路径下的1.mp4导出到F盘(先退出交互模式-adb shell 使用exit)
adb pull /mnt/sdcard/1.mp4 f:\
//截图
screencap /mnt/sdcard/1.png

/将system分区变成可读可写
mount -o remount,rw /system
mount -o rw,remount /system

修改权限为最高
chmod 777 文件名
-rw-------   (600) 只有所有者才有读和写的权限 
-rw-r--r--   (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限 
-rwx------   (700) 只有所有者才有读,写,执行的权限 
-rwxr-xr-x   (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限 
-rwx--x--x   (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限 
-rw-rw-rw-   (666) 每个人都有读写的权限 
-rwxrwxrwx   (777) 每个人都有读写和执行的权限
 

压缩
tar -czvf ***.tar.gz
tar -cjvf ***.tar.bz2
解压
tar -xzvf ***.tar.gz
tar -xjvf ***.tar.bz2

1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压

APK编译不要odex
LOCAL_DEX_PREOPT := false

绿色输出
echo -e "\033[32m deleted successfully \033[0m"
红色输出
echo -e "\033[31m  File not exist! \033[0m"

 

给第三方APK 进行系统签名
java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk

java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk
 
备注:签名工具 out/host/linux-x86/framework/ signapk.jar
系统签名文件:build/target/product/security/ platform.x509.pem platform.pk8

生成平台platform.keystore文件:
1、把pkcs8格式的私钥转化成pkcs12格式:
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
2、把x509.pem公钥转换成pkcs12格式:
openssl pkcs12 -export -in platform.x509.pem -inkey     shared.priv.pem -out shared.pk12 -name androiddebugkey 
密码:android 

3、生成platform.keystore
keytool -importkeystore -deststorepass android -destkeypass android -destkeystore platform.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey

打开调试GPU过度绘制
setprop debug.hwui.overdraw show
关闭调试GPU过度绘制
setprop debug.hwui.overdraw false


shell脚本学习 怕忘
mk中引用脚本文件
$(info $(shell (device/rockchip/rk3399/del_build_prop.sh)))

# -f 参数判断 $file 是否存在
if [ ! -f "$file" ]; then
 touch "$file"
fi

显示行号
:set nu

下面列出怎么对整个目录中的文件做dos2unix操作:

 

$ find . -type f -exec dos2unix {} \;

其中具体命令的解释如下:

find .
= find files in the current directory

-type f
= of type f

-exec dos2unix {} \;
= and execute dos2unix on each file found

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章